forked from pool/libcomps
+ tests: Don't print parsing errors during tests + tests: Unify formatting of current test announcements + build: Restore compatiblity with libxml2-2.12.0 + Fix build: use correct variable for category and env - Drop libcomps-c99.patch: fixed upstream. - Add 702ec142.patch: Upstream commit, support builds with cmake 4.x. OBS-URL: https://build.opensuse.org/package/show/system:packagemanager:dnf/libcomps?expand=0&rev=41
130 lines
5.2 KiB
Diff
130 lines
5.2 KiB
Diff
From 702ec1423fb9b53244b902923fd87ef19b63a7f5 Mon Sep 17 00:00:00 2001
|
|
From: Moritz Haase <Moritz.Haase@bmw.de>
|
|
Date: Mon, 23 Jun 2025 08:32:18 +0200
|
|
Subject: [PATCH] libcomps: Support builds with CMake 4+
|
|
|
|
- Bump minimum required version to 3.10, the lowest one CMake 4+ don't complain
|
|
about. It's also possible to use 3.5, but that results in a deprecation
|
|
warning. The 'cmake_minimum_required()' invocation has been moved before the
|
|
initial 'project()' call as CMake complained about the wrong order.
|
|
|
|
- Set policy CMP0148 [0] to OLD to unblock build without additional changes.
|
|
Eventually, the usage of the 'PythonInterp' and 'PythonLibs' find modules will
|
|
be need to be updated to use 'Python3' instead.
|
|
|
|
- Set policy CMP0175 [1] to NEW and fix warnings.
|
|
|
|
- Fix the 'No TARGET ... has been created in this directory' error in
|
|
'src/python'.
|
|
|
|
- Fix 'Utility target <foo> must not be used as the target of a
|
|
target_link_libraries call' errors (see [2]).
|
|
|
|
- Mark the 'check' library as required when tests are enabled to prevent test
|
|
targets from linking a non-existing library in case it's not installed.
|
|
|
|
[0]: https://cmake.org/cmake/help/latest/policy/CMP0148.html
|
|
[1]: https://cmake.org/cmake/help/latest/policy/CMP0175.html
|
|
[2]: https://cmake.org/cmake/help/latest/policy/CMP0039.html
|
|
---
|
|
README.md | 3 +--
|
|
libcomps/CMakeLists.txt | 7 +++++--
|
|
libcomps/src/python/docs/CMakeLists.txt | 3 ++-
|
|
libcomps/src/python/pycopy.cmake | 7 ++++---
|
|
libcomps/tests/CMakeLists.txt | 2 --
|
|
5 files changed, 12 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/README.md b/README.md
|
|
index 7f8314d..24bf8a2 100644
|
|
--- a/README.md
|
|
+++ b/README.md
|
|
@@ -27,7 +27,7 @@ for python bindings:
|
|
|
|
for C library tests:
|
|
|
|
-* check http://check.sourceforge.net/
|
|
+* check https://github.com/libcheck/check
|
|
|
|
for documentation build:
|
|
|
|
@@ -128,4 +128,3 @@ Here's the most direct way to get your work merged into the project.
|
|
|
|
1. Push the branch to your fork
|
|
1. Send a pull request for your branch
|
|
-
|
|
diff --git a/libcomps/CMakeLists.txt b/libcomps/CMakeLists.txt
|
|
index d8d628a..3957e63 100644
|
|
--- a/libcomps/CMakeLists.txt
|
|
+++ b/libcomps/CMakeLists.txt
|
|
@@ -1,5 +1,8 @@
|
|
+cmake_minimum_required (VERSION 3.10)
|
|
project(libcomps C)
|
|
-cmake_minimum_required (VERSION 2.8.10)
|
|
+
|
|
+cmake_policy(SET CMP0148 OLD)
|
|
+cmake_policy(SET CMP0175 NEW)
|
|
|
|
include (GNUInstallDirs)
|
|
include (${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
|
|
@@ -32,7 +35,7 @@ include_directories("${PROJECT_SOURCE_DIR}/src")
|
|
#include_directories("${PROJECT_SOURCE_DIR}/src/libcomps")
|
|
|
|
if (ENABLE_TESTS)
|
|
- find_library(CHECK_LIBRARY NAMES check)
|
|
+ find_library(CHECK_LIBRARY REQUIRED NAMES check)
|
|
endif()
|
|
find_library(EXPAT_LIBRARY NAMES expat)
|
|
|
|
diff --git a/libcomps/src/python/docs/CMakeLists.txt b/libcomps/src/python/docs/CMakeLists.txt
|
|
index c4b388c..9c92b2d 100644
|
|
--- a/libcomps/src/python/docs/CMakeLists.txt
|
|
+++ b/libcomps/src/python/docs/CMakeLists.txt
|
|
@@ -26,7 +26,8 @@ add_dependencies(pydocs pycomps)
|
|
include(../pycopy.cmake)
|
|
add_custom_command(TARGET pydocs PRE_BUILD COMMAND set -E $ENV{LD_LIBRARY_PATH} "${LIBCOMPS_OUT}:$ENV{LD_LIBRARY_PATH}")
|
|
|
|
-add_custom_command(TARGET pydocs COMMAND ${PYTHON_EXECUTABLE} ${SPHINX_EXECUTABLE} -E -b html
|
|
+add_custom_command(TARGET pydocs POST_BUILD
|
|
+ COMMAND ${PYTHON_EXECUTABLE} ${SPHINX_EXECUTABLE} -E -b html
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/doc-sources/"
|
|
"${CMAKE_CURRENT_BINARY_DIR}/html/"
|
|
COMMENT "LDLP $ENV{LD_LIBRARY_PATH}")
|
|
diff --git a/libcomps/src/python/pycopy.cmake b/libcomps/src/python/pycopy.cmake
|
|
index b22f835..0e99e38 100644
|
|
--- a/libcomps/src/python/pycopy.cmake
|
|
+++ b/libcomps/src/python/pycopy.cmake
|
|
@@ -6,9 +6,10 @@ math (EXPR len "${len} - 1")
|
|
|
|
#set(pycopy "py${pversion}-copy")
|
|
|
|
-#if (NOT TARGET ${pycopy})
|
|
+if (NOT TARGET ${pycopy})
|
|
+ add_custom_target(${pycopy} DEPENDS pycomps)
|
|
+endif()
|
|
|
|
-#add_custom_target(${pycopy} DEPENDS pycomps)
|
|
set (pycomps_SRCDIR "${PROJECT_SOURCE_DIR}/src/python/src/")
|
|
set (pycomps_TESTDIR "${PROJECT_SOURCE_DIR}/src/python/tests/")
|
|
set (pycomps_LIBPATH ${PYCOMPS_LIB_PATH})#"${PROJECT_BINARY_DIR}/src/python/src/python${pversion}")
|
|
@@ -16,7 +17,7 @@ set (pycomps_LIBPATH ${PYCOMPS_LIB_PATH})#"${PROJECT_BINARY_DIR}/src/python/src/
|
|
#add_custom_command(TARGET pycopy PRE_BUILD COMMAND ${CMAKE_COMMAND} -E
|
|
# make_directory "${CP_DST}")
|
|
|
|
-add_custom_command(TARGET ${pycopy} COMMAND ${CMAKE_COMMAND} -E
|
|
+add_custom_command(TARGET ${pycopy} POST_BUILD COMMAND ${CMAKE_COMMAND} -E
|
|
make_directory ${pycomps_LIBPATH}/libcomps/comps/)
|
|
|
|
foreach(x RANGE 0 ${len})
|
|
diff --git a/libcomps/tests/CMakeLists.txt b/libcomps/tests/CMakeLists.txt
|
|
index 23ced74..9d6e428 100644
|
|
--- a/libcomps/tests/CMakeLists.txt
|
|
+++ b/libcomps/tests/CMakeLists.txt
|
|
@@ -87,7 +87,5 @@ add_custom_target(test_parse_run
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
DEPENDS test_parse
|
|
COMMENT "Running comps_parse test")
|
|
-target_link_libraries(test_parse_run libcomps)
|
|
-target_link_libraries(test_comps_run libcomps)
|
|
|
|
add_dependencies(ctest test_comps_run test_parse_run)
|