From 3eb5a138fe694374887f382f4d3a6306bcf22b03 Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Wed, 29 Apr 2026 19:29:26 +0200 Subject: [PATCH 01/10] Add release notes for 6.3.6 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f05470dd..eba74aec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [6.3.6] - 22035-04-29 + +### Removed +- Remove unused boost::filesystem includes and is_regular usage from tests + - Clean up redundant includes in Auxiliary, Configuration, and Path tests + - Remove unused is_regular and is_regular_file checks + - Simplify boost::filesystem usage to only required functions + - Improve code clarity and maintainability in test files + ## [6.3.5] - 2025-12-11 From ddc0ed2d8674f1c6b5f883b1827c2c398e3f2f39 Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Mon, 15 Jun 2026 14:26:20 +0200 Subject: [PATCH 02/10] Bump the version to 6.3.7 to allow the release-6.3 to build on jenkins --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 09d72d86..d9beaf25 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,10 +16,10 @@ find_package(ElementsProject) include(ElementsDefaults) # Declare project name and version -elements_project(Elements 6.3.6 DESCRIPTION "A C++ base framework for the Euclid Software.") +elements_project(Elements 6.3.7 DESCRIPTION "A C++ base framework for the Euclid Software.") # This test does not really fit in a subdirectory. add_python_test_dir(cmake/scripts/EnvConfig PREFIX cmake.EnvConfig PATTERN "Test*.py") - +OB61;8203;1c #print_all_variables() From e4319a37e56a926f8d57a14e4c1f434a4e7a6009 Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Mon, 15 Jun 2026 14:31:26 +0200 Subject: [PATCH 03/10] Removet randomly inserted chars --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d9beaf25..c4c6353d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,5 +21,5 @@ elements_project(Elements 6.3.7 DESCRIPTION "A C++ base framework for the Euclid # This test does not really fit in a subdirectory. add_python_test_dir(cmake/scripts/EnvConfig PREFIX cmake.EnvConfig PATTERN "Test*.py") -OB61;8203;1c + #print_all_variables() From 51b641fa35e256381424f56c49ae6aca5bbd3c21 Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Mon, 15 Jun 2026 15:26:26 +0200 Subject: [PATCH 04/10] Fix incorrect date in CHANGELOG for version 6.3.6 entry - Update date from 22035-04-29 to 2026-04-29 - Maintain changelog accuracy for release tracking - No code or dependency changes included - Only documentation updated - Ensures correct historical record - No impact on build or tests --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eba74aec..fd0f5095 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [6.3.6] - 22035-04-29 +## [6.3.6] - 2026-04-29 ### Removed - Remove unused boost::filesystem includes and is_regular usage from tests From 0e6f9cf646190ca313c2c86997713d336e2b05c4 Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Mon, 15 Jun 2026 15:26:51 +0200 Subject: [PATCH 05/10] Add fallback to non-INTERFACE CMake properties for better compatibility - Check SOURCE_DIR and REQUIRED_* if INTERFACE_* properties are missing - Set new SOURCE_DIR, REQUIRED_INCLUDE_DIRS, and REQUIRED_LIBRARIES properties - Improve robustness when resolving include and library directories - Update export logic to handle both INTERFACE and non-INTERFACE properties - Enhance compatibility with targets lacking INTERFACE properties - No changes to logic for versioned libraries or unrelated code paths --- cmake/ElementsProjectConfig.cmake | 41 +++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/cmake/ElementsProjectConfig.cmake b/cmake/ElementsProjectConfig.cmake index 78facf18..eb8e03d0 100644 --- a/cmake/ElementsProjectConfig.cmake +++ b/cmake/ElementsProjectConfig.cmake @@ -1829,6 +1829,9 @@ macro(_get_include_dir_from_package inc_dir pck) set(${inc_dir}) if(TARGET ${pck}) get_target_property(${inc_dir} ${pck} INTERFACE_SOURCE_DIR) + if(NOT ${inc_dir}) + get_target_property(${inc_dir} ${pck} SOURCE_DIR) + endif() elseif(IS_ABSOLUTE ${pck} AND IS_DIRECTORY ${pck}) set(${inc_dir} ${pck}) elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${pck}) @@ -1914,6 +1917,9 @@ function(print_package_directories) # we need to ensure that the user can call this function also for directories if(TARGET ${package}) get_target_property(to_incl ${package} INTERFACE_SOURCE_DIR) + if(NOT to_incl) + get_target_property(to_incl ${package} SOURCE_DIR) + endif() if(to_incl) message(STATUS "print_package_directories1 include_directories(${to_incl})") endif() @@ -2212,6 +2218,9 @@ function(elements_resolve_link_libraries variable) #message(STATUS "${package} is a TARGET") set(collected ${collected} ${package}) get_target_property(libs ${package} INTERFACE_REQUIRED_LIBRARIES) + if(NOT libs) + get_target_property(libs ${package} REQUIRED_LIBRARIES) + endif() if(libs) set(to_be_resolved ${to_be_resolved} ${libs}) endif() @@ -2333,6 +2342,9 @@ function(elements_get_required_include_dirs output) if(TARGET ${lib}) list(APPEND collected ${lib}) get_property(req TARGET ${lib} PROPERTY INTERFACE_REQUIRED_INCLUDE_DIRS) + if(NOT req) + get_property(req TARGET ${lib} PROPERTY REQUIRED_INCLUDE_DIRS) + endif() if(req) list(APPEND collected ${req}) endif() @@ -2585,7 +2597,11 @@ Provide source files and the NO_PUBLIC_HEADERS option for a plugin/module librar set_target_properties(${library} PROPERTIES INTERFACE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" INTERFACE_REQUIRED_INCLUDE_DIRS "${ARG_INCLUDE_DIRS}" - INTERFACE_REQUIRED_LIBRARIES "${ARG_LINK_LIBRARIES}") + INTERFACE_REQUIRED_LIBRARIES "${ARG_LINK_LIBRARIES}" + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" + REQUIRED_INCLUDE_DIRS "${ARG_INCLUDE_DIRS}" + REQUIRED_LIBRARIES "${ARG_LINK_LIBRARIES}" + ) set_property(GLOBAL APPEND PROPERTY LINKER_LIBRARIES ${library}) if(USE_VERSIONED_LIBRARIES) @@ -4615,12 +4631,23 @@ link_directories(AFTER \${_IMPORT_PREFIX}/${lib_install_suff}) file(APPEND ${pkg_exp_file} "add_library(${library} SHARED IMPORTED)\n") file(APPEND ${pkg_exp_file} "set_target_properties(${library} PROPERTIES\n") - foreach(pn INTERFACE_REQUIRED_INCLUDE_DIRS INTERFACE_REQUIRED_LIBRARIES) - get_property(prop TARGET ${library} PROPERTY ${pn}) - if (prop) - file(APPEND ${pkg_exp_file} " ${pn} \"${prop}\"\n") - endif() - endforeach() + get_property(prop TARGET ${library} PROPERTY INTERFACE_REQUIRED_INCLUDE_DIRS) + if(NOT prop) + get_property(prop TARGET ${library} PROPERTY REQUIRED_INCLUDE_DIRS) + endif() + if (prop) + file(APPEND ${pkg_exp_file} " ${pn} \"${prop}\"\n") + endif() + set(prop) + + get_property(prop TARGET ${library} PROPERTY INTERFACE_REQUIRED_LIBRARIES) + if(NOT prop) + get_property(prop TARGET ${library} PROPERTY REQUIRED_LIBRARIES) + endif() + if (prop) + file(APPEND ${pkg_exp_file} " ${pn} \"${prop}\"\n") + endif() + set(prop) if(NOT CMAKE_VERSION VERSION_LESS 3.9.0) # set(prop $) From 41f1ac381c75c97f335d9709b8e5d501b39de017 Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Mon, 15 Jun 2026 16:05:59 +0000 Subject: [PATCH 06/10] Attempt to fix the interface variables for CMake < 3.19 --- cmake/ElementsProjectConfig.cmake | 86 +++++++++++++++++-------------- 1 file changed, 48 insertions(+), 38 deletions(-) diff --git a/cmake/ElementsProjectConfig.cmake b/cmake/ElementsProjectConfig.cmake index eb8e03d0..8c479528 100644 --- a/cmake/ElementsProjectConfig.cmake +++ b/cmake/ElementsProjectConfig.cmake @@ -1828,8 +1828,9 @@ macro(_get_include_dir_from_package inc_dir pck) set(${inc_dir}) if(TARGET ${pck}) - get_target_property(${inc_dir} ${pck} INTERFACE_SOURCE_DIR) - if(NOT ${inc_dir}) + if(CMAKE_VERSION VERSION_LESS 3.19) + get_target_property(${inc_dir} ${pck} INTERFACE_SOURCE_DIR) + else() get_target_property(${inc_dir} ${pck} SOURCE_DIR) endif() elseif(IS_ABSOLUTE ${pck} AND IS_DIRECTORY ${pck}) @@ -1916,10 +1917,11 @@ function(print_package_directories) foreach(package ${ARGN}) # we need to ensure that the user can call this function also for directories if(TARGET ${package}) - get_target_property(to_incl ${package} INTERFACE_SOURCE_DIR) - if(NOT to_incl) - get_target_property(to_incl ${package} SOURCE_DIR) - endif() + if(CMAKE_VERSION VERSION_LESS 3.19) + get_target_property(${inc_dir} ${pck} INTERFACE_SOURCE_DIR) + else() + get_target_property(to_incl ${package} SOURCE_DIR) + endif() if(to_incl) message(STATUS "print_package_directories1 include_directories(${to_incl})") endif() @@ -2209,7 +2211,7 @@ endfunction() # elements_add_library #------------------------------------------------------------------------------- function(elements_resolve_link_libraries variable) - # message(STATUS "elements_resolve_link_libraries input: ${ARGN}") + #message(STATUS "elements_resolve_link_libraries input: ${ARGN}") set(collected) set(to_be_resolved) foreach(package ${ARGN}) @@ -2217,9 +2219,10 @@ function(elements_resolve_link_libraries variable) if(TARGET ${package}) #message(STATUS "${package} is a TARGET") set(collected ${collected} ${package}) - get_target_property(libs ${package} INTERFACE_REQUIRED_LIBRARIES) - if(NOT libs) - get_target_property(libs ${package} REQUIRED_LIBRARIES) + if(CMAKE_VERSION VERSION_LESS 3.19) + get_target_property(libs ${package} INTERFACE_REQUIRED_LIBRARIES) + else() + get_target_property(libs ${package} REQUIRED_LIBRARIES) endif() if(libs) set(to_be_resolved ${to_be_resolved} ${libs}) @@ -2341,9 +2344,10 @@ function(elements_get_required_include_dirs output) set(req) if(TARGET ${lib}) list(APPEND collected ${lib}) - get_property(req TARGET ${lib} PROPERTY INTERFACE_REQUIRED_INCLUDE_DIRS) - if(NOT req) - get_property(req TARGET ${lib} PROPERTY REQUIRED_INCLUDE_DIRS) + if(CMAKE_VERSION VERSION_LESS 3.19) + get_property(req TARGET ${lib} PROPERTY INTERFACE_REQUIRED_INCLUDE_DIRS) + else() + get_property(req TARGET ${lib} PROPERTY REQUIRED_INCLUDE_DIRS) endif() if(req) list(APPEND collected ${req}) @@ -2594,14 +2598,21 @@ Provide source files and the NO_PUBLIC_HEADERS option for a plugin/module librar _elements_detach_debinfo(${library}) # Declare that the used headers are needed by the libraries linked against this one - set_target_properties(${library} PROPERTIES - INTERFACE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" - INTERFACE_REQUIRED_INCLUDE_DIRS "${ARG_INCLUDE_DIRS}" - INTERFACE_REQUIRED_LIBRARIES "${ARG_LINK_LIBRARIES}" - SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" - REQUIRED_INCLUDE_DIRS "${ARG_INCLUDE_DIRS}" - REQUIRED_LIBRARIES "${ARG_LINK_LIBRARIES}" - ) + + if(CMAKE_VERSION VERSION_LESS 3.19) + set_target_properties(${library} PROPERTIES + INTERFACE_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" + INTERFACE_REQUIRED_INCLUDE_DIRS "${ARG_INCLUDE_DIRS}" + INTERFACE_REQUIRED_LIBRARIES "${ARG_LINK_LIBRARIES}" + ) + else() + set_target_properties(${library} PROPERTIES + SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" + REQUIRED_INCLUDE_DIRS "${ARG_INCLUDE_DIRS}" + REQUIRED_LIBRARIES "${ARG_LINK_LIBRARIES}" + ) + endif() + set_property(GLOBAL APPEND PROPERTY LINKER_LIBRARIES ${library}) if(USE_VERSIONED_LIBRARIES) @@ -4631,23 +4642,22 @@ link_directories(AFTER \${_IMPORT_PREFIX}/${lib_install_suff}) file(APPEND ${pkg_exp_file} "add_library(${library} SHARED IMPORTED)\n") file(APPEND ${pkg_exp_file} "set_target_properties(${library} PROPERTIES\n") - get_property(prop TARGET ${library} PROPERTY INTERFACE_REQUIRED_INCLUDE_DIRS) - if(NOT prop) - get_property(prop TARGET ${library} PROPERTY REQUIRED_INCLUDE_DIRS) - endif() - if (prop) - file(APPEND ${pkg_exp_file} " ${pn} \"${prop}\"\n") - endif() - set(prop) - - get_property(prop TARGET ${library} PROPERTY INTERFACE_REQUIRED_LIBRARIES) - if(NOT prop) - get_property(prop TARGET ${library} PROPERTY REQUIRED_LIBRARIES) - endif() - if (prop) - file(APPEND ${pkg_exp_file} " ${pn} \"${prop}\"\n") - endif() - set(prop) + if(CMAKE_VERSION VERSION_LESS 3.19) + foreach(pn INTERFACE_REQUIRED_INCLUDE_DIRS INTERFACE_REQUIRED_LIBRARIES) + get_property(prop TARGET ${library} PROPERTY ${pn}) + if (prop) + file(APPEND ${pkg_exp_file} " ${pn} \"${prop}\"\n") + endif() + endforeach() + else() + foreach(pn REQUIRED_INCLUDE_DIRS REQUIRED_LIBRARIES) + get_property(prop TARGET ${library} PROPERTY ${pn}) + if (prop) + file(APPEND ${pkg_exp_file} " ${pn} \"${prop}\"\n") + endif() + endforeach() + endif() + if(NOT CMAKE_VERSION VERSION_LESS 3.9.0) # set(prop $) From eb9378c00def11ca5ff01d7e9fb83a566ae01fb0 Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Mon, 15 Jun 2026 17:45:08 +0000 Subject: [PATCH 07/10] Change the version to 6.3 for a temporary jenkings build --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c4c6353d..92917440 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ find_package(ElementsProject) include(ElementsDefaults) # Declare project name and version -elements_project(Elements 6.3.7 DESCRIPTION "A C++ base framework for the Euclid Software.") +elements_project(Elements 6.3 DESCRIPTION "A C++ base framework for the Euclid Software.") # This test does not really fit in a subdirectory. From bd2c9224b78c3dc0b62adfdf05d6ee2675eb16dd Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Tue, 16 Jun 2026 09:18:00 +0200 Subject: [PATCH 08/10] Revert back last change --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 92917440..c4c6353d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ find_package(ElementsProject) include(ElementsDefaults) # Declare project name and version -elements_project(Elements 6.3 DESCRIPTION "A C++ base framework for the Euclid Software.") +elements_project(Elements 6.3.7 DESCRIPTION "A C++ base framework for the Euclid Software.") # This test does not really fit in a subdirectory. From 3e3f62e1f9be139305dbd6e242a20c16c5d6541f Mon Sep 17 00:00:00 2001 From: Hubert Degaudenzi Date: Tue, 16 Jun 2026 10:51:37 +0200 Subject: [PATCH 09/10] Add release notes for 6.3.7 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd0f5095..fc150463 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] + +## [6.3.7] - 2026-06-16 + +### Fixed +- Fix the backward compatibility with interface variable for CMake version + before 3.19. + + ## [6.3.6] - 2026-04-29 ### Removed From f41b0f06704b889b0e25492f5db81cabc431128f Mon Sep 17 00:00:00 2001 From: Marc Schefer Date: Thu, 2 Jul 2026 17:14:38 +0200 Subject: [PATCH 10/10] use actions dev branch --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fb24d357..8c27139e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -52,7 +52,7 @@ jobs: id: build uses: astrorama/actions/elements-build-rpm@v3.5 - name: Upload RPM to repository - uses: astrorama/actions/upload-rpm@v3.4 + uses: astrorama/actions/upload-rpm@feature/move_to_astromatic if: ${{ github.repository_owner == 'astrorama' }} env: REPOSITORY_USER: ${{ secrets.REPOSITORY_USER }}