From b3f697f435cd1be2840b67d9f15a3e745b7bdc1a Mon Sep 17 00:00:00 2001 From: Christophe Palmann <christophe.palmann@c-s.fr> Date: Tue, 21 Apr 2015 10:16:31 +0200 Subject: [PATCH] ENH: gdal-config (bool GDAL_CONFIG_CHECKING) --- Modules/ThirdParty/GDAL/CMakeLists.txt | 2 + Modules/ThirdParty/GDAL/otb-module-init.cmake | 275 +++++++++--------- 2 files changed, 142 insertions(+), 135 deletions(-) diff --git a/Modules/ThirdParty/GDAL/CMakeLists.txt b/Modules/ThirdParty/GDAL/CMakeLists.txt index cd42ac614f..0df9914416 100644 --- a/Modules/ThirdParty/GDAL/CMakeLists.txt +++ b/Modules/ThirdParty/GDAL/CMakeLists.txt @@ -3,4 +3,6 @@ project(OTBGDAL) set(OTBGDAL_SYSTEM_INCLUDE_DIRS ${GDAL_INCLUDE_DIRS}) set(OTBGDAL_LIBRARIES "${GDAL_LIBRARIES}") +set(GDAL_CONFIG_CHECKING ON CACHE BOOL "Tests to check gdal config." FORCE) + otb_module_impl() diff --git a/Modules/ThirdParty/GDAL/otb-module-init.cmake b/Modules/ThirdParty/GDAL/otb-module-init.cmake index f7fed58376..29ce192746 100644 --- a/Modules/ThirdParty/GDAL/otb-module-init.cmake +++ b/Modules/ThirdParty/GDAL/otb-module-init.cmake @@ -8,179 +8,184 @@ if(NOT GDAL_FOUND) message(FATAL_ERROR "Cannot find GDAL. Set GDAL_INCLUDE_DIR and GDAL_LIBRARY") endif() -message(STATUS "Check if Gdal qualifies for Orfeo ToolBox") +if(GDAL_CONFIG_CHECKING) -set(MIN_MAJOR_VERSION 1) -set(MIN_MINOR_VERSION 10) + message(STATUS "Check if Gdal qualifies for Orfeo ToolBox") -set(GDAL_QUALIFIES TRUE) + set(MIN_MAJOR_VERSION 1) + set(MIN_MINOR_VERSION 10) -# Ensure that the temporary dir always exists before starting tests -if(NOT EXISTS ${TEMP}) - FILE(MAKE_DIRECTORY ${TEMP}) -endif() - -#------------------- TESTS --------------------- -# Version of GDAL -try_run(RUN_RESULT_VERSION COMPILE_RESULT_VERSION ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalVersionTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/gdalVersion.txt ${MIN_MAJOR_VERSION} ${MIN_MINOR_VERSION}) + set(GDAL_QUALIFIES TRUE) -# Has OGR -try_compile(GDAL_HAS_OGR ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalOGRTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}") + # Ensure that the temporary dir always exists before starting tests + if(NOT EXISTS ${TEMP}) + FILE(MAKE_DIRECTORY ${TEMP}) + endif() + #------------------- TESTS --------------------- + # Version of GDAL + try_run(RUN_RESULT_VERSION COMPILE_RESULT_VERSION ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalVersionTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/gdalVersion.txt ${MIN_MAJOR_VERSION} ${MIN_MINOR_VERSION}) -# Has formats JPEG2000 & JPEG & GTIF -# Note : exact format names can be found here http://www.gdal.org/formats_list.html -try_run(GDAL_HAS_J2K_OPJG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2OpenJPEG ${TEMP}/gdalFormats.txt ) -try_run(GDAL_HAS_J2K_KAK COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2KAK ) # No need to output ${TEMP}/gdalFormats.txt everytime -try_run(GDAL_HAS_J2K_ECW COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2ECW ) -try_run(GDAL_HAS_J2K_JG2000 COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG2000 ) -try_run(GDAL_HAS_JPEG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG ) -try_run(GDAL_HAS_GTIF COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS GTiff ) + # Has OGR + try_compile(GDAL_HAS_OGR ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalOGRTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}") -# Can create geotiff file -if (GDAL_HAS_GTIF) - try_run(GDAL_CAN_CREATE_GEOTIFF COMPILE_RESULT_CREATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS GTiff ${TEMP}/testImage.gtif ) -endif() + # Has formats JPEG2000 & JPEG & GTIF + # Note : exact format names can be found here http://www.gdal.org/formats_list.html + try_run(GDAL_HAS_J2K_OPJG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2OpenJPEG ${TEMP}/gdalFormats.txt ) + try_run(GDAL_HAS_J2K_KAK COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2KAK ) # No need to output ${TEMP}/gdalFormats.txt everytime + try_run(GDAL_HAS_J2K_ECW COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JP2ECW ) + try_run(GDAL_HAS_J2K_JG2000 COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG2000 ) + try_run(GDAL_HAS_JPEG COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS JPEG ) + try_run(GDAL_HAS_GTIF COMPILE_RESULT_FORMATS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalFormatsTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS GTiff ) -#Can create other format file -if(COMPILE_RESULT_CREATE AND GDAL_CAN_CREATE_GEOTIFF) #Use the result of the previous try_run - # Can create bigtiff file + # Can create geotiff file if (GDAL_HAS_GTIF) - try_run(GDAL_CAN_CREATE_BIGTIFF COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.bigtif GTiff "BIGTIFF=YES") + try_run(GDAL_CAN_CREATE_GEOTIFF COMPILE_RESULT_CREATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS GTiff ${TEMP}/testImage.gtif ) endif() - # Can create jpeg file - if (GDAL_HAS_JPEG) - try_run(GDAL_CAN_CREATE_JPEG COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.jpeg JPEG) - endif() - - # Can create jpeg2000 file - if (GDAL_HAS_J2K_OPJG) - try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2OpenJPEG) - endif() - - if (GDAL_HAS_J2K_KAK AND NOT GDAL_CAN_CREATE_JPEG2000) - try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2KAK) - endif() - - if (GDAL_HAS_J2K_ECW AND NOT GDAL_CAN_CREATE_JPEG2000) - try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2ECW) - endif() - - if (GDAL_HAS_J2K_JG2000 AND NOT GDAL_CAN_CREATE_JPEG2000) - try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JPEG2000) - endif() + #Can create other format file + if(COMPILE_RESULT_CREATE AND GDAL_CAN_CREATE_GEOTIFF) #Use the result of the previous try_run -endif() -#------------------- TESTS (END)--------------------- + # Can create bigtiff file + if (GDAL_HAS_GTIF) + try_run(GDAL_CAN_CREATE_BIGTIFF COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.bigtif GTiff "BIGTIFF=YES") + endif() + # Can create jpeg file + if (GDAL_HAS_JPEG) + try_run(GDAL_CAN_CREATE_JPEG COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.jpeg JPEG) + endif() + + # Can create jpeg2000 file + if (GDAL_HAS_J2K_OPJG) + try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2OpenJPEG) + endif() + + if (GDAL_HAS_J2K_KAK AND NOT GDAL_CAN_CREATE_JPEG2000) + try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2KAK) + endif() + + if (GDAL_HAS_J2K_ECW AND NOT GDAL_CAN_CREATE_JPEG2000) + try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JP2ECW) + endif() + + if (GDAL_HAS_J2K_JG2000 AND NOT GDAL_CAN_CREATE_JPEG2000) + try_run(GDAL_CAN_CREATE_JPEG2000 COMPILE_RESULT_CREATECOPY ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx CMAKE_FLAGS "-DINCLUDE_DIRECTORIES:PATH=${GDAL_INCLUDE_DIR}" "-DLINK_LIBRARIES:STRING=${GDAL_LIBRARY}" ARGS ${TEMP}/testImage.gtif ${TEMP}/testImage.j2k JPEG2000) + endif() -# Warning messages -if (NOT COMPILE_RESULT_VERSION) - message(WARNING "Modules/ThirdParty/GDAL/gdalVersionTest.cxx did not compile.") -elseif (${RUN_RESULT_VERSION} EQUAL 1) - file(READ "${TEMP}/gdalVersion.txt" DETECTED_VERSION) - message(WARNING "Version of GDAL must be >= " ${MIN_MAJOR_VERSION} "." ${MIN_MINOR_VERSION} " : " ${DETECTED_VERSION} " detected.") - set(GDAL_QUALIFIES FALSE) -endif() - -if (NOT GDAL_HAS_OGR) - message(WARNING "GDAL doesn't expose OGR library symbols.") - set(GDAL_QUALIFIES FALSE) -endif() + endif() + #------------------- TESTS (END)--------------------- -if (NOT COMPILE_RESULT_FORMATS) - message(WARNING "Modules/ThirdParty/GDAL/gdalFormatsTest.cxx did not compile.") -else() - if (NOT GDAL_HAS_J2K_JG2000 AND NOT GDAL_HAS_J2K_OPJG AND NOT GDAL_HAS_J2K_KAK AND NOT GDAL_HAS_J2K_ECW) - message(WARNING "No Jpeg2000 driver found (compatible drivers are : OpenJpeg, Kakadu, ECW).") - set(GDAL_QUALIFIES FALSE) + # Warning messages + if (NOT COMPILE_RESULT_VERSION) + message(WARNING "Modules/ThirdParty/GDAL/gdalVersionTest.cxx did not compile.") + elseif (${RUN_RESULT_VERSION} EQUAL 1) + file(READ "${TEMP}/gdalVersion.txt" DETECTED_VERSION) + message(WARNING "Version of GDAL must be >= " ${MIN_MAJOR_VERSION} "." ${MIN_MINOR_VERSION} " : " ${DETECTED_VERSION} " detected.") + set(GDAL_QUALIFIES FALSE) endif() - if (NOT GDAL_HAS_JPEG) - message(WARNING "No jpeg driver found.") - set(GDAL_QUALIFIES FALSE) - endif() - - if (NOT GDAL_HAS_GTIF) - message(WARNING "No geotiff driver found.") - set(GDAL_QUALIFIES FALSE) + if (NOT GDAL_HAS_OGR) + message(WARNING "GDAL doesn't expose OGR library symbols.") + set(GDAL_QUALIFIES FALSE) endif() - -endif() + if (NOT COMPILE_RESULT_FORMATS) + message(WARNING "Modules/ThirdParty/GDAL/gdalFormatsTest.cxx did not compile.") + else() -if (NOT COMPILE_RESULT_CREATE) - message(WARNING "Modules/ThirdParty/GDAL/gdalCreateTest.cxx did not compile.") - -elseif (NOT GDAL_CAN_CREATE_GEOTIFF) - message(WARNING "GDAL can't create geotiff files.") + if (NOT GDAL_HAS_J2K_JG2000 AND NOT GDAL_HAS_J2K_OPJG AND NOT GDAL_HAS_J2K_KAK AND NOT GDAL_HAS_J2K_ECW) + message(WARNING "No Jpeg2000 driver found (compatible drivers are : OpenJpeg, Kakadu, ECW).") set(GDAL_QUALIFIES FALSE) -endif() - + endif() + + if (NOT GDAL_HAS_JPEG) + message(WARNING "No jpeg driver found.") + set(GDAL_QUALIFIES FALSE) + endif() + + if (NOT GDAL_HAS_GTIF) + message(WARNING "No geotiff driver found.") + set(GDAL_QUALIFIES FALSE) + endif() + + endif() -if (NOT COMPILE_RESULT_CREATECOPY) - message(WARNING "Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx did not compile.") - -else() - if (NOT GDAL_CAN_CREATE_BIGTIFF) - message(WARNING "No BIGTIFF capatilities.") - set(GDAL_QUALIFIES FALSE) + if (NOT COMPILE_RESULT_CREATE) + message(WARNING "Modules/ThirdParty/GDAL/gdalCreateTest.cxx did not compile.") + + elseif (NOT GDAL_CAN_CREATE_GEOTIFF) + message(WARNING "GDAL can't create geotiff files.") + set(GDAL_QUALIFIES FALSE) endif() + - if (NOT GDAL_CAN_CREATE_JPEG) - message(WARNING "GDAL can't create jpeg files.") - set(GDAL_QUALIFIES FALSE) + if (NOT COMPILE_RESULT_CREATECOPY) + message(WARNING "Modules/ThirdParty/GDAL/gdalCreateCopyTest.cxx did not compile.") + + else() + + if (NOT GDAL_CAN_CREATE_BIGTIFF) + message(WARNING "No BIGTIFF capatilities.") + set(GDAL_QUALIFIES FALSE) + endif() + + if (NOT GDAL_CAN_CREATE_JPEG) + message(WARNING "GDAL can't create jpeg files.") + set(GDAL_QUALIFIES FALSE) + endif() + + if (NOT GDAL_CAN_CREATE_JPEG2000) + message(WARNING "GDAL can't create jpeg2000 files.") + set(GDAL_QUALIFIES FALSE) + endif() + endif() - - if (NOT GDAL_CAN_CREATE_JPEG2000) - message(WARNING "GDAL can't create jpeg2000 files.") - set(GDAL_QUALIFIES FALSE) - endif() - -endif() -#FOR UNIX SYSTEMS ONLY -if(UNIX) - - if(GDAL_QUALIFIES) - - # Prepare bash script - configure_file(${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalTest.sh.in ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh @ONLY) - execute_process(COMMAND chmod u+x ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh) - execute_process(COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh) + #FOR UNIX SYSTEMS ONLY + if(UNIX) + + if(GDAL_QUALIFIES) + + # Prepare bash script + configure_file(${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalTest.sh.in ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh @ONLY) + execute_process(COMMAND chmod u+x ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh) + execute_process(COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gdalTest.sh) - #------------------- TESTS --------------------- - # test libtiff/libgeotiff and test if symbols are renamed (only for internal libtiff/libgeotiff) - try_run(RUN_RESULT_SYMBOLS COMPILE_RESULT_SYMBOLS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalSymbolsTest.cxx ARGS ${TEMP}/gdalSymbols.txt) - #------------------- TESTS (END)--------------------- + #------------------- TESTS --------------------- + # test libtiff/libgeotiff and test if symbols are renamed (only for internal libtiff/libgeotiff) + try_run(RUN_RESULT_SYMBOLS COMPILE_RESULT_SYMBOLS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_SOURCE_DIR}/Modules/ThirdParty/GDAL/gdalSymbolsTest.cxx ARGS ${TEMP}/gdalSymbols.txt) + #------------------- TESTS (END)--------------------- - # Warning messages - if (NOT COMPILE_RESULT_SYMBOLS) - message(WARNING "Modules/ThirdParty/GDAL/gdalSymbolsTest.cxx did not compile.") - elseif (${RUN_RESULT_SYMBOLS} EQUAL 1) - message(WARNING "Internal versions of libtiff/libgeotiff detected without symbol renaming (when configuring GDAL, if options --with-libtiff or --with-geotiff are set to 'internal', then options --with-rename-internal-libtiff-symbols and --with-rename-internal-libgeotiff-symbols should be set to 'yes').") - set(GDAL_QUALIFIES FALSE) - endif() - - - endif() #GDAL_QUALIFIES + # Warning messages + if (NOT COMPILE_RESULT_SYMBOLS) + message(WARNING "Modules/ThirdParty/GDAL/gdalSymbolsTest.cxx did not compile.") + elseif (${RUN_RESULT_SYMBOLS} EQUAL 1) + message(WARNING "Internal versions of libtiff/libgeotiff detected without symbol renaming (when configuring GDAL, if options --with-libtiff or --with-geotiff are set to 'internal', then options --with-rename-internal-libtiff-symbols and --with-rename-internal-libgeotiff-symbols should be set to 'yes').") + set(GDAL_QUALIFIES FALSE) + endif() + + + endif() #GDAL_QUALIFIES -endif() #UNIX + endif() #UNIX -if (GDAL_QUALIFIES) - message(STATUS " >> Yes") -else() - message(STATUS " >> No") -endif() + if (GDAL_QUALIFIES) + message(STATUS " >> Yes") + else() + message(STATUS " >> No") + endif() + + +endif() #GDAL_CONFIG_CHECKING -- GitLab