From 02fcf92f48abfee2d75845f6cc74a0544c2a005e Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Tue, 23 Aug 2022 21:07:33 +0200 Subject: [PATCH] Deprecated VCPKG_PREFER_SYSTEM_LIBS (#26449) --- docs/users/buildsystems/cmake-integration.md | 2 ++ scripts/buildsystems/vcpkg.cmake | 3 +++ scripts/test_ports/cmake-user/portfile.cmake | 4 ---- .../test_ports/cmake-user/project/CMakeLists.txt | 15 --------------- 4 files changed, 5 insertions(+), 19 deletions(-) diff --git a/docs/users/buildsystems/cmake-integration.md b/docs/users/buildsystems/cmake-integration.md index ad3c7d565d..2f46712459 100644 --- a/docs/users/buildsystems/cmake-integration.md +++ b/docs/users/buildsystems/cmake-integration.md @@ -213,6 +213,8 @@ This variable can be set to a list of additional command line parameters to pass ### `VCPKG_PREFER_SYSTEM_LIBS` +**This feature has been deprecated. Use empty overlay ports instead.** + This variable controls whether vcpkg will append instead of prepend its paths to `CMAKE_PREFIX_PATH`, `CMAKE_LIBRARY_PATH` and `CMAKE_FIND_ROOT_PATH` so that vcpkg libraries/packages are found after toolchain/system libraries/packages. Defaults to `OFF`. diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index f7823e72b5..73588faa90 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -51,6 +51,9 @@ option(X_VCPKG_APPLOCAL_DEPS_SERIALIZED "(experimental) Add USES_TERMINAL to VCP # requires CMake 3.14 option(X_VCPKG_APPLOCAL_DEPS_INSTALL "(experimental) Automatically copy dependencies into the install target directory for executables. Requires CMake 3.14." OFF) option(VCPKG_PREFER_SYSTEM_LIBS "Appends the vcpkg paths to CMAKE_PREFIX_PATH, CMAKE_LIBRARY_PATH and CMAKE_FIND_ROOT_PATH so that vcpkg libraries/packages are found after toolchain/system libraries/packages." OFF) +if(VCPKG_PREFER_SYSTEM_LIBS) + message(WARNING "VCPKG_PREFER_SYSTEM_LIBS has been deprecated. Use empty overlay ports instead.") +endif() # Manifest options and settings if(NOT DEFINED VCPKG_MANIFEST_DIR) diff --git a/scripts/test_ports/cmake-user/portfile.cmake b/scripts/test_ports/cmake-user/portfile.cmake index b3b93419fc..96e204b2bd 100644 --- a/scripts/test_ports/cmake-user/portfile.cmake +++ b/scripts/test_ports/cmake-user/portfile.cmake @@ -221,14 +221,10 @@ foreach(executable IN LISTS cmake_commands) CMAKE_COMMAND "${executable}" OPTIONS "-DCMAKE_BUILD_TYPE=Release" - "-DCMAKE_PREFIX_PATH=SYSTEM_LIBS" # for testing VCPKG_PREFER_SYSTEM_LIBS - "-DVCPKG_PREFER_SYSTEM_LIBS=OFF" ) test_cmake_project(NAME "debug" CMAKE_COMMAND "${executable}" OPTIONS "-DCMAKE_BUILD_TYPE=Debug" - "-DCMAKE_PREFIX_PATH=SYSTEM_LIBS" # for testing VCPKG_PREFER_SYSTEM_LIBS - "-DVCPKG_PREFER_SYSTEM_LIBS=ON" ) endforeach() diff --git a/scripts/test_ports/cmake-user/project/CMakeLists.txt b/scripts/test_ports/cmake-user/project/CMakeLists.txt index 5ce488701f..fdb213e5a5 100644 --- a/scripts/test_ports/cmake-user/project/CMakeLists.txt +++ b/scripts/test_ports/cmake-user/project/CMakeLists.txt @@ -11,21 +11,6 @@ else() message(STATUS "CMake version check: success (actual: ${CMAKE_VERSION})") endif() -message(STATUS "CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") -list(FIND CMAKE_PREFIX_PATH "SYSTEM_LIBS" system_libs) -list(FIND CMAKE_PREFIX_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" vcpkg) -if(system_libs LESS 0) - message(SEND_ERROR "VCPKG_PREFER_SYSTEM_LIBS check: failed (Cannot find SYSTEM_LIBS in CMAKE_PREFIX_PATH.)") -elseif(vcpkg LESS 0) - message(SEND_ERROR "VCPKG_PREFER_SYSTEM_LIBS check: failed (Cannot find vcpkg path in CMAKE_PREFIX_PATH.") -elseif(VCPKG_PREFER_SYSTEM_LIBS AND system_libs GREATER vcpkg) - message(SEND_ERROR "VCPKG_PREFER_SYSTEM_LIBS check: failed (actual: ${VCPKG_PREFER_SYSTEM_LIBS}, but vcpkg paths are before system paths in CMAKE_PREFIX_PATH.)") -elseif(NOT VCPKG_PREFER_SYSTEM_LIBS AND system_libs LESS vcpkg) - message(SEND_ERROR "VCPKG_PREFER_SYSTEM_LIBS check: failed (actual: ${VCPKG_PREFER_SYSTEM_LIBS}, but vcpkg paths are after system paths in CMAKE_PREFIX_PATH.)") -else() - message(STATUS "VCPKG_PREFER_SYSTEM_LIBS check: success (actual: ${VCPKG_PREFER_SYSTEM_LIBS})") -endif() - # add_library overload file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/lib.c" "int lib_unused() { return 1; }") add_library(lib "${CMAKE_CURRENT_BINARY_DIR}/lib.c")