From d8ccbf76aa502e68d5e8616c14a0013491efe0e4 Mon Sep 17 00:00:00 2001 From: nono303 Date: Fri, 14 Jun 2024 15:14:53 +0200 Subject: [PATCH 1/5] https://github.com/OSGeo/libgeotiff/issues/122#issuecomment-2168016465 --- libgeotiff/CMakeLists.txt | 90 +++++++++++++++------------------------ 1 file changed, 35 insertions(+), 55 deletions(-) diff --git a/libgeotiff/CMakeLists.txt b/libgeotiff/CMakeLists.txt index 9d4404a..5a0e7b6 100644 --- a/libgeotiff/CMakeLists.txt +++ b/libgeotiff/CMakeLists.txt @@ -100,16 +100,7 @@ if (MSVC) endif (MSVC) ############################################################################### -# Search for dependencies - - -# TIFF support - required, default=ON -option(WITH_TIFF "Choose if TIFF support should be built" ON) - -FIND_PACKAGE(PROJ NO_MODULE QUIET) -if (NOT PROJ_FOUND) - FIND_PACKAGE(PROJ REQUIRED) -endif () +# Optionnal supports # Zlib support - optional, default=OFF option(WITH_ZLIB "Choose if zlib support should be built" OFF) @@ -135,7 +126,6 @@ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) MESSAGE(STATUS "Generating geo_config.h header - done") - ############################################################################### # Installation settings @@ -220,55 +210,44 @@ set_property(TARGET ${GEOTIFF_LIBRARY_TARGET} PROPERTY C_STANDARD 99) set_property(TARGET ${GEOTIFF_LIBRARY_TARGET} PROPERTY POSITION_INDEPENDENT_CODE ON) set_property(TARGET ${GEOTIFF_LIBRARY_TARGET} PROPERTY OUTPUT_NAME ${GEOTIFF_LIB_NAME}) -IF(WITH_JPEG) - FIND_PACKAGE(JPEG NO_MODULE QUIET) - if (NOT JPEG_FOUND) - FIND_PACKAGE(JPEG) - endif () - - IF(JPEG_FOUND) - SET(HAVE_JPEG 1) - TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${JPEG_INCLUDE_DIR}) - target_compile_definitions(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_JPEG=${HAVE_JPEG}) - ENDIF() -ENDIF() +# mandatory +FIND_PACKAGE(PROJ REQUIRED) -IF(WITH_TIFF) - FIND_PACKAGE(TIFF NO_MODULE QUIET) - if (NOT TIFF_FOUND) - FIND_PACKAGE(TIFF REQUIRED) - endif () +FIND_PACKAGE(TIFF REQUIRED) +# Confirm required API is available +INCLUDE(CheckFunctionExists) +SET(CMAKE_REQUIRED_LIBRARIES ${TIFF_LIBRARIES}) - IF(TIFF_FOUND) - # Confirm required API is available - INCLUDE(CheckFunctionExists) - SET(CMAKE_REQUIRED_LIBRARIES ${TIFF_LIBRARIES}) +CHECK_FUNCTION_EXISTS(TIFFOpen HAVE_TIFFOPEN) +IF(NOT HAVE_TIFFOPEN) + SET(TIFF_FOUND) # ReSET to NOT found for TIFF library + MESSAGE(FATAL_ERROR "Failed to link with libtiff - TIFFOpen function not found") +ENDIF() - CHECK_FUNCTION_EXISTS(TIFFOpen HAVE_TIFFOPEN) - IF(NOT HAVE_TIFFOPEN) - SET(TIFF_FOUND) # ReSET to NOT found for TIFF library - MESSAGE(FATAL_ERROR "Failed to link with libtiff - TIFFOpen function not found") - ENDIF() +CHECK_FUNCTION_EXISTS(TIFFMergeFieldInfo HAVE_TIFFMERGEFIELDINFO) +IF(NOT HAVE_TIFFMERGEFIELDINFO) + SET(TIFF_FOUND) # ReSET to NOT found for TIFF library + MESSAGE(FATAL_ERROR "Failed to link with libtiff - TIFFMergeFieldInfo function not found. libtiff 3.6.0 Beta or later required. Please upgrade or use an older version of libgeotiff") +ENDIF() - CHECK_FUNCTION_EXISTS(TIFFMergeFieldInfo HAVE_TIFFMERGEFIELDINFO) - IF(NOT HAVE_TIFFMERGEFIELDINFO) - SET(TIFF_FOUND) # ReSET to NOT found for TIFF library - MESSAGE(FATAL_ERROR "Failed to link with libtiff - TIFFMergeFieldInfo function not found. libtiff 3.6.0 Beta or later required. Please upgrade or use an older version of libgeotiff") - ENDIF() +TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) +TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_TIFF=1) - TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) - TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_TIFF=1) - ENDIF(TIFF_FOUND) -ENDIF(WITH_TIFF) +# optionnal + +IF(WITH_JPEG) + FIND_PACKAGE(JPEG REQUIRED) + SET(HAVE_JPEG 1) + TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${JPEG_INCLUDE_DIR}) + target_compile_definitions(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_JPEG=${HAVE_JPEG}) +ENDIF() IF(WITH_ZLIB) - FIND_PACKAGE(ZLIB REQUIRED ) - IF(ZLIB_FOUND) - SET(HAVE_ZIP 1) - TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${ZLIB_INCLUDE_DIR}) - TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_ZIP=${HAVE_ZIP}) - ENDIF() + FIND_PACKAGE(ZLIB REQUIRED) + SET(HAVE_ZIP 1) + TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${ZLIB_INCLUDE_DIR}) + TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_ZIP=${HAVE_ZIP}) ENDIF() TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PUBLIC @@ -404,8 +383,9 @@ Summary of build options: Build man pages: ${BUILD_MAN} Build doc files: ${BUILD_DOC} Build GeoTIFF utilities: ${WITH_UTILITIES} - Build TIFF support: ${WITH_TIFF} - Build zlib support: ${WITH_ZLIB} - Build JPEG support: ${WITH_JPEG} + PROJ version: ${PROJ_VERSION_STRING} + TIFF version: ${TIFF_VERSION_STRING} + Build zlib support: ${WITH_ZLIB} ${ZLIB_VERSION} + Build JPEG support: ${WITH_JPEG} ${JPEG_VERSION} Build TOWGS84 support: ${WITH_TOWGS84} ################################") From 8bda5792c716e2eb5da2f644a386c3ea826e07a8 Mon Sep 17 00:00:00 2001 From: nono303 Date: Fri, 14 Jun 2024 15:56:32 +0200 Subject: [PATCH 2/5] https://github.com/OSGeo/libgeotiff/pull/123#discussion_r1639824608 --- libgeotiff/CMakeLists.txt | 33 +-------------------------------- 1 file changed, 1 insertion(+), 32 deletions(-) diff --git a/libgeotiff/CMakeLists.txt b/libgeotiff/CMakeLists.txt index 5a0e7b6..9cc5e06 100644 --- a/libgeotiff/CMakeLists.txt +++ b/libgeotiff/CMakeLists.txt @@ -102,13 +102,6 @@ endif (MSVC) ############################################################################### # Optionnal supports -# Zlib support - optional, default=OFF -option(WITH_ZLIB "Choose if zlib support should be built" OFF) - -# JPEG support - optional, default=OFF -option(WITH_JPEG "Choose if JPEG support should be built" OFF) - - # Turn off TOWGS84 support option(WITH_TOWGS84 "Build with TOWGS84 support" ON) IF (NOT WITH_TOWGS84) @@ -234,22 +227,6 @@ ENDIF() TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_TIFF=1) -# optionnal - -IF(WITH_JPEG) - FIND_PACKAGE(JPEG REQUIRED) - SET(HAVE_JPEG 1) - TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${JPEG_INCLUDE_DIR}) - target_compile_definitions(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_JPEG=${HAVE_JPEG}) -ENDIF() - -IF(WITH_ZLIB) - FIND_PACKAGE(ZLIB REQUIRED) - SET(HAVE_ZIP 1) - TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${ZLIB_INCLUDE_DIR}) - TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_ZIP=${HAVE_ZIP}) -ENDIF() - TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PUBLIC $ $ @@ -314,15 +291,9 @@ if(TARGET PROJ::proj) string(APPEND CONFIG_PRIVATE_DEPENDENCIES " find_dependency(PROJ)\n") endif() -if(TARGET ZLIB::zlib) - set(ZLIB_LIBRARIES ZLIB::zlib) - string(APPEND CONFIG_PRIVATE_DEPENDENCIES " find_dependency(ZLIB)\n") -endif() - target_link_libraries(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${PROJ_LIBRARIES} - ${TIFF_LIBRARIES} - ${ZLIB_LIBRARIES}) + ${TIFF_LIBRARIES}) target_include_directories( ${GEOTIFF_LIBRARY_TARGET} PUBLIC $ @@ -385,7 +356,5 @@ Summary of build options: Build GeoTIFF utilities: ${WITH_UTILITIES} PROJ version: ${PROJ_VERSION_STRING} TIFF version: ${TIFF_VERSION_STRING} - Build zlib support: ${WITH_ZLIB} ${ZLIB_VERSION} - Build JPEG support: ${WITH_JPEG} ${JPEG_VERSION} Build TOWGS84 support: ${WITH_TOWGS84} ################################") From 6ddad7cd0244855a4f1c460a0804d4feb70cf549 Mon Sep 17 00:00:00 2001 From: nono303 Date: Fri, 14 Jun 2024 15:57:20 +0200 Subject: [PATCH 3/5] https://github.com/OSGeo/libgeotiff/pull/123#discussion_r1639825356 --- libgeotiff/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/libgeotiff/CMakeLists.txt b/libgeotiff/CMakeLists.txt index 9cc5e06..f2d1e01 100644 --- a/libgeotiff/CMakeLists.txt +++ b/libgeotiff/CMakeLists.txt @@ -225,7 +225,6 @@ IF(NOT HAVE_TIFFMERGEFIELDINFO) ENDIF() TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) -TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_TIFF=1) TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PUBLIC $ From cddc1d550429a741fb3f46885f41267d5ffc64cd Mon Sep 17 00:00:00 2001 From: nono303 Date: Fri, 14 Jun 2024 15:58:57 +0200 Subject: [PATCH 4/5] Update libgeotiff/CMakeLists.txt Co-authored-by: Even Rouault --- libgeotiff/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/libgeotiff/CMakeLists.txt b/libgeotiff/CMakeLists.txt index 5a0e7b6..e14ec8a 100644 --- a/libgeotiff/CMakeLists.txt +++ b/libgeotiff/CMakeLists.txt @@ -232,7 +232,6 @@ IF(NOT HAVE_TIFFMERGEFIELDINFO) ENDIF() TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${TIFF_INCLUDE_DIR}) -TARGET_COMPILE_DEFINITIONS(${GEOTIFF_LIBRARY_TARGET} PRIVATE -DHAVE_TIFF=1) # optionnal From 6c0122a4bf3c92dc71afbcec2136459fb6bcf6d1 Mon Sep 17 00:00:00 2001 From: nono303 Date: Fri, 14 Jun 2024 16:24:16 +0200 Subject: [PATCH 5/5] Update libgeotiff/CMakeLists.txt Co-authored-by: Even Rouault --- libgeotiff/CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libgeotiff/CMakeLists.txt b/libgeotiff/CMakeLists.txt index e14ec8a..930d71f 100644 --- a/libgeotiff/CMakeLists.txt +++ b/libgeotiff/CMakeLists.txt @@ -225,11 +225,6 @@ IF(NOT HAVE_TIFFOPEN) MESSAGE(FATAL_ERROR "Failed to link with libtiff - TIFFOpen function not found") ENDIF() -CHECK_FUNCTION_EXISTS(TIFFMergeFieldInfo HAVE_TIFFMERGEFIELDINFO) -IF(NOT HAVE_TIFFMERGEFIELDINFO) - SET(TIFF_FOUND) # ReSET to NOT found for TIFF library - MESSAGE(FATAL_ERROR "Failed to link with libtiff - TIFFMergeFieldInfo function not found. libtiff 3.6.0 Beta or later required. Please upgrade or use an older version of libgeotiff") -ENDIF() TARGET_INCLUDE_DIRECTORIES(${GEOTIFF_LIBRARY_TARGET} PRIVATE ${TIFF_INCLUDE_DIR})