diff options
Diffstat (limited to 'scripts/buildsystems')
| -rw-r--r-- | scripts/buildsystems/vcpkg.cmake | 51 |
1 files changed, 18 insertions, 33 deletions
diff --git a/scripts/buildsystems/vcpkg.cmake b/scripts/buildsystems/vcpkg.cmake index ff0873457..e59779e4e 100644 --- a/scripts/buildsystems/vcpkg.cmake +++ b/scripts/buildsystems/vcpkg.cmake @@ -385,39 +385,24 @@ set(_VCPKG_INSTALLED_DIR "${VCPKG_INSTALLED_DIR}" CACHE PATH "The directory which contains the installed libraries for each triplet" FORCE) -if(VCPKG_PREFER_SYSTEM_LIBS) - set(Z_VCPKG_PATH_LIST_OP APPEND) -else() - set(Z_VCPKG_PATH_LIST_OP PREPEND) -endif() - -if(CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$" OR NOT DEFINED CMAKE_BUILD_TYPE) #Debug build: Put Debug paths before Release paths. - list(${Z_VCPKG_PATH_LIST_OP} CMAKE_PREFIX_PATH - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" - ) - list(${Z_VCPKG_PATH_LIST_OP} CMAKE_LIBRARY_PATH - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/manual-link" - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link" - ) - list(${Z_VCPKG_PATH_LIST_OP} CMAKE_FIND_ROOT_PATH - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" - ) -else() #Release build: Put Release paths before Debug paths. Debug Paths are required so that CMake generates correct info in autogenerated target files. - list(${Z_VCPKG_PATH_LIST_OP} CMAKE_PREFIX_PATH - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" - ) - list(${Z_VCPKG_PATH_LIST_OP} CMAKE_LIBRARY_PATH - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/manual-link" - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/manual-link" +function(z_vcpkg_add_vcpkg_to_cmake_path list suffix) + set(vcpkg_paths + "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}${suffix}" + "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug${suffix}" ) - list(${Z_VCPKG_PATH_LIST_OP} CMAKE_FIND_ROOT_PATH - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" - "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" - ) -endif() + if(NOT DEFINED CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE MATCHES "^[Dd][Ee][Bb][Uu][Gg]$") + list(REVERSE vcpkg_paths) # Debug build: Put Debug paths before Release paths. + endif() + if(VCPKG_PREFER_SYSTEM_LIBS) + list(APPEND "${list}" "${vcpkg_paths}") + else() + list(INSERT "${list}" 0 "${vcpkg_paths}") # CMake 3.15 is required for list(PREPEND ...). + endif() + set("${list}" "${${list}}" PARENT_SCOPE) +endfunction() +z_vcpkg_add_vcpkg_to_cmake_path(CMAKE_PREFIX_PATH "") +z_vcpkg_add_vcpkg_to_cmake_path(CMAKE_LIBRARY_PATH "/lib/manual-link") +z_vcpkg_add_vcpkg_to_cmake_path(CMAKE_FIND_ROOT_PATH "") # If one CMAKE_FIND_ROOT_PATH_MODE_* variables is set to ONLY, to make sure that ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET} # and ${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug are searched, it is not sufficient to just add them to CMAKE_FIND_ROOT_PATH, @@ -692,7 +677,7 @@ if(X_VCPKG_APPLOCAL_DEPS_INSTALL) list(APPEND parsed_targets "${arg}") endif() - if(last_command STREQUAL "DESTINATION" AND (MODIFIER STREQUAL "" OR MODIFIER STREQUAL "RUNTIME")) + if(last_command STREQUAL "DESTINATION" AND (modifier STREQUAL "" OR modifier STREQUAL "RUNTIME")) set(destination "${arg}") endif() if(last_command STREQUAL "COMPONENT") |
