|
| 1 | +include(../shared/cmake/DepsHelpers.cmake) |
1 | 2 |
|
2 | 3 | # Set this to false, when using a custom v8 build for testing
|
3 | 4 | set(__deps_check_enabled true)
|
4 | 5 |
|
5 |
| -function(DownloadDeps basePath) |
6 |
| - set(__deps_release_lib "${basePath}/v8/lib/Release/v8_monolith.lib") |
7 |
| - set(__deps_debug_lib "${basePath}/v8/lib/Debug/v8_monolith.lib") |
8 |
| - set(__deps_headers "${basePath}/v8/include/headers.zip") |
9 |
| - set(__deps_update_file "${basePath}/v8/update.json") |
| 6 | +function(DownloadDeps) |
| 7 | + set(__base_path "${PROJECT_SOURCE_DIR}/deps/v8") |
| 8 | + |
| 9 | + GetBranchAndOS(__deps_branch __deps_os_path_name) |
| 10 | + set(__deps_url_base_path "https://cdn.altv.mp/deps/v8/dev") # TODO: Use actual branch? |
10 | 11 |
|
11 | 12 | if(__deps_check_enabled)
|
12 |
| - file(DOWNLOAD "https://cdn.altv.mp/deps/v8/dev/update.json" ${__deps_update_file}) |
13 |
| - file(READ ${__deps_update_file} __deps_update_json) |
14 |
| - string(JSON __deps_hashes GET ${__deps_update_json} hashList) |
15 |
| - file(REMOVE ${__deps_update_file}) |
16 |
| - |
17 |
| - if(EXISTS ${__deps_release_lib}) |
18 |
| - file(SHA1 ${__deps_release_lib} __deps_release_checksum) |
19 |
| - else() |
20 |
| - set(__deps_release_checksum 0) |
21 |
| - endif() |
22 |
| - string(JSON __deps_release_checksum_cdn GET ${__deps_hashes} v8_monolith.lib) |
23 |
| - if(NOT ${__deps_release_checksum} STREQUAL ${__deps_release_checksum_cdn}) |
24 |
| - message("Downloading release binary...") |
25 |
| - file(DOWNLOAD "https://cdn.altv.mp/deps/v8/dev/v8_monolith.lib" ${__deps_release_lib}) |
26 |
| - endif() |
| 13 | + message("Checking release binaries...") |
| 14 | + |
| 15 | + GetCDNInfo("${__deps_url_base_path}/${__deps_os_path_name}/Release" __deps_release_hashes __deps_current_version) |
| 16 | + |
| 17 | + DownloadFile("v8_monolith.lib" "${__base_path}/lib/Release" "${__deps_os_path_name}/Release" ${__deps_release_hashes}) |
27 | 18 |
|
28 | 19 | # Only download debug binary in Debug builds
|
29 | 20 | if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
30 |
| - if(EXISTS ${__deps_debug_lib}) |
31 |
| - file(SHA1 ${__deps_debug_lib} __deps_debug_checksum) |
32 |
| - else() |
33 |
| - set(__deps_debug_checksum 0) |
34 |
| - endif() |
35 |
| - string(JSON __deps_debug_checksum_cdn GET ${__deps_hashes} v8_monolithd.lib) |
36 |
| - if(NOT ${__deps_debug_checksum} STREQUAL ${__deps_debug_checksum_cdn}) |
37 |
| - message("Downloading debug binary...") |
38 |
| - file(DOWNLOAD "https://cdn.altv.mp/deps/v8/dev/v8_monolithd.lib" ${__deps_debug_lib}) |
39 |
| - endif() |
40 |
| - endif() |
| 21 | + message("Checking debug binaries...") |
| 22 | + |
| 23 | + GetCDNInfo("${__deps_url_base_path}/${__deps_os_path_name}/Debug" __deps_debug_hashes __deps_current_version) |
41 | 24 |
|
42 |
| - if(EXISTS ${__deps_headers}) |
43 |
| - file(SHA1 ${__deps_headers} __deps_headers_checksum) |
44 |
| - else() |
45 |
| - set(__deps_headers_checksum 0) |
| 25 | + DownloadFile("v8_monolith.lib" "${__base_path}/lib/Debug" "${__deps_os_path_name}/Debug" ${__deps_debug_hashes}) |
46 | 26 | endif()
|
47 |
| - string(JSON __deps_headers_checksum_cdn GET ${__deps_hashes} headers.zip) |
48 |
| - if(NOT ${__deps_headers_checksum} STREQUAL ${__deps_headers_checksum_cdn}) |
49 |
| - message("Downloading headers...") |
50 |
| - file(DOWNLOAD "https://cdn.altv.mp/deps/v8/dev/headers.zip" ${__deps_headers}) |
51 |
| - message("Extracting headers...") |
52 |
| - file(ARCHIVE_EXTRACT INPUT ${__deps_headers} DESTINATION "${basePath}") |
| 27 | + |
| 28 | + GetCDNInfo("${__deps_url_base_path}" __deps_headers_hashes __deps_current_version) |
| 29 | + DownloadFile("headers.zip" "${__base_path}/include" "" ${__deps_headers_hashes}) |
| 30 | + file(ARCHIVE_EXTRACT INPUT "${__base_path}/include/headers.zip" DESTINATION "${__base_path}/..") |
| 31 | + |
| 32 | + if(__deps_current_version) |
| 33 | + message("V8 deps version: ${__deps_current_version}") |
53 | 34 | endif()
|
54 | 35 | endif()
|
55 | 36 | endfunction()
|
0 commit comments