Use GDAL cmake config

and switch to target.
Perserve fallback GDAL discovery logic since GDALConfig is quite recent.
This commit is contained in:
Matthias Kuhn 2023-09-17 08:39:07 +02:00
parent f67e339845
commit a42c02b4de
12 changed files with 206 additions and 214 deletions

View File

@ -360,7 +360,7 @@ if(WITH_CORE)
# required
find_package(Proj)
find_package(GEOS)
find_package(GDAL)
find_package(GDAL REQUIRED)
find_package(Expat REQUIRED)
find_package(Spatialindex REQUIRED)
find_package(LibZip REQUIRED)
@ -403,8 +403,8 @@ if(WITH_CORE)
set (HAVE_SPATIALITE TRUE)
endif()
if (NOT PROJ_FOUND OR NOT GEOS_FOUND OR NOT GDAL_FOUND)
message (SEND_ERROR "Some dependencies were not found! Proj: ${PROJ_FOUND}, Geos: ${GEOS_FOUND}, GDAL: ${GDAL_FOUND}")
if (NOT PROJ_FOUND OR NOT GEOS_FOUND)
message (SEND_ERROR "Some dependencies were not found! Proj: ${PROJ_FOUND}, Geos: ${GEOS_FOUND}")
endif()
if (POSTGRES_FOUND)

View File

@ -13,6 +13,9 @@
#
# GDAL_INCLUDE_DIR = where to find headers
find_package(GDAL CONFIG)
if(NOT GDAL_FOUND)
# Fallback logic for GDAL < 3.5, as soon as we switch to GDAL>=3.5 this file (Find_GDAL.cmake) can be deleted
INCLUDE (${CMAKE_SOURCE_DIR}/cmake/MacPlistMacros.cmake)
IF(WIN32)
@ -190,14 +193,16 @@ IF (GDAL_INCLUDE_DIR AND GDAL_LIBRARY)
ENDIF (GDAL_INCLUDE_DIR AND GDAL_LIBRARY)
IF (GDAL_FOUND)
IF (NOT GDAL_FIND_QUIETLY)
FILE(READ ${GDAL_INCLUDE_DIR}/gdal_version.h gdal_version)
STRING(REGEX REPLACE "^.*GDAL_RELEASE_NAME +\"([^\"]+)\".*$" "\\1" GDAL_RELEASE_NAME "${gdal_version}")
MESSAGE(STATUS "Found GDAL: ${GDAL_LIBRARY} (${GDAL_RELEASE_NAME})")
ENDIF (NOT GDAL_FIND_QUIETLY)
add_library(GDAL::GDAL UNKNOWN IMPORTED)
target_link_libraries(GDAL::GDAL INTERFACE ${GDAL_LIBRARY})
target_include_directories(GDAL::GDAL INTERFACE ${GDAL_INCLUDE_DIR})
set_target_properties(GDAL::GDAL PROPERTIES IMPORTED_LOCATION ${GDAL_LIBRARY})
ELSE (GDAL_FOUND)
MESSAGE(GDAL_INCLUDE_DIR=${GDAL_INCLUDE_DIR})
@ -205,3 +210,4 @@ ELSE (GDAL_FOUND)
MESSAGE(FATAL_ERROR "Could not find GDAL")
ENDIF (GDAL_FOUND)
endif()

View File

