libtiff: Merge branch 'fix_577' into 'master'

From 50eab58d6eae351408c58e74edc2eb328ff439d8 Mon Sep 17 00:00:00 2001
From: Even Rouault <[EMAIL REDACTED]>
Date: Mon, 5 Jun 2023 16:18:57 +0200
Subject: [PATCH 1/5] libtiff/CMakeLists.txt: correctly define TIFF::tiff alias
 (fixes #577)

---
 libtiff/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libtiff/CMakeLists.txt b/libtiff/CMakeLists.txt
index 636cf35c..0125ee56 100755
--- a/libtiff/CMakeLists.txt
+++ b/libtiff/CMakeLists.txt
@@ -46,7 +46,7 @@ set(tiff_private_HEADERS
 
 
 add_library(tiff libtiff.def)
-add_library(TIFF::TIFF ALIAS tiff)
+add_library(TIFF::tiff ALIAS tiff)
 
 target_sources(tiff PRIVATE
         ${tiff_public_HEADERS}

From c978a6c3eaa9d4a4770d10f3d99446428e7436b9 Mon Sep 17 00:00:00 2001
From: Even Rouault <even.rouault@spatialys.com>
Date: Mon, 5 Jun 2023 17:20:26 +0200
Subject: [PATCH 2/5] libtiff/CMakeLists.txt: fix export of
 INTERFACE_INCLUDE_DIRECTORIES

---
 libtiff/CMakeLists.txt | 1 +
 1 file changed, 1 insertion(+)

diff --git a/libtiff/CMakeLists.txt b/libtiff/CMakeLists.txt
index 0125ee56..8ea05d26 100755
--- a/libtiff/CMakeLists.txt
+++ b/libtiff/CMakeLists.txt
@@ -104,6 +104,7 @@ target_include_directories(tiff
     PUBLIC
         $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
         $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
+        $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
     PRIVATE
         ${TIFF_INCLUDES}
 )

From 71c90a51bc8ccaa3c02deaa7276cdc3aaffc3c46 Mon Sep 17 00:00:00 2001
From: Even Rouault <even.rouault@spatialys.com>
Date: Mon, 5 Jun 2023 16:49:12 +0200
Subject: [PATCH 3/5] CMake: export TiffConfig.cmake and
 TiffConfigVersion.cmake files

---
 cmake/TiffConfig.cmake.in |  6 ++++++
 libtiff/CMakeLists.txt    | 12 ++++++++++++
 2 files changed, 18 insertions(+)
 create mode 100644 cmake/TiffConfig.cmake.in

diff --git a/cmake/TiffConfig.cmake.in b/cmake/TiffConfig.cmake.in
new file mode 100644
index 00000000..8e0fada2
--- /dev/null
+++ b/cmake/TiffConfig.cmake.in
@@ -0,0 +1,6 @@
+if(NOT "@BUILD_SHARED_LIBS@")
+    # TODO: import dependencies
+endif()
+if(NOT TARGET TIFF::tiff)
+    include("${CMAKE_CURRENT_LIST_DIR}/TiffTargets.cmake")
+endif()
diff --git a/libtiff/CMakeLists.txt b/libtiff/CMakeLists.txt
index 8ea05d26..734d38e5 100755
--- a/libtiff/CMakeLists.txt
+++ b/libtiff/CMakeLists.txt
@@ -198,6 +198,18 @@ if(tiff-install)
           NAMESPACE TIFF::
           DESTINATION ${TIFF_CONFIGDIR}
   )
+
+  include(CMakePackageConfigHelpers)
+  write_basic_package_version_file(
+    TiffConfigVersion.cmake
+    VERSION ${LIBTIFF_VERSION}
+    COMPATIBILITY SameMajorVersion)
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TiffConfigVersion.cmake DESTINATION ${TIFF_CONFIGDIR})
+
+  configure_file(${PROJECT_SOURCE_DIR}/cmake/TiffConfig.cmake.in
+                 ${CMAKE_CURRENT_BINARY_DIR}/TiffConfig.cmake @ONLY)
+  install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TiffConfig.cmake DESTINATION ${TIFF_CONFIGDIR})
+
 endif()
 
 if(CXX_SUPPORT)

From 97785f8527535b837cd29a547101a96073ef5d4e Mon Sep 17 00:00:00 2001
From: Even Rouault <even.rouault@spatialys.com>
Date: Mon, 5 Jun 2023 16:50:59 +0200
Subject: [PATCH 4/5] CI: add testing of find_package(Tiff CONFIG)

---
 build/gitlab-ci                 | 6 ++++++
 build/test_cmake/CMakeLists.txt | 7 +++++++
 build/test_cmake/test.c         | 7 +++++++
 3 files changed, 20 insertions(+)
 create mode 100644 build/test_cmake/CMakeLists.txt
 create mode 100644 build/test_cmake/test.c

diff --git a/build/gitlab-ci b/build/gitlab-ci
index 7058eeed..c8331423 100644
--- a/build/gitlab-ci
+++ b/build/gitlab-ci
@@ -51,6 +51,12 @@ cmake_build()
     $COVERITY_BUILD cmake --build .
     cmake --build . --target install
     ctest -V
+    cd ..
+    # Build test project using find_package(Tiff CONFIG)
+    mkdir cmake-test-build
+    cd cmake-test-build
+    cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" "-DTiff_DIR=$PWD/../cmake-install/lib/cmake/tiff" -S ../build/test_cmake -B .
+    cmake --build .
 }
 
 # Static-analysis with coverity
diff --git a/build/test_cmake/CMakeLists.txt b/build/test_cmake/CMakeLists.txt
new file mode 100644
index 00000000..8221220b
--- /dev/null
+++ b/build/test_cmake/CMakeLists.txt
@@ -0,0 +1,7 @@
+cmake_minimum_required(VERSION 3.9.0)
+project(test)
+
+find_package(Tiff CONFIG REQUIRED)
+
+add_executable(test test.c)
+target_link_libraries(test PRIVATE TIFF::tiff)
diff --git a/build/test_cmake/test.c b/build/test_cmake/test.c
new file mode 100644
index 00000000..011b53e1
--- /dev/null
+++ b/build/test_cmake/test.c
@@ -0,0 +1,7 @@
+#include "tiffio.h"
+
+int main()
+{
+    TIFFGetVersion();
+    return 0;
+}

From b8d15d9dbe50eacd40c19a42308bc7dc12626981 Mon Sep 17 00:00:00 2001
From: Timothy Lyanguzov <theta682@gmail.com>
Date: Mon, 5 Jun 2023 23:23:50 +0000
Subject: [PATCH 5/5] Apply 1 suggestion(s) to 1 file(s)

---
 libtiff/CMakeLists.txt | 1 -
 1 file changed, 1 deletion(-)

diff --git a/libtiff/CMakeLists.txt b/libtiff/CMakeLists.txt
index 734d38e5..5d2a29ca 100755
--- a/libtiff/CMakeLists.txt
+++ b/libtiff/CMakeLists.txt
@@ -209,7 +209,6 @@ if(tiff-install)
   configure_file(${PROJECT_SOURCE_DIR}/cmake/TiffConfig.cmake.in
                  ${CMAKE_CURRENT_BINARY_DIR}/TiffConfig.cmake @ONLY)
   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/TiffConfig.cmake DESTINATION ${TIFF_CONFIGDIR})
-
 endif()
 
 if(CXX_SUPPORT)