diff --git a/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake b/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake index 54646a9751..da42b7f3e6 100644 --- a/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake +++ b/scripts/cmake/vcpkg_find_acquire_program(7Z).cmake @@ -1,9 +1 @@ -set(program_name 7z) -if(CMAKE_HOST_WIN32) - set(tool_subdirectory "24.09") - set(paths_to_search "${DOWNLOADS}/tools/7z/${tool_subdirectory}/7z2409/SourceDir/Files/7-Zip") - set(download_urls "https://github.com/ip7z/7zip/releases/download/24.09/7z2409.exe") - set(download_filename "7z2409.7z.exe") - set(search_names "7z.exe") - set(download_sha512 a39a84b13b383ac5fca20eb6d92ec6b8bc85f1b6a545c441efdbe054d8d12c9ebe97d366235bdf1383bbdb2a9666d18d0145b10b6e589180502c0c2dfa26ef14) -endif() +z_use_vcpkg_fetch(7Z FETCH_NAME 7zip) diff --git a/scripts/cmake/vcpkg_find_acquire_program(GIT).cmake b/scripts/cmake/vcpkg_find_acquire_program(GIT).cmake index fd33378287..504b8713b5 100644 --- a/scripts/cmake/vcpkg_find_acquire_program(GIT).cmake +++ b/scripts/cmake/vcpkg_find_acquire_program(GIT).cmake @@ -1,15 +1 @@ -set(program_name git) -if(CMAKE_HOST_WIN32) - set(base_version 2.50.1) - set(program_version 2.50.1) - set(tool_subdirectory "git-${program_version}-1-windows") - set(download_urls "https://github.com/git-for-windows/git/releases/download/v${base_version}.windows.1/PortableGit-${program_version}-32-bit.7z.exe") - set(download_filename "PortableGit-${program_version}-32-bit.7z.exe") - set(download_sha512 42ed5df38c8cc9a07add601df166cfcb5755b11d179b11b900216dcd2a9499fec5ef74018fb000c93274f612c1c9b711adf0db8e5e642aa94567a0654d1f29b6) - set(paths_to_search - "${DOWNLOADS}/tools/${tool_subdirectory}/mingw32/bin" - "${DOWNLOADS}/tools/git/${tool_subdirectory}/mingw32/bin") -else() - set(brew_package_name "git") - set(apt_package_name "git") -endif() +z_use_vcpkg_fetch(GIT) diff --git a/scripts/cmake/vcpkg_find_acquire_program(NINJA).cmake b/scripts/cmake/vcpkg_find_acquire_program(NINJA).cmake index d92c290719..73a7b54ef7 100644 --- a/scripts/cmake/vcpkg_find_acquire_program(NINJA).cmake +++ b/scripts/cmake/vcpkg_find_acquire_program(NINJA).cmake @@ -1,52 +1 @@ -set(program_name ninja) -set(program_version 1.13.2) -set(version_command --version) -if(CMAKE_HOST_WIN32) - if(DEFINED ENV{PROCESSOR_ARCHITEW6432}) - set(build_arch $ENV{PROCESSOR_ARCHITEW6432}) - else() - set(build_arch $ENV{PROCESSOR_ARCHITECTURE}) - endif() - if(build_arch MATCHES "^(ARM|arm)64$") - set(download_filename "ninja-winarm64-${program_version}.zip") - set(tool_subdirectory "${program_version}-windows-arm64") - set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-winarm64.zip") - set(download_sha512 11541733eede64fe928ad645cd6e5c06cfc2fb7d8c2225aea270a6ed91ffd17c3a13332a348af236e6732cb9f1972fca088cab186439907ca2455b79709d70f6) - else() - set(download_filename "ninja-win-${program_version}.zip") - set(tool_subdirectory "${program_version}-windows") - set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-win.zip") - set(download_sha512 55d3d891e8fc6c8ad7f92e172125319896761e57c5125944613d9bbfa5b9374387e9fc1468ad5bcb31464f43fb1c455ea251343942595f42955dc67090aa12ee) - endif() -elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin") - set(download_filename "ninja-mac-${program_version}.zip") - set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-mac.zip") - set(tool_subdirectory "${program_version}-osx") - set(paths_to_search "${DOWNLOADS}/tools/ninja-${program_version}-osx") - set(download_sha512 bf71f820791bb2ef97da6e7f8376aaa1c51f3860884df1acde692d2df4c0747a2e167d843dcd5537813da2e5d14457d6ee3f48df13cdd678cea87e68fe73e9f0) -elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "FreeBSD") - set(paths_to_search "${DOWNLOADS}/tools/${tool_subdirectory}-freebsd") - set(version_command "") -elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "OpenBSD") - set(paths_to_search "${DOWNLOADS}/tools/${tool_subdirectory}-openbsd") - set(version_command "") -elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux") - vcpkg_execute_in_download_mode(COMMAND "uname" "-m" OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE) - if(HOST_ARCH MATCHES "x86_64|amd64|AMD64") - set(download_filename "ninja-linux-${program_version}.zip") - set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-linux.zip") - set(tool_subdirectory "${program_version}-linux") - set(paths_to_search "${DOWNLOADS}/tools/ninja-${program_version}-linux") - set(download_sha512 714b900cf10b7ecb1b641c91f4ef696250c64984e5955a8088e4a538d6e8077f43e55f6da47efcedbe316c68d51a9e98feff51734eb0eac1b17aa85af5698753) - elseif(HOST_ARCH MATCHES "arm64|aarch64|ARM64|AARCH64") - set(download_filename "ninja-linux-aarch64-${program_version}.zip") - set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-linux-aarch64.zip") - set(tool_subdirectory "${program_version}-linux-aarch64") - set(paths_to_search "${DOWNLOADS}/tools/ninja-${program_version}-linux-aarch64") - set(download_sha512 318714ef0f7cb81fe5aab99032d19cfec07035e784ec9a1de63825ce8bed70f9ad6c5801b84bb7130a0b7acb6d5ed960b2953b27256ff51e18dfd720840faa39) - else() - set(version_command "") # somewhat hacky way to skip version check and use system binary - endif() -else() - set(version_command "") -endif() +z_use_vcpkg_fetch(NINJA) diff --git a/scripts/cmake/vcpkg_find_acquire_program(NUGET).cmake b/scripts/cmake/vcpkg_find_acquire_program(NUGET).cmake index 0a4c17f74c..1f473fd049 100644 --- a/scripts/cmake/vcpkg_find_acquire_program(NUGET).cmake +++ b/scripts/cmake/vcpkg_find_acquire_program(NUGET).cmake @@ -1,11 +1 @@ -set(program_name nuget) -set(brew_package_name "nuget") -if(CMAKE_HOST_WIN32) - set(download_urls "https://dist.nuget.org/win-x86-commandline/v7.0.1/nuget.exe") - set(download_filename "nuget.7.0.1.exe") - set(download_sha512 EF1D4AF5D0EFCEEE529DE9AEB7A2DA6E18A330B148F61B63CF367B150F68B06380A1500E2B144D1E82B1A0227399DF448C9C60C6EF10A1FA928AF4A52299D51D) - set(tool_subdirectory "7.0.1") - set(paths_to_search "${DOWNLOADS}/tools/nuget-${tool_subdirectory}-windows") - set(raw_executable ON) - set(rename_binary_to "nuget.exe") -endif() +z_use_vcpkg_fetch(NUGET) diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake index 442814ee90..b8fe4002a4 100644 --- a/scripts/cmake/vcpkg_find_acquire_program.cmake +++ b/scripts/cmake/vcpkg_find_acquire_program.cmake @@ -98,6 +98,25 @@ function(z_vcpkg_find_acquire_program_find_internal program) set(${program} "$CACHE{${program}}" PARENT_SCOPE) endfunction() +function(z_use_vcpkg_fetch program) + cmake_parse_arguments(PARSE_ARGV 1 arg + "" + "FETCH_NAME" + "" + ) + if(NOT arg_FETCH_NAME) + string(TOLOWER "${program}" arg_FETCH_NAME) + endif() + vcpkg_execute_in_download_mode( + COMMAND "$ENV{VCPKG_COMMAND}" fetch "${arg_FETCH_NAME}" --x-stderr-status + OUTPUT_VARIABLE ${program} + OUTPUT_STRIP_TRAILING_WHITESPACE + COMMAND_ERROR_IS_FATAL ANY + ) + set("${program}" "${${program}}" CACHE STRING "" FORCE) + set(z_uses_vcpkg_fetch ON PARENT_SCOPE) +endfunction() + function(vcpkg_find_acquire_program program) if(${program}) return() @@ -123,6 +142,9 @@ function(vcpkg_find_acquire_program program) set(program_information "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/vcpkg_find_acquire_program(${program}).cmake") if(program MATCHES "^[A-Z0-9]+\$" AND EXISTS "${program_information}") include("${program_information}") + if(z_uses_vcpkg_fetch) + return() + endif() else() message(FATAL_ERROR "unknown tool ${program} -- unable to acquire.") endif()