Skip to content

Commit 29647bb

Browse files
authored
[vcpkg scripts] Use vcpkg fetch for available tools (#43309)
1 parent 43f6bb3 commit 29647bb

5 files changed

Lines changed: 28 additions & 87 deletions
Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1 @@
1-
set(program_name 7z)
2-
if(CMAKE_HOST_WIN32)
3-
set(tool_subdirectory "24.09")
4-
set(paths_to_search "${DOWNLOADS}/tools/7z/${tool_subdirectory}/7z2409/SourceDir/Files/7-Zip")
5-
set(download_urls "https://github.com/ip7z/7zip/releases/download/24.09/7z2409.exe")
6-
set(download_filename "7z2409.7z.exe")
7-
set(search_names "7z.exe")
8-
set(download_sha512 a39a84b13b383ac5fca20eb6d92ec6b8bc85f1b6a545c441efdbe054d8d12c9ebe97d366235bdf1383bbdb2a9666d18d0145b10b6e589180502c0c2dfa26ef14)
9-
endif()
1+
z_use_vcpkg_fetch(7Z FETCH_NAME 7zip)
Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1 @@
1-
set(program_name git)
2-
if(CMAKE_HOST_WIN32)
3-
set(base_version 2.32.0)
4-
set(program_version 2.32.0.2)
5-
set(tool_subdirectory "git-${program_version}-2-windows")
6-
set(download_urls "https://github.com/git-for-windows/git/releases/download/v${base_version}.windows.2/PortableGit-${program_version}-32-bit.7z.exe")
7-
set(download_filename "PortableGit-${program_version}-32-bit.7z.exe")
8-
set(download_sha512 867d8534972cbaf7a4224e25a14d484f8d17ef186f8d79e9a758afb90cf69541375cb7615a39702311f4809cb8371ef85c2b1a15bfffe9e48f0e597ac011b348)
9-
set(paths_to_search
10-
"${DOWNLOADS}/tools/${tool_subdirectory}/mingw32/bin"
11-
"${DOWNLOADS}/tools/git/${tool_subdirectory}/mingw32/bin")
12-
else()
13-
set(brew_package_name "git")
14-
set(apt_package_name "git")
15-
endif()
1+
z_use_vcpkg_fetch(GIT)
Lines changed: 1 addition & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1 @@
1-
set(program_name ninja)
2-
set(program_version 1.13.2)
3-
set(version_command --version)
4-
if(CMAKE_HOST_WIN32)
5-
if(DEFINED ENV{PROCESSOR_ARCHITEW6432})
6-
set(build_arch $ENV{PROCESSOR_ARCHITEW6432})
7-
else()
8-
set(build_arch $ENV{PROCESSOR_ARCHITECTURE})
9-
endif()
10-
if(build_arch MATCHES "^(ARM|arm)64$")
11-
set(download_filename "ninja-winarm64-${program_version}.zip")
12-
set(tool_subdirectory "${program_version}-windows-arm64")
13-
set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-winarm64.zip")
14-
set(download_sha512 11541733eede64fe928ad645cd6e5c06cfc2fb7d8c2225aea270a6ed91ffd17c3a13332a348af236e6732cb9f1972fca088cab186439907ca2455b79709d70f6)
15-
else()
16-
set(download_filename "ninja-win-${program_version}.zip")
17-
set(tool_subdirectory "${program_version}-windows")
18-
set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-win.zip")
19-
set(download_sha512 55d3d891e8fc6c8ad7f92e172125319896761e57c5125944613d9bbfa5b9374387e9fc1468ad5bcb31464f43fb1c455ea251343942595f42955dc67090aa12ee)
20-
endif()
21-
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
22-
set(download_filename "ninja-mac-${program_version}.zip")
23-
set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-mac.zip")
24-
set(tool_subdirectory "${program_version}-osx")
25-
set(paths_to_search "${DOWNLOADS}/tools/ninja-${program_version}-osx")
26-
set(download_sha512 bf71f820791bb2ef97da6e7f8376aaa1c51f3860884df1acde692d2df4c0747a2e167d843dcd5537813da2e5d14457d6ee3f48df13cdd678cea87e68fe73e9f0)
27-
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "FreeBSD")
28-
set(paths_to_search "${DOWNLOADS}/tools/${tool_subdirectory}-freebsd")
29-
set(version_command "")
30-
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "OpenBSD")
31-
set(paths_to_search "${DOWNLOADS}/tools/${tool_subdirectory}-openbsd")
32-
set(version_command "")
33-
elseif(CMAKE_HOST_SYSTEM_NAME STREQUAL "Linux")
34-
vcpkg_execute_in_download_mode(COMMAND "uname" "-m" OUTPUT_VARIABLE HOST_ARCH OUTPUT_STRIP_TRAILING_WHITESPACE)
35-
if(HOST_ARCH MATCHES "x86_64|amd64|AMD64")
36-
set(download_filename "ninja-linux-${program_version}.zip")
37-
set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-linux.zip")
38-
set(tool_subdirectory "${program_version}-linux")
39-
set(paths_to_search "${DOWNLOADS}/tools/ninja-${program_version}-linux")
40-
set(download_sha512 714b900cf10b7ecb1b641c91f4ef696250c64984e5955a8088e4a538d6e8077f43e55f6da47efcedbe316c68d51a9e98feff51734eb0eac1b17aa85af5698753)
41-
elseif(HOST_ARCH MATCHES "arm64|aarch64|ARM64|AARCH64")
42-
set(download_filename "ninja-linux-aarch64-${program_version}.zip")
43-
set(download_urls "https://github.com/ninja-build/ninja/releases/download/v${program_version}/ninja-linux-aarch64.zip")
44-
set(tool_subdirectory "${program_version}-linux-aarch64")
45-
set(paths_to_search "${DOWNLOADS}/tools/ninja-${program_version}-linux-aarch64")
46-
set(download_sha512 318714ef0f7cb81fe5aab99032d19cfec07035e784ec9a1de63825ce8bed70f9ad6c5801b84bb7130a0b7acb6d5ed960b2953b27256ff51e18dfd720840faa39)
47-
else()
48-
set(version_command "") # somewhat hacky way to skip version check and use system binary
49-
endif()
50-
else()
51-
set(version_command "")
52-
endif()
1+
z_use_vcpkg_fetch(NINJA)
Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1 @@
1-
set(program_name nuget)
2-
set(brew_package_name "nuget")
3-
if(CMAKE_HOST_WIN32)
4-
set(download_urls "https://dist.nuget.org/win-x86-commandline/v7.0.1/nuget.exe")
5-
set(download_filename "nuget.7.0.1.exe")
6-
set(download_sha512 EF1D4AF5D0EFCEEE529DE9AEB7A2DA6E18A330B148F61B63CF367B150F68B06380A1500E2B144D1E82B1A0227399DF448C9C60C6EF10A1FA928AF4A52299D51D)
7-
set(tool_subdirectory "7.0.1")
8-
set(paths_to_search "${DOWNLOADS}/tools/nuget-${tool_subdirectory}-windows")
9-
set(raw_executable ON)
10-
set(rename_binary_to "nuget.exe")
11-
endif()
1+
z_use_vcpkg_fetch(NUGET)

