mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-22 00:06:12 -05:00
Use GDAL cmake config
and switch to target. Perserve fallback GDAL discovery logic since GDALConfig is quite recent.
This commit is contained in:
parent
f67e339845
commit
a42c02b4de
@ -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)
|
||||
|
@ -13,195 +13,201 @@
|
||||
#
|
||||
# GDAL_INCLUDE_DIR = where to find headers
|
||||
|
||||
INCLUDE (${CMAKE_SOURCE_DIR}/cmake/MacPlistMacros.cmake)
|
||||
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)
|
||||
|
||||
IF (MINGW)
|
||||
FIND_PATH(GDAL_INCLUDE_DIR gdal.h /usr/local/include /usr/include c:/msys/local/include PATH_SUFFIXES gdal)
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS /usr/local/lib /usr/lib c:/msys/local/lib)
|
||||
ENDIF (MINGW)
|
||||
|
||||
IF (MSVC)
|
||||
FIND_PATH(GDAL_INCLUDE_DIR gdal.h "$ENV{LIB_DIR}/include/gdal" $ENV{INCLUDE})
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal gdal_i PATHS
|
||||
"$ENV{LIB_DIR}/lib" $ENV{LIB} /usr/lib c:/msys/local/lib)
|
||||
IF (GDAL_LIBRARY)
|
||||
SET (
|
||||
GDAL_LIBRARY;odbc32;odbccp32
|
||||
CACHE STRING INTERNAL)
|
||||
ENDIF (GDAL_LIBRARY)
|
||||
ENDIF (MSVC)
|
||||
|
||||
ELSEIF(APPLE AND QGIS_MAC_DEPS_DIR)
|
||||
|
||||
FIND_PATH(GDAL_INCLUDE_DIR gdal.h "$ENV{LIB_DIR}/include")
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS "$ENV{LIB_DIR}/lib")
|
||||
|
||||
ELSE(WIN32)
|
||||
|
||||
IF(UNIX)
|
||||
|
||||
# try to use framework on mac
|
||||
# want clean framework path, not unix compatibility path
|
||||
IF (APPLE)
|
||||
IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
|
||||
OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
|
||||
OR NOT CMAKE_FIND_FRAMEWORK)
|
||||
SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
|
||||
SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
|
||||
FIND_LIBRARY(GDAL_LIBRARY GDAL)
|
||||
IF (GDAL_LIBRARY)
|
||||
# they're all the same in a framework
|
||||
SET (GDAL_INCLUDE_DIR ${GDAL_LIBRARY}/Headers CACHE PATH "Path to a file.")
|
||||
# set GDAL_CONFIG to make later test happy, not used here, may not exist
|
||||
SET (GDAL_CONFIG ${GDAL_LIBRARY}/unix/bin/gdal-config CACHE FILEPATH "Path to a program.")
|
||||
# version in info.plist
|
||||
GET_VERSION_PLIST (${GDAL_LIBRARY}/Resources/Info.plist GDAL_VERSION)
|
||||
IF (NOT GDAL_VERSION)
|
||||
MESSAGE (FATAL_ERROR "Could not determine GDAL version from framework.")
|
||||
ENDIF (NOT GDAL_VERSION)
|
||||
IF(WIN32)
|
||||
|
||||
IF (MINGW)
|
||||
FIND_PATH(GDAL_INCLUDE_DIR gdal.h /usr/local/include /usr/include c:/msys/local/include PATH_SUFFIXES gdal)
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS /usr/local/lib /usr/lib c:/msys/local/lib)
|
||||
ENDIF (MINGW)
|
||||
|
||||
IF (MSVC)
|
||||
FIND_PATH(GDAL_INCLUDE_DIR gdal.h "$ENV{LIB_DIR}/include/gdal" $ENV{INCLUDE})
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal gdal_i PATHS
|
||||
"$ENV{LIB_DIR}/lib" $ENV{LIB} /usr/lib c:/msys/local/lib)
|
||||
IF (GDAL_LIBRARY)
|
||||
SET (
|
||||
GDAL_LIBRARY;odbc32;odbccp32
|
||||
CACHE STRING INTERNAL)
|
||||
ENDIF (GDAL_LIBRARY)
|
||||
ENDIF (MSVC)
|
||||
|
||||
ELSEIF(APPLE AND QGIS_MAC_DEPS_DIR)
|
||||
|
||||
FIND_PATH(GDAL_INCLUDE_DIR gdal.h "$ENV{LIB_DIR}/include")
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS "$ENV{LIB_DIR}/lib")
|
||||
|
||||
ELSE(WIN32)
|
||||
|
||||
IF(UNIX)
|
||||
|
||||
# try to use framework on mac
|
||||
# want clean framework path, not unix compatibility path
|
||||
IF (APPLE)
|
||||
IF (CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
|
||||
OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
|
||||
OR NOT CMAKE_FIND_FRAMEWORK)
|
||||
SET (CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
|
||||
SET (CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
|
||||
FIND_LIBRARY(GDAL_LIBRARY GDAL)
|
||||
IF (GDAL_LIBRARY)
|
||||
# they're all the same in a framework
|
||||
SET (GDAL_INCLUDE_DIR ${GDAL_LIBRARY}/Headers CACHE PATH "Path to a file.")
|
||||
# set GDAL_CONFIG to make later test happy, not used here, may not exist
|
||||
SET (GDAL_CONFIG ${GDAL_LIBRARY}/unix/bin/gdal-config CACHE FILEPATH "Path to a program.")
|
||||
# version in info.plist
|
||||
GET_VERSION_PLIST (${GDAL_LIBRARY}/Resources/Info.plist GDAL_VERSION)
|
||||
IF (NOT GDAL_VERSION)
|
||||
MESSAGE (FATAL_ERROR "Could not determine GDAL version from framework.")
|
||||
ENDIF (NOT GDAL_VERSION)
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GDAL_VERSION_MAJOR "${GDAL_VERSION}")
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GDAL_VERSION_MINOR "${GDAL_VERSION}")
|
||||
IF (GDAL_VERSION_MAJOR LESS 3)
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.2 or higher.")
|
||||
ENDIF (GDAL_VERSION_MAJOR LESS 3)
|
||||
IF ( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR LESS 2) )
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.2 or higher.")
|
||||
ENDIF( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR LESS 2) )
|
||||
|
||||
ENDIF (GDAL_LIBRARY)
|
||||
SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
|
||||
ENDIF ()
|
||||
ENDIF (APPLE)
|
||||
|
||||
IF(CYGWIN)
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS /usr/lib /usr/local/lib)
|
||||
ENDIF(CYGWIN)
|
||||
|
||||
IF (NOT GDAL_INCLUDE_DIR OR NOT GDAL_LIBRARY OR NOT GDAL_CONFIG)
|
||||
# didn't find OS X framework, and was not set by user
|
||||
SET(GDAL_CONFIG_PREFER_PATH "$ENV{GDAL_HOME}/bin" CACHE STRING "preferred path to GDAL (gdal-config)")
|
||||
SET(GDAL_CONFIG_PREFER_FWTOOLS_PATH "$ENV{FWTOOLS_HOME}/bin_safe" CACHE STRING "preferred path to GDAL (gdal-config) from FWTools")
|
||||
FIND_PROGRAM(GDAL_CONFIG gdal-config
|
||||
${GDAL_CONFIG_PREFER_PATH}
|
||||
${GDAL_CONFIG_PREFER_FWTOOLS_PATH}
|
||||
$ENV{LIB_DIR}/bin
|
||||
/usr/local/bin/
|
||||
/usr/bin/
|
||||
)
|
||||
# MESSAGE("DBG GDAL_CONFIG ${GDAL_CONFIG}")
|
||||
|
||||
IF (GDAL_CONFIG)
|
||||
|
||||
## extract gdal version
|
||||
EXEC_PROGRAM(${GDAL_CONFIG}
|
||||
ARGS --version
|
||||
OUTPUT_VARIABLE GDAL_VERSION )
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GDAL_VERSION_MAJOR "${GDAL_VERSION}")
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GDAL_VERSION_MINOR "${GDAL_VERSION}")
|
||||
IF (GDAL_VERSION_MAJOR LESS 3)
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.2 or higher.")
|
||||
ENDIF (GDAL_VERSION_MAJOR LESS 3)
|
||||
IF ( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR LESS 2) )
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.2 or higher.")
|
||||
ENDIF( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR LESS 2) )
|
||||
|
||||
ENDIF (GDAL_LIBRARY)
|
||||
SET (CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
|
||||
ENDIF ()
|
||||
ENDIF (APPLE)
|
||||
|
||||
IF(CYGWIN)
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES gdal PATHS /usr/lib /usr/local/lib)
|
||||
ENDIF(CYGWIN)
|
||||
|
||||
IF (NOT GDAL_INCLUDE_DIR OR NOT GDAL_LIBRARY OR NOT GDAL_CONFIG)
|
||||
# didn't find OS X framework, and was not set by user
|
||||
SET(GDAL_CONFIG_PREFER_PATH "$ENV{GDAL_HOME}/bin" CACHE STRING "preferred path to GDAL (gdal-config)")
|
||||
SET(GDAL_CONFIG_PREFER_FWTOOLS_PATH "$ENV{FWTOOLS_HOME}/bin_safe" CACHE STRING "preferred path to GDAL (gdal-config) from FWTools")
|
||||
FIND_PROGRAM(GDAL_CONFIG gdal-config
|
||||
${GDAL_CONFIG_PREFER_PATH}
|
||||
${GDAL_CONFIG_PREFER_FWTOOLS_PATH}
|
||||
$ENV{LIB_DIR}/bin
|
||||
/usr/local/bin/
|
||||
/usr/bin/
|
||||
)
|
||||
# MESSAGE("DBG GDAL_CONFIG ${GDAL_CONFIG}")
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" GDAL_VERSION_MICRO "${GDAL_VERSION}")
|
||||
|
||||
IF (GDAL_CONFIG)
|
||||
|
||||
## extract gdal version
|
||||
EXEC_PROGRAM(${GDAL_CONFIG}
|
||||
ARGS --version
|
||||
OUTPUT_VARIABLE GDAL_VERSION )
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\1" GDAL_VERSION_MAJOR "${GDAL_VERSION}")
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\2" GDAL_VERSION_MINOR "${GDAL_VERSION}")
|
||||
STRING(REGEX REPLACE "([0-9]+)\\.([0-9]+)\\.([0-9]+)" "\\3" GDAL_VERSION_MICRO "${GDAL_VERSION}")
|
||||
# MESSAGE("DBG GDAL_VERSION ${GDAL_VERSION}")
|
||||
# MESSAGE("DBG GDAL_VERSION_MAJOR ${GDAL_VERSION_MAJOR}")
|
||||
# MESSAGE("DBG GDAL_VERSION_MINOR ${GDAL_VERSION_MINOR}")
|
||||
|
||||
# check for gdal version
|
||||
# version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
|
||||
# According to INSTALL, 2.1+ is required
|
||||
IF (GDAL_VERSION_MAJOR LESS 3)
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.0 or higher.")
|
||||
ENDIF (GDAL_VERSION_MAJOR LESS 3)
|
||||
#IF ( (GDAL_VERSION_MAJOR EQUAL 2) AND (GDAL_VERSION_MINOR LESS 1) )
|
||||
# MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 2.1 or higher.")
|
||||
#ENDIF( (GDAL_VERSION_MAJOR EQUAL 2) AND (GDAL_VERSION_MINOR LESS 1) )
|
||||
IF ( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR EQUAL 0) AND (GDAL_VERSION_MICRO LESS 3) )
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.0.3 or higher.")
|
||||
ENDIF( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR EQUAL 0) AND (GDAL_VERSION_MICRO LESS 3) )
|
||||
|
||||
# MESSAGE("DBG GDAL_VERSION ${GDAL_VERSION}")
|
||||
# MESSAGE("DBG GDAL_VERSION_MAJOR ${GDAL_VERSION_MAJOR}")
|
||||
# MESSAGE("DBG GDAL_VERSION_MINOR ${GDAL_VERSION_MINOR}")
|
||||
# set INCLUDE_DIR to prefix+include
|
||||
EXEC_PROGRAM(${GDAL_CONFIG}
|
||||
ARGS --prefix
|
||||
OUTPUT_VARIABLE GDAL_PREFIX)
|
||||
#SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
|
||||
FIND_PATH(GDAL_INCLUDE_DIR
|
||||
gdal.h
|
||||
${GDAL_PREFIX}/include/gdal
|
||||
${GDAL_PREFIX}/include
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
)
|
||||
|
||||
# check for gdal version
|
||||
# version 1.2.5 is known NOT to be supported (missing CPL_STDCALL macro)
|
||||
# According to INSTALL, 2.1+ is required
|
||||
IF (GDAL_VERSION_MAJOR LESS 3)
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.0 or higher.")
|
||||
ENDIF (GDAL_VERSION_MAJOR LESS 3)
|
||||
#IF ( (GDAL_VERSION_MAJOR EQUAL 2) AND (GDAL_VERSION_MINOR LESS 1) )
|
||||
# MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 2.1 or higher.")
|
||||
#ENDIF( (GDAL_VERSION_MAJOR EQUAL 2) AND (GDAL_VERSION_MINOR LESS 1) )
|
||||
IF ( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR EQUAL 0) AND (GDAL_VERSION_MICRO LESS 3) )
|
||||
MESSAGE (FATAL_ERROR "GDAL version is too old (${GDAL_VERSION}). Use 3.0.3 or higher.")
|
||||
ENDIF( (GDAL_VERSION_MAJOR EQUAL 3) AND (GDAL_VERSION_MINOR EQUAL 0) AND (GDAL_VERSION_MICRO LESS 3) )
|
||||
|
||||
# set INCLUDE_DIR to prefix+include
|
||||
EXEC_PROGRAM(${GDAL_CONFIG}
|
||||
ARGS --prefix
|
||||
OUTPUT_VARIABLE GDAL_PREFIX)
|
||||
#SET(GDAL_INCLUDE_DIR ${GDAL_PREFIX}/include CACHE STRING INTERNAL)
|
||||
FIND_PATH(GDAL_INCLUDE_DIR
|
||||
gdal.h
|
||||
${GDAL_PREFIX}/include/gdal
|
||||
${GDAL_PREFIX}/include
|
||||
/usr/local/include
|
||||
/usr/include
|
||||
)
|
||||
|
||||
## extract link dirs for rpath
|
||||
EXEC_PROGRAM(${GDAL_CONFIG}
|
||||
ARGS --libs
|
||||
OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
|
||||
|
||||
## split off the link dirs (for rpath)
|
||||
## use regular expression to match wildcard equivalent "-L*<endchar>"
|
||||
## with <endchar> is a space or a semicolon
|
||||
STRING(REGEX MATCHALL "[-][L]([^ ;])+"
|
||||
GDAL_LINK_DIRECTORIES_WITH_PREFIX
|
||||
"${GDAL_CONFIG_LIBS}" )
|
||||
# MESSAGE("DBG GDAL_LINK_DIRECTORIES_WITH_PREFIX=${GDAL_LINK_DIRECTORIES_WITH_PREFIX}")
|
||||
|
||||
## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
|
||||
|
||||
IF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
|
||||
STRING(REGEX REPLACE "[-][L]" "" GDAL_LINK_DIRECTORIES ${GDAL_LINK_DIRECTORIES_WITH_PREFIX} )
|
||||
ENDIF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
|
||||
|
||||
## split off the name
|
||||
## use regular expression to match wildcard equivalent "-l*<endchar>"
|
||||
## with <endchar> is a space or a semicolon
|
||||
STRING(REGEX MATCHALL "[-][l]([^ ;])+"
|
||||
GDAL_LIB_NAME_WITH_PREFIX
|
||||
"${GDAL_CONFIG_LIBS}" )
|
||||
# MESSAGE("DBG GDAL_LIB_NAME_WITH_PREFIX=${GDAL_LIB_NAME_WITH_PREFIX}")
|
||||
|
||||
|
||||
## remove prefix -l because we need the pure name
|
||||
|
||||
IF (GDAL_LIB_NAME_WITH_PREFIX)
|
||||
STRING(REGEX REPLACE "[-][l]" "" GDAL_LIB_NAME ${GDAL_LIB_NAME_WITH_PREFIX} )
|
||||
ENDIF (GDAL_LIB_NAME_WITH_PREFIX)
|
||||
|
||||
IF (APPLE)
|
||||
IF (NOT GDAL_LIBRARY)
|
||||
# work around empty GDAL_LIBRARY left by framework check
|
||||
# while still preserving user setting if given
|
||||
# ***FIXME*** need to improve framework check so below not needed
|
||||
SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.dylib CACHE STRING INTERNAL FORCE)
|
||||
ENDIF (NOT GDAL_LIBRARY)
|
||||
ELSE (APPLE)
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES ${GDAL_LIB_NAME} gdal PATHS ${GDAL_LINK_DIRECTORIES}/lib ${GDAL_LINK_DIRECTORIES})
|
||||
ENDIF (APPLE)
|
||||
|
||||
ELSE(GDAL_CONFIG)
|
||||
MESSAGE("FindGDAL.cmake: gdal-config not found. Please set it manually. GDAL_CONFIG=${GDAL_CONFIG}")
|
||||
ENDIF(GDAL_CONFIG)
|
||||
ENDIF (NOT GDAL_INCLUDE_DIR OR NOT GDAL_LIBRARY OR NOT GDAL_CONFIG)
|
||||
ENDIF(UNIX)
|
||||
ENDIF(WIN32)
|
||||
|
||||
|
||||
IF (GDAL_INCLUDE_DIR AND GDAL_LIBRARY)
|
||||
SET(GDAL_FOUND TRUE)
|
||||
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)
|
||||
|
||||
ELSE (GDAL_FOUND)
|
||||
|
||||
MESSAGE(GDAL_INCLUDE_DIR=${GDAL_INCLUDE_DIR})
|
||||
MESSAGE(GDAL_LIBRARY=${GDAL_LIBRARY})
|
||||
MESSAGE(FATAL_ERROR "Could not find GDAL")
|
||||
|
||||
ENDIF (GDAL_FOUND)
|
||||
## extract link dirs for rpath
|
||||
EXEC_PROGRAM(${GDAL_CONFIG}
|
||||
ARGS --libs
|
||||
OUTPUT_VARIABLE GDAL_CONFIG_LIBS )
|
||||
|
||||
## split off the link dirs (for rpath)
|
||||
## use regular expression to match wildcard equivalent "-L*<endchar>"
|
||||
## with <endchar> is a space or a semicolon
|
||||
STRING(REGEX MATCHALL "[-][L]([^ ;])+"
|
||||
GDAL_LINK_DIRECTORIES_WITH_PREFIX
|
||||
"${GDAL_CONFIG_LIBS}" )
|
||||
# MESSAGE("DBG GDAL_LINK_DIRECTORIES_WITH_PREFIX=${GDAL_LINK_DIRECTORIES_WITH_PREFIX}")
|
||||
|
||||
## remove prefix -L because we need the pure directory for LINK_DIRECTORIES
|
||||
|
||||
IF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
|
||||
STRING(REGEX REPLACE "[-][L]" "" GDAL_LINK_DIRECTORIES ${GDAL_LINK_DIRECTORIES_WITH_PREFIX} )
|
||||
ENDIF (GDAL_LINK_DIRECTORIES_WITH_PREFIX)
|
||||
|
||||
## split off the name
|
||||
## use regular expression to match wildcard equivalent "-l*<endchar>"
|
||||
## with <endchar> is a space or a semicolon
|
||||
STRING(REGEX MATCHALL "[-][l]([^ ;])+"
|
||||
GDAL_LIB_NAME_WITH_PREFIX
|
||||
"${GDAL_CONFIG_LIBS}" )
|
||||
# MESSAGE("DBG GDAL_LIB_NAME_WITH_PREFIX=${GDAL_LIB_NAME_WITH_PREFIX}")
|
||||
|
||||
|
||||
## remove prefix -l because we need the pure name
|
||||
|
||||
IF (GDAL_LIB_NAME_WITH_PREFIX)
|
||||
STRING(REGEX REPLACE "[-][l]" "" GDAL_LIB_NAME ${GDAL_LIB_NAME_WITH_PREFIX} )
|
||||
ENDIF (GDAL_LIB_NAME_WITH_PREFIX)
|
||||
|
||||
IF (APPLE)
|
||||
IF (NOT GDAL_LIBRARY)
|
||||
# work around empty GDAL_LIBRARY left by framework check
|
||||
# while still preserving user setting if given
|
||||
# ***FIXME*** need to improve framework check so below not needed
|
||||
SET(GDAL_LIBRARY ${GDAL_LINK_DIRECTORIES}/lib${GDAL_LIB_NAME}.dylib CACHE STRING INTERNAL FORCE)
|
||||
ENDIF (NOT GDAL_LIBRARY)
|
||||
ELSE (APPLE)
|
||||
FIND_LIBRARY(GDAL_LIBRARY NAMES ${GDAL_LIB_NAME} gdal PATHS ${GDAL_LINK_DIRECTORIES}/lib ${GDAL_LINK_DIRECTORIES})
|
||||
ENDIF (APPLE)
|
||||
|
||||
ELSE(GDAL_CONFIG)
|
||||
MESSAGE("FindGDAL.cmake: gdal-config not found. Please set it manually. GDAL_CONFIG=${GDAL_CONFIG}")
|
||||
ENDIF(GDAL_CONFIG)
|
||||
ENDIF (NOT GDAL_INCLUDE_DIR OR NOT GDAL_LIBRARY OR NOT GDAL_CONFIG)
|
||||
ENDIF(UNIX)
|
||||
ENDIF(WIN32)
|
||||
|
||||
|
||||
IF (GDAL_INCLUDE_DIR AND GDAL_LIBRARY)
|
||||
SET(GDAL_FOUND TRUE)
|
||||
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})
|
||||
MESSAGE(GDAL_LIBRARY=${GDAL_LIBRARY})
|
||||
MESSAGE(FATAL_ERROR "Could not find GDAL")
|
||||
|
||||
ENDIF (GDAL_FOUND)
|
||||
endif()
|
||||
|
@ -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}
|
||||
|
@ -11,7 +11,6 @@ else ()
|
||||
target_link_libraries(crssync
|
||||
qgis_core
|
||||
${PROJ_LIBRARY}
|
||||
${GDAL_LIBRARY}
|
||||
)
|
||||
|
||||
if(MSVC AND NOT USING_NMAKE)
|
||||
|
@ -44,7 +44,6 @@ target_link_libraries(qgis_process
|
||||
${QT_VERSION_BASE}::Core
|
||||
${PROJ_LIBRARY}
|
||||
${GEOS_LIBRARY}
|
||||
${GDAL_LIBRARY}
|
||||
)
|
||||
|
||||
if (WITH_3D)
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
@ -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} )
|
||||
|
@ -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
|
||||
)
|
||||
|
||||
|
@ -80,7 +80,6 @@ else()
|
||||
|
||||
target_link_libraries(provider_wms
|
||||
qgis_core
|
||||
${GDAL_LIBRARY} # for OGR_G_CreateGeometryFromJson()
|
||||
)
|
||||
|
||||
if (WITH_GUI)
|
||||
|
@ -116,7 +116,6 @@ target_link_libraries(qgis_server
|
||||
${PROJ_LIBRARY}
|
||||
${FCGI_LIBRARY}
|
||||
${POSTGRES_LIBRARY}
|
||||
${GDAL_LIBRARY}
|
||||
${QCA_LIBRARY}
|
||||
)
|
||||
|
||||
|
@ -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
|
||||
|
@ -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}
|
||||
|
Loading…
x
Reference in New Issue
Block a user