mirror of
https://github.com/microsoft/vcpkg.git
synced 2025-01-14 05:38:00 +08:00
[cmake-user] Verify library location for debug vs. release, fix ports (#21641)
* Verify library location for debug vs. release * Use existing variables for wrapper * Always install freetype wrapper * Quote @expressions * Set policies for freetype wrapper (#19459) * Test JPEG * Fix jpeg wrapper for CMake < 3.12 * Test TIFF * Test with current and oldest supported CMake * Test and fix icu cmake wrapper * CMake policy fixes [skip actions] * Update versions * CI * CI * Nicole CRs * Disable Curses test * Prefer <Pkg>_VAR over <PKG>_VAR Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com> Co-authored-by: nicole mazzuca <mazzucan@outlook.com> Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
This commit is contained in:
parent
27fd32e91c
commit
cb91b416cb
@ -72,26 +72,8 @@ vcpkg_fixup_pkgconfig()
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
||||
|
||||
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
|
||||
if("zlib" IN_LIST FEATURES)
|
||||
set(USE_ZLIB ON)
|
||||
endif()
|
||||
|
||||
if("bzip2" IN_LIST FEATURES)
|
||||
set(USE_BZIP2 ON)
|
||||
endif()
|
||||
|
||||
if("png" IN_LIST FEATURES)
|
||||
set(USE_PNG ON)
|
||||
endif()
|
||||
|
||||
if("brotli" IN_LIST FEATURES)
|
||||
set(USE_BROTLI ON)
|
||||
endif()
|
||||
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake"
|
||||
"${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
|
||||
endif()
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake"
|
||||
"${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
|
||||
|
||||
file(COPY
|
||||
"${SOURCE_PATH}/docs/FTL.TXT"
|
||||
|
@ -1,65 +1,64 @@
|
||||
cmake_policy(PUSH)
|
||||
cmake_policy(SET CMP0012 NEW)
|
||||
cmake_policy(SET CMP0054 NEW)
|
||||
|
||||
_find_package(${ARGS})
|
||||
|
||||
if(@USE_ZLIB@)
|
||||
find_package(ZLIB)
|
||||
endif()
|
||||
|
||||
if(@USE_BZIP2@)
|
||||
find_package(BZip2)
|
||||
endif()
|
||||
|
||||
if(@USE_PNG@)
|
||||
find_package(PNG)
|
||||
endif()
|
||||
|
||||
if(@USE_BROTLI@)
|
||||
find_library(BROTLIDEC_LIBRARY_RELEASE NAMES brotlidec brotlidec-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLIDEC_LIBRARY_DEBUG NAMES brotlidec brotlidec-static brotlidecd brotlidec-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLICOMMON_LIBRARY_RELEASE NAMES brotlicommon brotlicommon-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLICOMMON_LIBRARY_DEBUG NAMES brotlicommon brotlicommon-static brotlicommond brotlicommon-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
include(SelectLibraryConfigurations)
|
||||
select_library_configurations(BROTLIDEC)
|
||||
select_library_configurations(BROTLICOMMON)
|
||||
endif(@USE_BROTLI@)
|
||||
|
||||
if(TARGET Freetype::Freetype)
|
||||
if(@USE_ZLIB@)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
||||
if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
|
||||
if("@FT_REQUIRE_ZLIB@")
|
||||
find_package(ZLIB)
|
||||
endif()
|
||||
|
||||
if(@USE_BZIP2@)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES BZip2::BZip2)
|
||||
if("@FT_REQUIRE_BZIP2@")
|
||||
find_package(BZip2)
|
||||
endif()
|
||||
|
||||
if(@USE_PNG@)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES PNG::PNG)
|
||||
if("@FT_REQUIRE_PNG@")
|
||||
find_package(PNG)
|
||||
endif()
|
||||
if(@USE_BROTLI@)
|
||||
if(BROTLIDEC_LIBRARY_DEBUG)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:DEBUG>:${BROTLIDEC_LIBRARY_DEBUG}>)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:DEBUG>:${BROTLICOMMON_LIBRARY_DEBUG}>)
|
||||
if("@FT_REQUIRE_BROTLI@")
|
||||
find_library(BROTLIDEC_LIBRARY_RELEASE NAMES brotlidec brotlidec-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLIDEC_LIBRARY_DEBUG NAMES brotlidec brotlidec-static brotlidecd brotlidec-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLICOMMON_LIBRARY_RELEASE NAMES brotlicommon brotlicommon-static PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
find_library(BROTLICOMMON_LIBRARY_DEBUG NAMES brotlicommon brotlicommon-static brotlicommond brotlicommon-staticd PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" PATH_SUFFIXES lib NO_DEFAULT_PATH)
|
||||
include(SelectLibraryConfigurations)
|
||||
select_library_configurations(BROTLIDEC)
|
||||
select_library_configurations(BROTLICOMMON)
|
||||
endif("@FT_REQUIRE_BROTLI@")
|
||||
|
||||
if(TARGET Freetype::Freetype)
|
||||
if("@FT_REQUIRE_ZLIB@")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
|
||||
endif()
|
||||
if(BROTLIDEC_LIBRARY_RELEASE)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<NOT:$<CONFIG:DEBUG>>:${BROTLIDEC_LIBRARY_RELEASE}>)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<NOT:$<CONFIG:DEBUG>>:${BROTLICOMMON_LIBRARY_RELEASE}>)
|
||||
if("@FT_REQUIRE_BZIP2@")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES BZip2::BZip2)
|
||||
endif()
|
||||
if("@FT_REQUIRE_PNG@")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES PNG::PNG)
|
||||
endif()
|
||||
if("@FT_REQUIRE_BROTLI@")
|
||||
if(BROTLIDEC_LIBRARY_DEBUG)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<CONFIG:DEBUG>:${BROTLIDEC_LIBRARY_DEBUG}>")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<CONFIG:DEBUG>:${BROTLICOMMON_LIBRARY_DEBUG}>")
|
||||
endif()
|
||||
if(BROTLIDEC_LIBRARY_RELEASE)
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<NOT:$<CONFIG:DEBUG>>:${BROTLIDEC_LIBRARY_RELEASE}>")
|
||||
set_property(TARGET Freetype::Freetype APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<NOT:$<CONFIG:DEBUG>>:${BROTLICOMMON_LIBRARY_RELEASE}>")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(FREETYPE_LIBRARIES)
|
||||
if("@FT_REQUIRE_ZLIB@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${ZLIB_LIBRARIES})
|
||||
endif()
|
||||
if("@FT_REQUIRE_BZIP2@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${BZIP2_LIBRARIES})
|
||||
endif()
|
||||
if("@FT_REQUIRE_PNG@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${PNG_LIBRARIES})
|
||||
endif()
|
||||
if("@FT_REQUIRE_BROTLI@")
|
||||
list(APPEND FREETYPE_LIBRARIES ${BROTLIDEC_LIBRARIES} ${BROTLICOMMON_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(FREETYPE_LIBRARIES)
|
||||
if(@USE_ZLIB@)
|
||||
list(APPEND FREETYPE_LIBRARIES ${ZLIB_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(@USE_BZIP2@)
|
||||
list(APPEND FREETYPE_LIBRARIES ${BZIP2_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(@USE_PNG@)
|
||||
list(APPEND FREETYPE_LIBRARIES ${PNG_LIBRARIES})
|
||||
endif()
|
||||
|
||||
if(@USE_BROTLI@)
|
||||
list(APPEND FREETYPE_LIBRARIES ${BROTLIDEC_LIBRARIES} ${BROTLICOMMON_LIBRARIES})
|
||||
endif()
|
||||
endif()
|
||||
cmake_policy(POP)
|
||||
|
@ -1,6 +1,7 @@
|
||||
{
|
||||
"name": "freetype",
|
||||
"version-semver": "2.11.1",
|
||||
"port-version": 1,
|
||||
"description": "A library to render fonts.",
|
||||
"homepage": "https://www.freetype.org/",
|
||||
"dependencies": [
|
||||
|
@ -1,5 +1,5 @@
|
||||
list(FIND ARGS "COMPONENTS" COMPONENTS_IDX)
|
||||
if(NOT COMPONENTS_IDX EQUAL -1)
|
||||
if(COMPONENTS_IDX EQUAL -1)
|
||||
_find_package(${ARGS} COMPONENTS data)
|
||||
else()
|
||||
_find_package(${ARGS})
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "icu",
|
||||
"version": "69.1",
|
||||
"port-version": 18,
|
||||
"port-version": 19,
|
||||
"description": "Mature and widely used Unicode and localization library.",
|
||||
"homepage": "https://icu.unicode.org/home",
|
||||
"supports": "!uwp",
|
||||
|
@ -1,10 +1,11 @@
|
||||
cmake_policy(PUSH)
|
||||
cmake_policy(SET CMP0012 NEW)
|
||||
cmake_policy(SET CMP0054 NEW)
|
||||
find_path(JPEG_INCLUDE_DIR NAMES jpeglib.h PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/include" NO_DEFAULT_PATH)
|
||||
find_library(JPEG_LIBRARY_RELEASE NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH)
|
||||
find_library(JPEG_LIBRARY_DEBUG NAMES jpeg PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12)
|
||||
include(SelectLibraryConfigurations)
|
||||
select_library_configurations(JPEG)
|
||||
unset(JPEG_FOUND)
|
||||
if(CMAKE_VERSION VERSION_LESS 3.12 AND CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(JPEG_LIBRARY "${JPEG_LIBRARY_DEBUG}" CACHE FILEPATH "")
|
||||
endif()
|
||||
_find_package(${ARGS})
|
||||
if(JPEG_FOUND AND NOT TARGET JPEG::JPEG)
|
||||
@ -34,3 +35,4 @@ if(JPEG_FOUND AND NOT TARGET JPEG::JPEG)
|
||||
IMPORTED_LOCATION_DEBUG "${JPEG_LIBRARY_DEBUG}")
|
||||
endif()
|
||||
endif()
|
||||
cmake_policy(POP)
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "libjpeg-turbo",
|
||||
"version": "2.1.3",
|
||||
"port-version": 1,
|
||||
"port-version": 2,
|
||||
"description": "libjpeg-turbo is a JPEG image codec that uses SIMD instructions (MMX, SSE2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems.",
|
||||
"homepage": "https://github.com/libjpeg-turbo/libjpeg-turbo",
|
||||
"license": "BSD-3-Clause",
|
||||
|
@ -1,6 +1,9 @@
|
||||
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
||||
|
||||
set(cmake_version OFF)
|
||||
set(cmake_commands "")
|
||||
if("cmake-current" IN_LIST FEATURES)
|
||||
list(APPEND cmake_commands "${CMAKE_COMMAND}")
|
||||
endif()
|
||||
if("cmake-3-7" IN_LIST FEATURES)
|
||||
set(cmake_version 3.7.2)
|
||||
string(REGEX REPLACE "([^.]*[.][^.]*).*" "\\1" cmake_major_minor "${cmake_version}")
|
||||
@ -41,7 +44,7 @@ if("cmake-3-7" IN_LIST FEATURES)
|
||||
REF "${cmake_version}"
|
||||
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${name}"
|
||||
)
|
||||
set(CMAKE_COMMAND "${legacy_cmake}${cmake_bin_dir}/cmake")
|
||||
list(APPEND cmake_commands "${legacy_cmake}${cmake_bin_dir}/cmake")
|
||||
endif()
|
||||
|
||||
set(packages "")
|
||||
@ -68,12 +71,25 @@ else()
|
||||
endif()
|
||||
|
||||
function(test_cmake_project)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "NAME" "OPTIONS")
|
||||
cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "CMAKE_COMMAND;NAME" "OPTIONS")
|
||||
if(NOT arg_NAME)
|
||||
message(FATAL_ERROR "The NAME argument is mandatory.")
|
||||
endif()
|
||||
if(NOT arg_CMAKE_COMMAND)
|
||||
set(arg_CMAKE_COMMAND "${CMAKE_COMMAND}")
|
||||
endif()
|
||||
|
||||
set(build_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${arg_NAME}")
|
||||
execute_process(
|
||||
COMMAND "${arg_CMAKE_COMMAND}" --version
|
||||
OUTPUT_VARIABLE cmake_version_output
|
||||
RESULT_VARIABLE cmake_version_result
|
||||
)
|
||||
string(REGEX MATCH "[1-9][0-9]*\\.[0-9]*\\.[0-9]*" cmake_version "${cmake_version_output}")
|
||||
if(cmake_version_result OR NOT cmake_version)
|
||||
message(FATAL_ERROR "Unable to determine version for '${arg_CMAKE_COMMAND}'.")
|
||||
endif()
|
||||
|
||||
set(build_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-${arg_NAME}")
|
||||
set(base_options
|
||||
-G "Ninja"
|
||||
"-DCMAKE_MAKE_PROGRAM=${NINJA}"
|
||||
@ -82,6 +98,7 @@ function(test_cmake_project)
|
||||
"-DCMAKE_INSTALL_PREFIX=${build_dir}/install"
|
||||
"-DVCPKG_TARGET_TRIPLET=${TARGET_TRIPLET}"
|
||||
"-DVCPKG_MANIFEST_MODE=OFF"
|
||||
"-DCHECK_CMAKE_VERSION=${cmake_version}"
|
||||
)
|
||||
|
||||
if(DEFINED VCPKG_CMAKE_SYSTEM_NAME AND VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
||||
@ -100,22 +117,22 @@ function(test_cmake_project)
|
||||
list(APPEND base_options -DBUILD_SHARED_LIBS=OFF)
|
||||
endif()
|
||||
|
||||
message(STATUS "Running tests for '${arg_NAME}'")
|
||||
message(STATUS "Running tests with CMake ${cmake_version} for '${arg_NAME}'")
|
||||
file(REMOVE_RECURSE "${build_dir}")
|
||||
file(MAKE_DIRECTORY "${build_dir}")
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" "${CMAKE_CURRENT_LIST_DIR}/project"
|
||||
"${arg_CMAKE_COMMAND}" "${CMAKE_CURRENT_LIST_DIR}/project"
|
||||
${base_options}
|
||||
${arg_OPTIONS}
|
||||
WORKING_DIRECTORY "${build_dir}"
|
||||
LOGNAME "${TARGET_TRIPLET}-${arg_NAME}-config"
|
||||
LOGNAME "${TARGET_TRIPLET}-${cmake_version}-${arg_NAME}-config"
|
||||
)
|
||||
vcpkg_execute_required_process(
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" --build . --target install
|
||||
"${arg_CMAKE_COMMAND}" --build . --target install
|
||||
WORKING_DIRECTORY "${build_dir}"
|
||||
LOGNAME "${TARGET_TRIPLET}-${arg_NAME}-build"
|
||||
LOGNAME "${TARGET_TRIPLET}-${cmake_version}-${arg_NAME}-build"
|
||||
)
|
||||
# To produce better error messages for failing wrappers,
|
||||
# we run execute_process directly here, for each wrapper.
|
||||
@ -130,16 +147,16 @@ function(test_cmake_project)
|
||||
endif()
|
||||
foreach(package IN LISTS packages)
|
||||
string(MAKE_C_IDENTIFIER "${package}" package_string)
|
||||
set(find_package_build_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-find-package-${package_string}-${arg_NAME}")
|
||||
set(log_out "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-find-package-${package_string}-${arg_NAME}-out.log")
|
||||
set(log_err "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-find-package-${package_string}-${arg_NAME}-err.log")
|
||||
set(find_package_build_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}")
|
||||
set(log_out "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}-out.log")
|
||||
set(log_err "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${cmake_version}-find-package-${package_string}-${arg_NAME}-err.log")
|
||||
|
||||
message(STATUS " find_package(${package})")
|
||||
file(REMOVE_RECURSE "${find_package_build_dir}")
|
||||
file(MAKE_DIRECTORY "${find_package_build_dir}")
|
||||
execute_process(
|
||||
COMMAND
|
||||
"${CMAKE_COMMAND}" "${CMAKE_CURRENT_LIST_DIR}/project"
|
||||
"${arg_CMAKE_COMMAND}" "${CMAKE_CURRENT_LIST_DIR}/project"
|
||||
${base_options}
|
||||
${arg_OPTIONS}
|
||||
"-DFIND_PACKAGES=${package}"
|
||||
@ -155,17 +172,19 @@ function(test_cmake_project)
|
||||
endforeach()
|
||||
endfunction()
|
||||
|
||||
test_cmake_project(NAME "release"
|
||||
OPTIONS
|
||||
"-DCMAKE_BUILD_TYPE=Release"
|
||||
"-DCMAKE_PREFIX_PATH=SYSTEM_LIBS" # for testing VCPKG_PREFER_SYSTEM_LIBS
|
||||
"-DVCPKG_PREFER_SYSTEM_LIBS=OFF"
|
||||
"-DCHECK_CMAKE_VERSION=${cmake_version}"
|
||||
)
|
||||
test_cmake_project(NAME "debug"
|
||||
OPTIONS
|
||||
"-DCMAKE_BUILD_TYPE=Debug"
|
||||
"-DCMAKE_PREFIX_PATH=SYSTEM_LIBS" # for testing VCPKG_PREFER_SYSTEM_LIBS
|
||||
"-DVCPKG_PREFER_SYSTEM_LIBS=ON"
|
||||
"-DCHECK_CMAKE_VERSION=${cmake_version}"
|
||||
)
|
||||
foreach(executable IN LISTS cmake_commands)
|
||||
test_cmake_project(NAME "release"
|
||||
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()
|
||||
|
@ -51,16 +51,47 @@ foreach(package ${FIND_PACKAGES})
|
||||
set(CMAKE_FIND_DEBUG_MODE OFF)
|
||||
if(NOT ${package}_FOUND AND NOT ${package_upper}_FOUND)
|
||||
message(SEND_ERROR "find_package(${package}) check: failed")
|
||||
elseif(DEFINED ${package_upper}_LIBRARIES)
|
||||
message(STATUS "${package_upper}_LIBRARIES: ${${package_upper}_LIBRARIES}")
|
||||
message(STATUS "find_package(${package}) check: success")
|
||||
target_link_libraries(exe PRIVATE ${${package_upper}_LIBRARIES})
|
||||
elseif(DEFINED ${package}_LIBRARIES)
|
||||
message(STATUS "${package}_LIBRARIES: ${${package}_LIBRARIES}")
|
||||
message(STATUS "find_package(${package}) check: success")
|
||||
target_link_libraries(exe PRIVATE ${${package}_LIBRARIES})
|
||||
else()
|
||||
message(STATUS "${package}_LIBRARIES: undefined")
|
||||
message(STATUS "find_package(${package}) check: success")
|
||||
continue()
|
||||
endif()
|
||||
message(STATUS "find_package(${package}) check: success")
|
||||
|
||||
set(libraries_var "")
|
||||
if(DEFINED ${package}_LIBRARIES)
|
||||
set(libraries_var "${package_upper}_LIBRARIES")
|
||||
elseif(DEFINED ${package_upper}_LIBRARIES)
|
||||
set(libraries_var "${package}_LIBRARIES")
|
||||
elseif(DEFINED ${package}_LIBRARY)
|
||||
set(libraries_var "${package_upper}_LIBRARY")
|
||||
elseif(DEFINED ${package_upper}_LIBRARY)
|
||||
set(libraries_var "${package}_LIBRARY")
|
||||
else()
|
||||
message(STATUS "${package}_LIBRARY/IES: undefined")
|
||||
continue()
|
||||
endif()
|
||||
set(libraries "${${libraries_var}}")
|
||||
message(STATUS "${libraries_var}: ${libraries}")
|
||||
|
||||
if(package STREQUAL "Intl" AND NOT Intl_LIBRARY)
|
||||
continue() # using libintl.h from C runtime library
|
||||
endif()
|
||||
target_link_libraries(exe PRIVATE ${libraries})
|
||||
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release")
|
||||
string(REPLACE "debug;" "ignore:" libraries "${libraries}")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
string(REPLACE "optimized;" "ignore:" libraries "${libraries}")
|
||||
endif()
|
||||
foreach(item IN LISTS libraries)
|
||||
string(FIND "${item}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/" starts_with_vcpkg)
|
||||
if(NOT starts_with_vcpkg EQUAL "0")
|
||||
continue()
|
||||
endif()
|
||||
string(FIND "${item}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib/" starts_with_release)
|
||||
string(FIND "${item}" "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib/" starts_with_debug)
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Release" AND starts_with_debug EQUAL "0")
|
||||
message(SEND_ERROR "Debug lib in release build: ${item}")
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL "Debug" AND starts_with_release EQUAL "0")
|
||||
message(SEND_ERROR "Release lib in debug build: ${item}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cmake-user",
|
||||
"version-date": "2022-02-28",
|
||||
"version-date": "2022-03-18",
|
||||
"description": "Test port to verify the vcpkg toolchain in cmake user projects",
|
||||
"default-features": [
|
||||
"ci"
|
||||
@ -13,6 +13,7 @@
|
||||
"name": "cmake-user",
|
||||
"default-features": false,
|
||||
"features": [
|
||||
"cmake-current",
|
||||
"find-package"
|
||||
]
|
||||
},
|
||||
@ -27,7 +28,10 @@
|
||||
]
|
||||
},
|
||||
"cmake-3-7": {
|
||||
"description": "Use CMake 3.7 to build the test project"
|
||||
"description": "Run the tests with CMake 3.7"
|
||||
},
|
||||
"cmake-current": {
|
||||
"description": "Run the tests with vcpkg's current version of CMake"
|
||||
},
|
||||
"find-package": {
|
||||
"description": "Ports to be tested via find_package($package)",
|
||||
@ -44,6 +48,10 @@
|
||||
"$package": "Freetype",
|
||||
"name": "freetype"
|
||||
},
|
||||
{
|
||||
"$package": "ICU",
|
||||
"name": "icu"
|
||||
},
|
||||
{
|
||||
"$package": "Intl",
|
||||
"name": "gettext"
|
||||
@ -52,14 +60,17 @@
|
||||
"$package": "GIF",
|
||||
"name": "giflib"
|
||||
},
|
||||
{
|
||||
"$package": "JPEG",
|
||||
"name": "libjpeg-turbo"
|
||||
},
|
||||
{
|
||||
"$package": "LibLZMA",
|
||||
"name": "liblzma"
|
||||
},
|
||||
{
|
||||
"$package": "Curses",
|
||||
"name": "ncurses",
|
||||
"platform": "!windows & !uwp"
|
||||
"$package": "TIFF",
|
||||
"name": "tiff"
|
||||
},
|
||||
{
|
||||
"$package": "ZLIB",
|
||||
|
@ -2314,7 +2314,7 @@
|
||||
},
|
||||
"freetype": {
|
||||
"baseline": "2.11.1",
|
||||
"port-version": 0
|
||||
"port-version": 1
|
||||
},
|
||||
"freetype-gl": {
|
||||
"baseline": "2020-09-14",
|
||||
@ -2786,7 +2786,7 @@
|
||||
},
|
||||
"icu": {
|
||||
"baseline": "69.1",
|
||||
"port-version": 18
|
||||
"port-version": 19
|
||||
},
|
||||
"ideviceinstaller": {
|
||||
"baseline": "1.1.2.23",
|
||||
@ -3658,7 +3658,7 @@
|
||||
},
|
||||
"libjpeg-turbo": {
|
||||
"baseline": "2.1.3",
|
||||
"port-version": 1
|
||||
"port-version": 2
|
||||
},
|
||||
"libjuice": {
|
||||
"baseline": "0.9.8",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "ab8f5879ab23ffa292c80169f750b7edd6c2b4f1",
|
||||
"version-semver": "2.11.1",
|
||||
"port-version": 1
|
||||
},
|
||||
{
|
||||
"git-tree": "dadbf4b6e5f5670bf49489e26de326be6a72f962",
|
||||
"version-semver": "2.11.1",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "5d1bac4d5b2a05af577b0aa5bb8f600e5cf15427",
|
||||
"version": "69.1",
|
||||
"port-version": 19
|
||||
},
|
||||
{
|
||||
"git-tree": "789755812260e6c4759e305d1591938513023c07",
|
||||
"version": "69.1",
|
||||
|
@ -1,5 +1,10 @@
|
||||
{
|
||||
"versions": [
|
||||
{
|
||||
"git-tree": "dd9bb6eb0d4e28d2b3ef0d83b6b9ef736555621d",
|
||||
"version": "2.1.3",
|
||||
"port-version": 2
|
||||
},
|
||||
{
|
||||
"git-tree": "7373af20f73237f0453fb02a1ba097e5f710d2f5",
|
||||
"version": "2.1.3",
|
||||
|
Loading…
x
Reference in New Issue
Block a user