diff options
| author | Moritz Haase <Moritz.Haase@bmw.de> | 2025-07-03 15:27:14 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2025-07-07 22:12:50 +0100 |
| commit | 6e416d9247cc5cd6c21b769d66bd362f1d01a407 (patch) | |
| tree | 4b177473f11d495d4dd072c8a070c9f6e8018b44 | |
| parent | 2d8d90d051eb1195aad2cf50a2468b62a82caffc (diff) | |
| download | poky-6e416d9247cc5cd6c21b769d66bd362f1d01a407.tar.gz | |
libcomps: Backport patch to support builds with CMake 4+
PR [0] has been merged upstream, but there hasn't been a release containing it
yet.
[0]: https://github.com/rpm-software-management/libcomps/pull/119
(From OE-Core rev: 42e8b8085abcbdacb664645fd7c2d61511ee95f7)
Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/recipes-devtools/libcomps/libcomps/0001-libcomps-Support-builds-with-CMake-4.patch | 132 | ||||
| -rw-r--r-- | meta/recipes-devtools/libcomps/libcomps_0.1.21.bb | 1 |
2 files changed, 133 insertions, 0 deletions
diff --git a/meta/recipes-devtools/libcomps/libcomps/0001-libcomps-Support-builds-with-CMake-4.patch b/meta/recipes-devtools/libcomps/libcomps/0001-libcomps-Support-builds-with-CMake-4.patch new file mode 100644 index 0000000000..9a90e05888 --- /dev/null +++ b/meta/recipes-devtools/libcomps/libcomps/0001-libcomps-Support-builds-with-CMake-4.patch | |||
| @@ -0,0 +1,132 @@ | |||
| 1 | From 702ec1423fb9b53244b902923fd87ef19b63a7f5 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Moritz Haase <Moritz.Haase@bmw.de> | ||
| 3 | Date: Mon, 23 Jun 2025 08:32:18 +0200 | ||
| 4 | Subject: [PATCH] libcomps: Support builds with CMake 4+ | ||
| 5 | |||
| 6 | - Bump minimum required version to 3.10, the lowest one CMake 4+ don't complain | ||
| 7 | about. It's also possible to use 3.5, but that results in a deprecation | ||
| 8 | warning. The 'cmake_minimum_required()' invocation has been moved before the | ||
| 9 | initial 'project()' call as CMake complained about the wrong order. | ||
| 10 | |||
| 11 | - Set policy CMP0148 [0] to OLD to unblock build without additional changes. | ||
| 12 | Eventually, the usage of the 'PythonInterp' and 'PythonLibs' find modules will | ||
| 13 | be need to be updated to use 'Python3' instead. | ||
| 14 | |||
| 15 | - Set policy CMP0175 [1] to NEW and fix warnings. | ||
| 16 | |||
| 17 | - Fix the 'No TARGET ... has been created in this directory' error in | ||
| 18 | 'src/python'. | ||
| 19 | |||
| 20 | - Fix 'Utility target <foo> must not be used as the target of a | ||
| 21 | target_link_libraries call' errors (see [2]). | ||
| 22 | |||
| 23 | - Mark the 'check' library as required when tests are enabled to prevent test | ||
| 24 | targets from linking a non-existing library in case it's not installed. | ||
| 25 | |||
| 26 | [0]: https://cmake.org/cmake/help/latest/policy/CMP0148.html | ||
| 27 | [1]: https://cmake.org/cmake/help/latest/policy/CMP0175.html | ||
| 28 | [2]: https://cmake.org/cmake/help/latest/policy/CMP0039.html | ||
| 29 | |||
| 30 | Upstream-Status: Backport [702ec1423fb9b53244b902923fd87ef19b63a7f5] | ||
| 31 | Signed-off-by: Moritz Haase <Moritz.Haase@bmw.de> | ||
| 32 | --- | ||
| 33 | README.md | 3 +-- | ||
| 34 | libcomps/CMakeLists.txt | 7 +++++-- | ||
| 35 | libcomps/src/python/docs/CMakeLists.txt | 3 ++- | ||
| 36 | libcomps/src/python/pycopy.cmake | 7 ++++--- | ||
| 37 | libcomps/tests/CMakeLists.txt | 2 -- | ||
| 38 | 5 files changed, 12 insertions(+), 10 deletions(-) | ||
| 39 | |||
| 40 | diff --git a/README.md b/README.md | ||
| 41 | index 7f8314dd3f70d131c4d399f069d3d7bb77dcff02..24bf8a226d50b7b9b5372f98b52650ff4467c3d6 100644 | ||
| 42 | --- a/README.md | ||
| 43 | +++ b/README.md | ||
| 44 | @@ -27,7 +27,7 @@ for python bindings: | ||
| 45 | |||
| 46 | for C library tests: | ||
| 47 | |||
| 48 | -* check http://check.sourceforge.net/ | ||
| 49 | +* check https://github.com/libcheck/check | ||
| 50 | |||
| 51 | for documentation build: | ||
| 52 | |||
| 53 | @@ -128,4 +128,3 @@ Here's the most direct way to get your work merged into the project. | ||
| 54 | |||
| 55 | 1. Push the branch to your fork | ||
| 56 | 1. Send a pull request for your branch | ||
| 57 | - | ||
| 58 | diff --git a/libcomps/CMakeLists.txt b/libcomps/CMakeLists.txt | ||
| 59 | index d8d628af1a8b863b6173ff11615a59aa58d8235e..3957e63a311fc42c85516c0e66fc6f598194cb8f 100644 | ||
| 60 | --- a/libcomps/CMakeLists.txt | ||
| 61 | +++ b/libcomps/CMakeLists.txt | ||
| 62 | @@ -1,5 +1,8 @@ | ||
| 63 | +cmake_minimum_required (VERSION 3.10) | ||
| 64 | project(libcomps C) | ||
| 65 | -cmake_minimum_required (VERSION 2.8.10) | ||
| 66 | + | ||
| 67 | +cmake_policy(SET CMP0148 OLD) | ||
| 68 | +cmake_policy(SET CMP0175 NEW) | ||
| 69 | |||
| 70 | include (GNUInstallDirs) | ||
| 71 | include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake) | ||
| 72 | @@ -32,7 +35,7 @@ include_directories("${PROJECT_SOURCE_DIR}/src") | ||
| 73 | #include_directories("${PROJECT_SOURCE_DIR}/src/libcomps") | ||
| 74 | |||
| 75 | if (ENABLE_TESTS) | ||
| 76 | - find_library(CHECK_LIBRARY NAMES check) | ||
| 77 | + find_library(CHECK_LIBRARY REQUIRED NAMES check) | ||
| 78 | endif() | ||
| 79 | find_library(EXPAT_LIBRARY NAMES expat) | ||
| 80 | |||
| 81 | diff --git a/libcomps/src/python/docs/CMakeLists.txt b/libcomps/src/python/docs/CMakeLists.txt | ||
| 82 | index c4b388cb4a4bb2d962a625a448efcfee14ef71b3..9c92b2dacf4a2cb76f461b8038217cc8e895a369 100644 | ||
| 83 | --- a/libcomps/src/python/docs/CMakeLists.txt | ||
| 84 | +++ b/libcomps/src/python/docs/CMakeLists.txt | ||
| 85 | @@ -26,7 +26,8 @@ add_dependencies(pydocs pycomps) | ||
| 86 | include(../pycopy.cmake) | ||
| 87 | add_custom_command(TARGET pydocs PRE_BUILD COMMAND set -E $ENV{LD_LIBRARY_PATH} "${LIBCOMPS_OUT}:$ENV{LD_LIBRARY_PATH}") | ||
| 88 | |||
| 89 | -add_custom_command(TARGET pydocs COMMAND ${PYTHON_EXECUTABLE} ${SPHINX_EXECUTABLE} -E -b html | ||
| 90 | +add_custom_command(TARGET pydocs POST_BUILD | ||
| 91 | + COMMAND ${PYTHON_EXECUTABLE} ${SPHINX_EXECUTABLE} -E -b html | ||
| 92 | "${CMAKE_CURRENT_SOURCE_DIR}/doc-sources/" | ||
| 93 | "${CMAKE_CURRENT_BINARY_DIR}/html/" | ||
| 94 | COMMENT "LDLP $ENV{LD_LIBRARY_PATH}") | ||
| 95 | diff --git a/libcomps/src/python/pycopy.cmake b/libcomps/src/python/pycopy.cmake | ||
| 96 | index b22f83595c09b4af8f1c2e49ddbd7755f4c97f0b..0e99e38d791ffd13496bd8fbbf61cd7701e543b7 100644 | ||
| 97 | --- a/libcomps/src/python/pycopy.cmake | ||
| 98 | +++ b/libcomps/src/python/pycopy.cmake | ||
| 99 | @@ -6,9 +6,10 @@ math (EXPR len "${len} - 1") | ||
| 100 | |||
| 101 | #set(pycopy "py${pversion}-copy") | ||
| 102 | |||
| 103 | -#if (NOT TARGET ${pycopy}) | ||
| 104 | +if (NOT TARGET ${pycopy}) | ||
| 105 | + add_custom_target(${pycopy} DEPENDS pycomps) | ||
| 106 | +endif() | ||
| 107 | |||
| 108 | -#add_custom_target(${pycopy} DEPENDS pycomps) | ||
| 109 | set (pycomps_SRCDIR "${PROJECT_SOURCE_DIR}/src/python/src/") | ||
| 110 | set (pycomps_TESTDIR "${PROJECT_SOURCE_DIR}/src/python/tests/") | ||
| 111 | set (pycomps_LIBPATH ${PYCOMPS_LIB_PATH})#"${PROJECT_BINARY_DIR}/src/python/src/python${pversion}") | ||
| 112 | @@ -16,7 +17,7 @@ set (pycomps_LIBPATH ${PYCOMPS_LIB_PATH})#"${PROJECT_BINARY_DIR}/src/python/src/ | ||
| 113 | #add_custom_command(TARGET pycopy PRE_BUILD COMMAND ${CMAKE_COMMAND} -E | ||
| 114 | # make_directory "${CP_DST}") | ||
| 115 | |||
| 116 | -add_custom_command(TARGET ${pycopy} COMMAND ${CMAKE_COMMAND} -E | ||
| 117 | +add_custom_command(TARGET ${pycopy} POST_BUILD COMMAND ${CMAKE_COMMAND} -E | ||
| 118 | make_directory ${pycomps_LIBPATH}/libcomps/comps/) | ||
| 119 | |||
| 120 | foreach(x RANGE 0 ${len}) | ||
| 121 | diff --git a/libcomps/tests/CMakeLists.txt b/libcomps/tests/CMakeLists.txt | ||
| 122 | index 23ced7450afa02977c63f9374a4fee33ae596d98..9d6e428e18d5a234c7be74d957c25961dea30050 100644 | ||
| 123 | --- a/libcomps/tests/CMakeLists.txt | ||
| 124 | +++ b/libcomps/tests/CMakeLists.txt | ||
| 125 | @@ -87,7 +87,5 @@ add_custom_target(test_parse_run | ||
| 126 | WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} | ||
| 127 | DEPENDS test_parse | ||
| 128 | COMMENT "Running comps_parse test") | ||
| 129 | -target_link_libraries(test_parse_run libcomps) | ||
| 130 | -target_link_libraries(test_comps_run libcomps) | ||
| 131 | |||
| 132 | add_dependencies(ctest test_comps_run test_parse_run) | ||
diff --git a/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb b/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb index 5709f3e69f..9429c703e1 100644 --- a/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb +++ b/meta/recipes-devtools/libcomps/libcomps_0.1.21.bb | |||
| @@ -5,6 +5,7 @@ LICENSE = "GPL-2.0-only" | |||
| 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" | 5 | LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" |
| 6 | 6 | ||
| 7 | SRC_URI = "git://github.com/rpm-software-management/libcomps.git;branch=master;protocol=https \ | 7 | SRC_URI = "git://github.com/rpm-software-management/libcomps.git;branch=master;protocol=https \ |
| 8 | file://0001-libcomps-Support-builds-with-CMake-4.patch \ | ||
| 8 | file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ | 9 | file://0002-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch \ |
| 9 | " | 10 | " |
| 10 | 11 | ||
