libtiff: Add static build for CI/CD to run testcases which need private interface functions.

From ca85b5f760fb42316dbe58255c036da08d8c4cc3 Mon Sep 17 00:00:00 2001
From: Su_Laus <[EMAIL REDACTED]>
Date: Sun, 6 Aug 2023 22:29:00 +0200
Subject: [PATCH] Add static build for CI/CD to run testcases which need
 private interface functions.

---
 .gitlab-ci.yml  |  5 +++++
 build/gitlab-ci | 38 ++++++++++++++++++++++++--------------
 2 files changed, 29 insertions(+), 14 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index cf10b2e4..13b49b87 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -30,6 +30,11 @@ cmake-makefiles-current:
   script:
     - sh build/gitlab-ci cmake "Unix Makefiles" Release
 
+cmake-makefiles-current-static:
+  stage: build
+  script:
+    - sh build/gitlab-ci cmake "Unix Makefiles" Release static
+
 cmake-ninja-current:
   stage: build
   script:
diff --git a/build/gitlab-ci b/build/gitlab-ci
index 234a9302..c969ccfd 100644
--- a/build/gitlab-ci
+++ b/build/gitlab-ci
@@ -46,24 +46,34 @@ cmake_build()
     mkdir cmake-build
     cd cmake-build
     opts="-Dfatal-warnings=ON"
-    echo "Running cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../cmake-install ${opts} .."
-    cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../cmake-install ${opts} ..
+    para3=`echo "$3" | sed 's/./\L&/g'`
+    if [ "$para3" = "static" ]; then
+        opts2="-DBUILD_SHARED_LIBS:BOOL=OFF"
+    else
+        opts2=""
+    fi
+    echo "Running cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../cmake-install ${opts} ${opts2} .."
+    cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" -DCMAKE_INSTALL_PREFIX=../cmake-install ${opts} ${opts2}  ..
     $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 .
-    cd ..
-    mkdir cmake-test-no-target-build
-    cd cmake-test-no-target-build
-    cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" "-DTiff_DIR=$PWD/../cmake-install/lib/cmake/tiff" -S ../build/test_cmake_no_target -B .
-    cmake --build .
-    # Return to cmake-build for coverity_build()
-    cd ../cmake-build
+    if [ "$para3" = "static" ]; then
+        echo No test project build for STATIC CI/CD build - skipped -.
+    else
+        # 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 .
+        cd ..
+        mkdir cmake-test-no-target-build
+        cd cmake-test-no-target-build
+        cmake -G "$1" -DCMAKE_BUILD_TYPE="$2" "-DTiff_DIR=$PWD/../cmake-install/lib/cmake/tiff" -S ../build/test_cmake_no_target -B .
+        cmake --build .
+        # Return to cmake-build for coverity_build()
+        cd ../cmake-build
+    fi
 }
 
 # Static-analysis with coverity