@ -2248,7 +2248,6 @@ target_include_directories(qgis_core SYSTEM PUBLIC
${${QT_VERSION_BASE}Sql_INCLUDE_DIRS}
${${QT_VERSION_BASE}Concurrent_INCLUDE_DIRS}
${PROJ_INCLUDE_DIR}
${GDAL_INCLUDE_DIR}
${LIBZIP_INCLUDE_DIRS}
${SPATIALINDEX_INCLUDE_DIR} # before GEOS for case-insensitive filesystems
${GEOS_INCLUDE_DIR}
@ -2419,7 +2418,7 @@ target_link_libraries(qgis_core
${QTKEYCHAIN_LIBRARY}
${PROJ_LIBRARY}
${GEOS_LIBRARY}
${GDAL_LIBRARY}
GDAL::GDAL
${SPATIALINDEX_LIBRARY}
${EXPAT_LIBRARY}
${SQLITE3_LIBRARY}

View File

@ -11,7 +11,6 @@ else ()
target_link_libraries(crssync
qgis_core
${PROJ_LIBRARY}
${GDAL_LIBRARY}
)
if(MSVC AND NOT USING_NMAKE)

View File

@ -44,7 +44,6 @@ target_link_libraries(qgis_process
${QT_VERSION_BASE}::Core
${PROJ_LIBRARY}
${GEOS_LIBRARY}
${GDAL_LIBRARY}
)
if (WITH_3D)

View File

@ -8,7 +8,6 @@ include_directories(
${CMAKE_CURRENT_BINARY_DIR}
)
include_directories (SYSTEM
${GDAL_INCLUDE_DIR}
${PROJ_INCLUDE_DIR}
${GEOS_INCLUDE_DIR}
${POSTGRES_INCLUDE_DIR}
@ -128,6 +127,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_dbmibase}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_dbmiclient}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gproj}
GDAL::GDAL
)
else()
set(GRASS_TARGET_LINK_LIBRARIES${GRASS_BUILD_VERSION}
@ -139,6 +139,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_dbmibase}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_dbmiclient}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gproj}
GDAL::GDAL
)
endif()
@ -214,14 +215,14 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
target_link_libraries(qgis.d.rast${GRASS_BUILD_VERSION}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gis}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_datetime}
${GDAL_LIBRARY}
GDAL::GDAL
)
else()
target_link_libraries(qgis.d.rast${GRASS_BUILD_VERSION}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gis}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_datetime}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_raster}
${GDAL_LIBRARY}
GDAL::GDAL
)
endif()
@ -234,7 +235,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gis}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_datetime}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gproj}
${GDAL_LIBRARY}
GDAL::GDAL
)
else()
target_link_libraries(qgis.g.info${GRASS_BUILD_VERSION}
@ -242,7 +243,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_datetime}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gproj}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_raster}
${GDAL_LIBRARY}
GDAL::GDAL
)
endif()
if (UNIX)
@ -261,7 +262,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
qgisgrass${GRASS_BUILD_VERSION}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gis}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_datetime}
${GDAL_LIBRARY}
GDAL::GDAL
qgis_core
)
else()
@ -270,7 +271,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_gis}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_datetime}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_raster}
${GDAL_LIBRARY}
GDAL::GDAL
qgis_core
)
endif()
@ -289,7 +290,7 @@ macro(ADD_GRASSLIB GRASS_BUILD_VERSION)
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_vect}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_dbmibase}
${GRASS_LIBRARY${GRASS_BUILD_VERSION}_dbmiclient}
${GDAL_LIBRARY}
GDAL::GDAL
qgis_core
)

View File

@ -208,11 +208,6 @@ if (HDF5_FOUND)
target_compile_definitions(provider_mdal PRIVATE ${HDF5_DEFINITIONS})
endif()
if (GDAL_FOUND)
target_include_directories(provider_mdal PRIVATE ${GDAL_INCLUDE_DIR})
target_link_libraries(provider_mdal ${GDAL_LIBRARY} )
endif()
if (NETCDF_FOUND)
target_include_directories(provider_mdal PRIVATE ${NETCDF_INCLUDE_DIR})
target_link_libraries(provider_mdal ${NETCDF_LIBRARY} )

View File

@ -183,13 +183,12 @@ if (PDAL_2_5_OR_HIGHER)
target_include_directories(pdal_wrench PRIVATE
${PDAL_INCLUDE_DIR}
${GDAL_INCLUDE_DIR}
${CMAKE_SOURCE_DIR}/external
)
target_link_libraries (pdal_wrench PRIVATE
${PDAL_LIBRARIES}
${GDAL_LIBRARY}
GDAL::GDAL
Threads::Threads
)

View File

@ -80,7 +80,6 @@ else()
target_link_libraries(provider_wms
qgis_core
${GDAL_LIBRARY} # for OGR_G_CreateGeometryFromJson()
)
if (WITH_GUI)

View File

@ -116,7 +116,6 @@ target_link_libraries(qgis_server
${PROJ_LIBRARY}
${FCGI_LIBRARY}
${POSTGRES_LIBRARY}
${GDAL_LIBRARY}
${QCA_LIBRARY}
)

View File

@ -18,7 +18,6 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}
include_directories(SYSTEM
${QT_INCLUDE_DIR}
${GDAL_INCLUDE_DIR}
${QT5_3DEXTRA_INCLUDE_DIR}
)
@ -37,7 +36,6 @@ target_link_libraries(qgis_3d_sandbox
${QT_VERSION_BASE}::Test
${PROJ_LIBRARY}
${GEOS_LIBRARY}
${GDAL_LIBRARY}
${QWT_LIBRARY}
qgis_core
qgis_3d

View File

@ -3,7 +3,6 @@ include_directories(
)
include_directories(BEFORE SYSTEM
${PROJ_INCLUDE_DIR}
${GDAL_INCLUDE_DIR}
)
include_directories(SYSTEM
${POSTGRES_INCLUDE_DIR}
@ -31,7 +30,6 @@ macro (ADD_QGIS_GRASS_TEST grass_build_version testname testsrc)
${QT_VERSION_BASE}::Test
${PROJ_LIBRARY}
${GEOS_LIBRARY}
${GDAL_LIBRARY}
qgis_core
qgis_test
qgisgrass${grass_build_version}