From 5682a0c0972a247d0855756d6d7aa1b5384419e4 Mon Sep 17 00:00:00 2001 From: Pierre Wendling Date: Wed, 16 Aug 2023 18:44:14 -0400 Subject: [PATCH] CMake: Fix generated config. - `YAML_CPP_SHARED_LIBS_BUILT` should not be set with a `PATH_VAR` as it would always evaluate to true. - `YAML_CPP_LIBRARIES` should used the exported target name including the namespace, but `check_required_components` shouldn't. - Use `CMAKE_CURRENT_LIST_DIR` to find the target file, instead of a `PATH_VAR`. Package managers such as vcpkg move CMake configs after installing. --- CMakeLists.txt | 4 ++-- yaml-cpp-config.cmake.in | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 656da9b..04f682c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,12 +146,12 @@ set_target_properties(yaml-cpp PROPERTIES PROJECT_LABEL "yaml-cpp ${yaml-cpp-label-postfix}" DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}") -set(EXPORT_TARGETS yaml-cpp) +set(EXPORT_TARGETS yaml-cpp::yaml-cpp) configure_package_config_file( "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in" "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" INSTALL_DESTINATION "${YAML_CPP_INSTALL_CMAKEDIR}" - PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR YAML_BUILD_SHARED_LIBS) + PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR) unset(EXPORT_TARGETS) write_basic_package_version_file( diff --git a/yaml-cpp-config.cmake.in b/yaml-cpp-config.cmake.in index 799b9b4..b1e30b6 100644 --- a/yaml-cpp-config.cmake.in +++ b/yaml-cpp-config.cmake.in @@ -11,12 +11,12 @@ set_and_check(YAML_CPP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") set_and_check(YAML_CPP_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@") # Are we building shared libraries? -set(YAML_CPP_SHARED_LIBS_BUILT "@PACKAGE_YAML_BUILD_SHARED_LIBS@") +set(YAML_CPP_SHARED_LIBS_BUILT @YAML_BUILD_SHARED_LIBS@) # Our library dependencies (contains definitions for IMPORTED targets) -include(@PACKAGE_CONFIG_EXPORT_DIR@/yaml-cpp-targets.cmake) +include("${CMAKE_CURRENT_LIST_DIR}/yaml-cpp-targets.cmake") # These are IMPORTED targets created by yaml-cpp-targets.cmake set(YAML_CPP_LIBRARIES "@EXPORT_TARGETS@") -check_required_components(@EXPORT_TARGETS@) +check_required_components(yaml-cpp)