diff options
Diffstat (limited to 'Modules/FindGDAL.cmake')
-rw-r--r-- | Modules/FindGDAL.cmake | 86 |
1 files changed, 61 insertions, 25 deletions
diff --git a/Modules/FindGDAL.cmake b/Modules/FindGDAL.cmake index ff2976e..8522f9b 100644 --- a/Modules/FindGDAL.cmake +++ b/Modules/FindGDAL.cmake @@ -1,31 +1,49 @@ # Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. -#.rst: -# FindGDAL -# -------- -# -# -# -# Locate gdal -# -# This module accepts the following environment variables: -# -# :: -# -# GDAL_DIR or GDAL_ROOT - Specify the location of GDAL -# -# -# -# This module defines the following CMake variables: -# -# :: -# -# GDAL_FOUND - True if libgdal is found -# GDAL_LIBRARY - A variable pointing to the GDAL library -# GDAL_INCLUDE_DIR - Where to find the headers +#[=======================================================================[.rst: +FindGDAL +-------- + +Find GDAL. + +IMPORTED Targets +^^^^^^^^^^^^^^^^ + +This module defines :prop_tgt:`IMPORTED` target ``GDAL::GDAL`` +if GDAL has been found. + +Result Variables +^^^^^^^^^^^^^^^^ + +This module will set the following variables in your project: + +``GDAL_FOUND`` + True if GDAL is found. +``GDAL_INCLUDE_DIRS`` + Include directories for GDAL headers. +``GDAL_LIBRARIES`` + Libraries to link to GDAL. +``GDAL_VERSION`` + The version of GDAL found. + +Cache variables +^^^^^^^^^^^^^^^ + +The following cache variables may also be set: + +``GDAL_LIBRARY`` + The libgdal library file. +``GDAL_INCLUDE_DIR`` + The directory containing ``gdal.h``. + +Hints +^^^^^ + +Set ``GDAL_DIR`` or ``GDAL_ROOT`` in the environment to specify the +GDAL installation prefix. +#]=======================================================================] -# # $GDALDIR is an environment variable that would # correspond to the ./configure --prefix=$GDAL_DIR # used in building gdal. @@ -122,8 +140,26 @@ find_library(GDAL_LIBRARY PATH_SUFFIXES lib ) +if (EXISTS "${GDAL_INCLUDE_DIR}/gdal_version.h") + file(STRINGS "${GDAL_INCLUDE_DIR}/gdal_version.h" _gdal_version + REGEX "GDAL_RELEASE_NAME") + string(REGEX REPLACE ".*\"\(.*\)\"" "\\1" GDAL_VERSION "${_gdal_version}") + unset(_gdal_version) +else () + set(GDAL_VERSION GDAL_VERSION-NOTFOUND) +endif () + include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(GDAL DEFAULT_MSG GDAL_LIBRARY GDAL_INCLUDE_DIR) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(GDAL + VERSION_VAR GDAL_VERSION + REQUIRED_VARS GDAL_LIBRARY GDAL_INCLUDE_DIR) + +if (GDAL_FOUND AND NOT TARGET GDAL::GDAL) + add_library(GDAL::GDAL UNKNOWN IMPORTED) + set_target_properties(GDAL::GDAL PROPERTIES + IMPORTED_LOCATION "${GDAL_LIBRARY}" + INTERFACE_INCLUDE_DIRECTORIES "${GDAL_INCLUDE_DIR}") +endif () set(GDAL_LIBRARIES ${GDAL_LIBRARY}) set(GDAL_INCLUDE_DIRS ${GDAL_INCLUDE_DIR}) |