diff options
Diffstat (limited to 'CMakeModules/DownloadExternals.cmake')
| -rw-r--r-- | CMakeModules/DownloadExternals.cmake | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/CMakeModules/DownloadExternals.cmake b/CMakeModules/DownloadExternals.cmake index d3f91764d..4c4dec5ff 100644 --- a/CMakeModules/DownloadExternals.cmake +++ b/CMakeModules/DownloadExternals.cmake | |||
| @@ -4,15 +4,29 @@ | |||
| 4 | # remote_path: path to the file to download, relative to the remote repository root | 4 | # remote_path: path to the file to download, relative to the remote repository root |
| 5 | # prefix_var: name of a variable which will be set with the path to the extracted contents | 5 | # prefix_var: name of a variable which will be set with the path to the extracted contents |
| 6 | function(download_bundled_external remote_path lib_name prefix_var) | 6 | function(download_bundled_external remote_path lib_name prefix_var) |
| 7 | |||
| 8 | set(package_repo "no_platform") | ||
| 9 | set(package_extension "no_platform") | ||
| 10 | if (WIN32) | ||
| 11 | set(package_repo "ext-windows-bin/raw/master/") | ||
| 12 | set(package_extension ".7z") | ||
| 13 | elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Linux") | ||
| 14 | set(package_repo "ext-linux-bin/raw/main/") | ||
| 15 | set(package_extension ".tar.xz") | ||
| 16 | else() | ||
| 17 | message(FATAL_ERROR "No package available for this platform") | ||
| 18 | endif() | ||
| 19 | set(package_url "https://github.com/yuzu-emu/${package_repo}") | ||
| 20 | |||
| 7 | set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}") | 21 | set(prefix "${CMAKE_BINARY_DIR}/externals/${lib_name}") |
| 8 | if (NOT EXISTS "${prefix}") | 22 | if (NOT EXISTS "${prefix}") |
| 9 | message(STATUS "Downloading binaries for ${lib_name}...") | 23 | message(STATUS "Downloading binaries for ${lib_name}...") |
| 10 | file(DOWNLOAD | 24 | file(DOWNLOAD |
| 11 | https://github.com/yuzu-emu/ext-windows-bin/raw/master/${remote_path}${lib_name}.7z | 25 | ${package_url}${remote_path}${lib_name}${package_extension} |
| 12 | "${CMAKE_BINARY_DIR}/externals/${lib_name}.7z" SHOW_PROGRESS) | 26 | "${CMAKE_BINARY_DIR}/externals/${lib_name}${package_extension}" SHOW_PROGRESS) |
| 13 | execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${CMAKE_BINARY_DIR}/externals/${lib_name}.7z" | 27 | execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf "${CMAKE_BINARY_DIR}/externals/${lib_name}${package_extension}" |
| 14 | WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals") | 28 | WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/externals") |
| 15 | endif() | 29 | endif() |
| 16 | message(STATUS "Using bundled binaries at ${prefix}") | 30 | message(STATUS "Using bundled binaries at ${prefix}") |
| 17 | set(${prefix_var} "${prefix}" PARENT_SCOPE) | 31 | set(${prefix_var} "${prefix}" PARENT_SCOPE) |
| 18 | endfunction() \ No newline at end of file | 32 | endfunction() |