From 75c93c881fe758a87bc289e948eb12ca39889550 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Thu, 19 Feb 2026 00:45:01 +0100 Subject: [PATCH 1/3] Use FindGDAL.cmake output variables --- packaging/CMakeLists.txt | 12 ++++++++---- src/gdal/CMakeLists.txt | 10 +++++----- test/CMakeLists.txt | 6 +++--- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/packaging/CMakeLists.txt b/packaging/CMakeLists.txt index 9e73fe9ae7..09557064bf 100644 --- a/packaging/CMakeLists.txt +++ b/packaging/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright 2012-2020 Kai Pastor +# Copyright 2012-2021, 2024-2026 Kai Pastor # # This file is part of OpenOrienteering. # @@ -282,7 +282,7 @@ if(Mapper_PACKAGE_GDAL) if(GDAL_CONFIG AND gdal_config_result EQUAL 0) set(gdal_data_paths "${gdal_data_dir}") elseif(GDAL_INCLUDE_DIRS) - string(REGEX REPLACE "/include$" "/share/gdal" gdal_data_paths ${GDAL_INCLUDE_DIRS}) # MSYS2 et al. + string(REGEX REPLACE "/include$" "/share/gdal" gdal_data_paths "${GDAL_INCLUDE_DIRS}") # MSYS2 et al. else() set(gdal_data_paths PATHS "${CMAKE_INSTALL_PREFIX}/share/gdal") endif() @@ -303,8 +303,12 @@ if(Mapper_PACKAGE_GDAL) install( DIRECTORY "${GDAL_DATA_DIR}/" DESTINATION "${MAPPER_DATA_DESTINATION}/gdal") - get_filename_component(GDAL_LIBRARY_DIR "{GDAL_LIBRARY}" PATH) - list(APPEND MAPPER_LIB_HINTS "${GDAL_LIBRARY_DIR}") + foreach(item IN LISTS GDAL_LIBRARIES) + if(EXISTS "${item}") + get_filename_component(GDAL_LIBRARY_DIR "{item}" PATH) + list(APPEND MAPPER_LIB_HINTS "${GDAL_LIBRARY_DIR}") + endif() + endforeach() endif() unset(MAPPER_QT_PLUGINS) diff --git a/src/gdal/CMakeLists.txt b/src/gdal/CMakeLists.txt index c15832dc04..b440506689 100644 --- a/src/gdal/CMakeLists.txt +++ b/src/gdal/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright 2016-2020 Kai Pastor +# Copyright 2016-2020, 2026 Kai Pastor # # This file is part of OpenOrienteering. # @@ -51,10 +51,10 @@ target_compile_definitions(mapper-gdal PRIVATE target_compile_definitions(mapper-gdal INTERFACE MAPPER_USE_GDAL) -target_include_directories(mapper-gdal SYSTEM PRIVATE "${GDAL_INCLUDE_DIR}") +target_include_directories(mapper-gdal SYSTEM PRIVATE ${GDAL_INCLUDE_DIRS}) target_include_directories(mapper-gdal PRIVATE "${PROJECT_SOURCE_DIR}/src") -target_link_libraries(mapper-gdal "${GDAL_LIBRARY}" Qt5::Core Qt5::Gui Qt5::Widgets Mapper_Common) +target_link_libraries(mapper-gdal ${GDAL_LIBRARIES} Qt5::Core Qt5::Gui Qt5::Widgets Mapper_Common) set_target_properties(mapper-gdal PROPERTIES PREFIX "") @@ -71,6 +71,6 @@ add_custom_command(OUTPUT "${PROJECT_BINARY_DIR}/gdal/mapper-osmconf.ini" # Utility to dump GDAL format information add_executable(mapper-gdal-info mapper_gdal_info.cpp) -target_include_directories(mapper-gdal-info SYSTEM PRIVATE "${GDAL_INCLUDE_DIR}") -target_link_libraries(mapper-gdal-info "${GDAL_LIBRARY}") +target_include_directories(mapper-gdal-info SYSTEM PRIVATE ${GDAL_INCLUDE_DIRS}) +target_link_libraries(mapper-gdal-info ${GDAL_LIBRARIES}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 145450a594..b1471a2f1a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright 2012-2020 Kai Pastor +# Copyright 2012-2022, 2025, 2026 Kai Pastor # # This file is part of OpenOrienteering. # @@ -172,8 +172,8 @@ add_unit_test(georeferencing_t ../src/core/georeferencing if (Mapper_USE_GDAL) # cf. src/gdal/CMakeLists.txt target_compile_definitions(georeferencing_t PRIVATE MAPPER_TEST_GDAL) - target_include_directories(georeferencing_t SYSTEM PRIVATE "${GDAL_INCLUDE_DIR}") - target_link_libraries(georeferencing_t PRIVATE "${GDAL_LIBRARY}") + target_include_directories(georeferencing_t SYSTEM PRIVATE ${GDAL_INCLUDE_DIRS}) + target_link_libraries(georeferencing_t PRIVATE ${GDAL_LIBRARIES}) endif() add_unit_test(grid_t ../src/util/util) add_unit_test(key_value_container_t ../src/util/key_value_container) From d4f6cd75a3e3fa6cf6cd6630b7cb8fc7c806c8ed Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Thu, 19 Feb 2026 08:10:47 +0100 Subject: [PATCH 2/3] Find GDAL in module mode --- CMakeLists.txt | 2 +- src/gdal/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fa97acaa30..7d3b4e4117 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -224,7 +224,7 @@ elseif(PROJ_VERSION VERSION_LESS 6.2.1) endif() if(Mapper_USE_GDAL) - find_package(GDAL REQUIRED) + find_package(GDAL MODULE REQUIRED) endif() find_package(Qt5Core 5.5 REQUIRED) diff --git a/src/gdal/CMakeLists.txt b/src/gdal/CMakeLists.txt index b440506689..87aafd6899 100644 --- a/src/gdal/CMakeLists.txt +++ b/src/gdal/CMakeLists.txt @@ -16,7 +16,7 @@ # You should have received a copy of the GNU General Public License # along with OpenOrienteering. If not, see . -find_package(GDAL REQUIRED) +find_package(GDAL MODULE REQUIRED) find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Widgets REQUIRED) From 3bcead271432bc61e549567d23e425ff7d378720 Mon Sep 17 00:00:00 2001 From: Kai Pastor Date: Thu, 19 Feb 2026 19:12:05 +0100 Subject: [PATCH 3/3] Bump minimum CMake version to 3.14 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d3b4e4117..900941f3b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with OpenOrienteering. If not, see . -cmake_minimum_required(VERSION 3.7 FATAL_ERROR) +cmake_minimum_required(VERSION 3.14 FATAL_ERROR) if(POLICY CMP0115) cmake_policy(SET CMP0115 NEW)