From 61be54d3d9dcea9737bd4d0975ae2e7344c9b095 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Sun, 22 Jun 2025 17:26:15 +0000 Subject: [PATCH] build: avoid using VS vcpkg with elevation Always use a parallel vcpkg directory instead of the Visual Studio default vcpkg, because installing there requires elevation and doesn't always work. Signed-off-by: Rafael Kitover --- cmake/Set-Toolchain-vcpkg.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/cmake/Set-Toolchain-vcpkg.cmake b/cmake/Set-Toolchain-vcpkg.cmake index 79097cda..468b2ab3 100644 --- a/cmake/Set-Toolchain-vcpkg.cmake +++ b/cmake/Set-Toolchain-vcpkg.cmake @@ -355,11 +355,12 @@ function(vcpkg_remove_optional_deps vcpkg_exe) endfunction() function(vcpkg_set_toolchain) + get_filename_component(preferred_root ${CMAKE_SOURCE_DIR}/../vcpkg ABSOLUTE) + if(NOT DEFINED POWERSHELL) message(FATAL_ERROR "Powershell is required to use vcpkg binaries.") endif() if(NOT DEFINED ENV{VCPKG_ROOT}) - get_filename_component(preferred_root ${CMAKE_SOURCE_DIR}/../vcpkg ABSOLUTE) if(WIN32) if(DEFINED ENV{CI} OR EXISTS /vcpkg) @@ -390,6 +391,12 @@ function(vcpkg_set_toolchain) set(VCPKG_ROOT $ENV{VCPKG_ROOT}) endif() + # Avoid using Visual Studio default vcpkg, because that requires elevaction. + if(VCPKG_ROOT MATCHES "Visual Studio") + set(VCPKG_ROOT "${preferred_root}") + set(ENV{VCPKG_ROOT} ${VCPKG_ROOT}) + endif() + set(VCPKG_ROOT ${VCPKG_ROOT} CACHE FILEPATH "vcpkg installation root path" FORCE) if(NOT EXISTS ${VCPKG_ROOT})