From cc2bda699132b7876b8710a51c3c94b60196bdf2 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Sat, 5 Jul 2025 17:14:49 +0000 Subject: [PATCH] build: inst host deps for bins only if not Before installing calculated host dependencies for binary packages, check if they are already installed. Signed-off-by: Rafael Kitover --- cmake/Set-Toolchain-vcpkg.cmake | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/cmake/Set-Toolchain-vcpkg.cmake b/cmake/Set-Toolchain-vcpkg.cmake index 66363c9f..e230b525 100644 --- a/cmake/Set-Toolchain-vcpkg.cmake +++ b/cmake/Set-Toolchain-vcpkg.cmake @@ -255,6 +255,19 @@ function(download_package pkg pkgs_dir) message(STATUS "done.") endfunction() +function(zip_is_installed vcpkg_exe zip outvar) + if(NOT zip MATCHES "([^_]+)_([^_]+)_([^.]+)[.]zip") + return() + endif() + set(pkg_name ${CMAKE_MATCH_1}) + set(pkg_version ${CMAKE_MATCH_2}) + set(pkg_triplet ${CMAKE_MATCH_3}) + + vcpkg_is_installed(${vcpkg_exe} ${pkg_name} ${pkg_version} ${pkg_triplet} ${POWERSHELL} pkg_installed) + + set(${outvar} ${pkg_installed} PARENT_SCOPE) +endfunction() + function(get_binary_packages vcpkg_exe) set(binary_packages_installed FALSE PARENT_SCOPE) @@ -286,14 +299,7 @@ function(get_binary_packages vcpkg_exe) endif() foreach(pkg ${binary_packages}) - if(NOT pkg MATCHES "([^_]+)_([^_]+)_([^.]+)[.]zip") - continue() - endif() - set(pkg_name ${CMAKE_MATCH_1}) - set(pkg_version ${CMAKE_MATCH_2}) - set(pkg_triplet ${CMAKE_MATCH_3}) - - vcpkg_is_installed(${vcpkg_exe} ${pkg_name} ${pkg_version} ${pkg_triplet} ${POWERSHELL} pkg_installed) + zip_is_installed(${vcpkg_exe} ${pkg} pkg_installed) if(NOT pkg_installed) list(APPEND to_install ${pkg}) @@ -356,7 +362,11 @@ function(get_binary_packages vcpkg_exe) string(REGEX REPLACE "