diff options
author | Azamat H. Hackimov <azamat.hackimov@gmail.com> | 2022-09-17 12:31:33 +0300 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-25 02:18:24 +0100 |
commit | 9614b28e55585a296741eeffd46952ec79223f13 (patch) | |
tree | 6c9fcbedf9afad0a08ffc81206ae8d96b659b368 /dev-cpp/yaml-cpp/files | |
parent | dev-cpp/asio: Stabilize 1.22.2 x86, #872704 (diff) | |
download | gentoo-9614b28e55585a296741eeffd46952ec79223f13.tar.gz gentoo-9614b28e55585a296741eeffd46952ec79223f13.tar.bz2 gentoo-9614b28e55585a296741eeffd46952ec79223f13.zip |
dev-cpp/yaml-cpp: update EAPI 7 -> 8, fix installed .pc & CMake files
Closes: https://bugs.gentoo.org/867955
Signed-off-by: Azamat H. Hackimov <azamat.hackimov@gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/27302
Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-cpp/yaml-cpp/files')
3 files changed, 137 insertions, 6 deletions
diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-cmake-paths.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-cmake-paths.patch new file mode 100644 index 000000000000..5ad9e46dbcb2 --- /dev/null +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-cmake-paths.patch @@ -0,0 +1,101 @@ +From d5d68286cdd983f99f88b6141a3c34d3bf633d98 Mon Sep 17 00:00:00 2001 +From: Felix Schwitzer <flx107809@gmail.com> +Date: Fri, 1 Apr 2022 05:26:47 +0200 +Subject: [PATCH] Fix CMake export files (#1077) + +After configuring the file `yaml-cpp-config.cmake.in`, the result ends up with +empty variables. (see also the discussion in #774). + +Rework this file and the call to `configure_package_config_file` according the +cmake documentation +(https://cmake.org/cmake/help/v3.22/module/CMakePackageConfigHelpers.html?highlight=configure_package_config#command:configure_package_config_file) +to overcome this issue and allow a simple `find_package` after install. + +As there was some discussion about the place where to install the +`yaml-cpp-config.cmake` file, e.g. #1055, factor out the install location into +an extra variable to make it easier changing this location in the future. + +Also untabify CMakeLists.txt in some places to align with the other code parts in this file. +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -127,10 +127,16 @@ set_target_properties(yaml-cpp PROPERTIES + PROJECT_LABEL "yaml-cpp ${yaml-cpp-label-postfix}" + DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}") + ++# FIXME(felix2012): A more common place for the cmake export would be ++# `CMAKE_INSTALL_LIBDIR`, as e.g. done in ubuntu or in this project for GTest ++set(CONFIG_EXPORT_DIR "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") ++set(EXPORT_TARGETS yaml-cpp) + configure_package_config_file( + "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in" + "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" +- INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") ++ INSTALL_DESTINATION "${CONFIG_EXPORT_DIR}" ++ PATH_VARS CMAKE_INSTALL_INCLUDEDIR CONFIG_EXPORT_DIR) ++unset(EXPORT_TARGETS) + + write_basic_package_version_file( + "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" +@@ -139,30 +145,31 @@ write_basic_package_version_file( + configure_file(yaml-cpp.pc.in yaml-cpp.pc @ONLY) + + if (YAML_CPP_INSTALL) +- install(TARGETS yaml-cpp ++ install(TARGETS yaml-cpp + EXPORT yaml-cpp-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ ++ install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +- FILES_MATCHING PATTERN "*.h") ++ FILES_MATCHING PATTERN "*.h") + install(EXPORT yaml-cpp-targets +- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") +- install(FILES +- "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" +- "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" +- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") ++ DESTINATION "${CONFIG_EXPORT_DIR}") ++ install(FILES ++ "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake" ++ "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" ++ DESTINATION "${CONFIG_EXPORT_DIR}") + install(FILES "${PROJECT_BINARY_DIR}/yaml-cpp.pc" + DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) + endif() ++unset(CONFIG_EXPORT_DIR) + + if(YAML_CPP_BUILD_TESTS) +- add_subdirectory(test) ++ add_subdirectory(test) + endif() + + if(YAML_CPP_BUILD_TOOLS) +- add_subdirectory(util) ++ add_subdirectory(util) + endif() + + if (YAML_CPP_CLANG_FORMAT_EXE) +--- a/yaml-cpp-config.cmake.in ++++ b/yaml-cpp-config.cmake.in +@@ -3,12 +3,14 @@ + # YAML_CPP_INCLUDE_DIR - include directory + # YAML_CPP_LIBRARIES - libraries to link against + +-# Compute paths +-get_filename_component(YAML_CPP_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +-set(YAML_CPP_INCLUDE_DIR "@CONFIG_INCLUDE_DIRS@") ++@PACKAGE_INIT@ ++ ++set_and_check(YAML_CPP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") + + # Our library dependencies (contains definitions for IMPORTED targets) +-include("${YAML_CPP_CMAKE_DIR}/yaml-cpp-targets.cmake") ++include(@PACKAGE_CONFIG_EXPORT_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@) diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-gtest.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-gtest.patch index 45eebb43ffe2..bd05fccca373 100644 --- a/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-gtest.patch +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-gtest.patch @@ -1,8 +1,11 @@ -diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt -index 5ebc1a6..f02c2bb 100644 +From 30fbefe6102da12e8d4d132aa4af2e24bfda9bfb Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Sat, 17 Sep 2022 12:25:24 +0300 +Subject: [PATCH] Use external gtest dependency + --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt -@@ -1,13 +1,10 @@ +@@ -1,15 +1,10 @@ find_package(Threads REQUIRED) +find_package(GTest REQUIRED CONFIG) @@ -14,10 +17,12 @@ index 5ebc1a6..f02c2bb 100644 - "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.10.0" - "${CMAKE_CURRENT_BINARY_DIR}/prefix") - - include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.10.0/googletest/include") - +-include_directories(SYSTEM "${CMAKE_CURRENT_SOURCE_DIR}/gtest-1.10.0/googletest/include") +- set(test-new-api-pattern "new-api/*.cpp") -@@ -38,7 +35,7 @@ target_link_libraries(yaml-cpp-tests + set(test-source-pattern "*.cpp" "integration/*.cpp" "node/*.cpp") + if (CMAKE_VERSION VERSION_GREATER 3.11) +@@ -38,7 +33,7 @@ target_link_libraries(yaml-cpp-tests PRIVATE Threads::Threads yaml-cpp diff --git a/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-install-paths.patch b/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-install-paths.patch new file mode 100644 index 000000000000..622c0d7f148f --- /dev/null +++ b/dev-cpp/yaml-cpp/files/yaml-cpp-0.7.0-install-paths.patch @@ -0,0 +1,25 @@ +From 4f5b5ba19ece906252cfc90b7cd51035e21c7118 Mon Sep 17 00:00:00 2001 +From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com> +Date: Sat, 17 Sep 2022 12:07:46 +0300 +Subject: [PATCH] Fix pkg-config file install destination + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -129,7 +129,7 @@ set_target_properties(yaml-cpp PROPERTIES + + # FIXME(felix2012): A more common place for the cmake export would be + # `CMAKE_INSTALL_LIBDIR`, as e.g. done in ubuntu or in this project for GTest +-set(CONFIG_EXPORT_DIR "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp") ++set(CONFIG_EXPORT_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/yaml-cpp") + set(EXPORT_TARGETS yaml-cpp) + configure_package_config_file( + "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in" +@@ -160,7 +160,7 @@ if (YAML_CPP_INSTALL) + "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake" + DESTINATION "${CONFIG_EXPORT_DIR}") + install(FILES "${PROJECT_BINARY_DIR}/yaml-cpp.pc" +- DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + endif() + unset(CONFIG_EXPORT_DIR) + |