Using GDAL in CMake projects
New in version 3.5.
The recommended way to use the GDAL library 3.5 or higher in a CMake project is to
link to the imported library target GDAL::GDAL
provided by
the CMake configuration which comes with the library. Typical usage is:
find_package(GDAL CONFIG REQUIRED)
target_link_libraries(MyApp PRIVATE GDAL::GDAL)
By adding the imported library target GDAL::GDAL
to the
target link libraries, CMake will also pass the include directories to
the compiler.
The CMake command find_package
will look for the configuration in a
number of places. The lookup can be adjusted for all packages by setting
the cache variable or environment variable CMAKE_PREFIX_PATH
. In
particular, CMake will consult (and set) the cache variable
GDAL_DIR
.
Before GDAL 3.5, you can use the following to create the imported library target GDAL::GDAL
:
find_package(GDAL CONFIG QUIET)
if(NOT TARGET GDAL::GDAL)
find_package(GDAL REQUIRED)
if(NOT TARGET GDAL::GDAL)
add_library(GDAL IMPORTED)
if(DEFINED GDAL_LIBRARIES)
target_link_libraries(GDAL INTERFACE "${GDAL_LIBRARIES}")
add_library(GDAL::GDAL ALIAS GDAL)
else()
message(FATAL_ERROR "Missing GDAL_LIBRARIES")
endif()
endif()
endif()
target_link_libraries(MyApp PRIVATE GDAL::GDAL)