scripts/cmake/vcpkg_find_acquire_program.cmake

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,27 @@ function(z_vcpkg_find_acquire_program_find_internal program)
9898
set(${program} "$CACHE{${program}}" PARENT_SCOPE)
9999
endfunction()
100100

101+
function(z_use_vcpkg_fetch program)
102+
cmake_parse_arguments(PARSE_ARGV 1 arg
103+
""
104+
"FETCH_NAME"
105+
""
106+
)
107+
if(NOT arg_FETCH_NAME)
108+
string(TOLOWER "${program}" arg_FETCH_NAME)
109+
endif()
110+
vcpkg_execute_in_download_mode(
111+
COMMAND "$ENV{VCPKG_COMMAND}" fetch "${arg_FETCH_NAME}" --x-stderr-status
112+
RESULT_VARIABLE error_code
113+
OUTPUT_VARIABLE ${program}
114+
ERROR_VARIABLE error_pipe
115+
OUTPUT_STRIP_TRAILING_WHITESPACE
116+
WORKING_DIRECTORY "${DOWNLOADS}"
117+
)
118+
set("${program}" "${${program}}" CACHE STRING "" FORCE)
119+
set(z_uses_vcpkg_fetch ON PARENT_SCOPE)
120+
endfunction()
121+
101122
function(vcpkg_find_acquire_program program)
102123
if(${program})
103124
return()
@@ -123,6 +144,9 @@ function(vcpkg_find_acquire_program program)
123144
set(program_information "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/vcpkg_find_acquire_program(${program}).cmake")
124145
if(program MATCHES "^[A-Z0-9]+\$" AND EXISTS "${program_information}")
125146
include("${program_information}")
147+
if(z_uses_vcpkg_fetch)
148+
return()
149+
endif()
126150
else()
127151
message(FATAL_ERROR "unknown tool ${program} -- unable to acquire.")
128152
endif()

0 commit comments

Comments
 (0)