hc
2023-02-13 e440ec23c5a540cdd3f7464e8779219be6fd3d95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
From 38f50c7d9ad3ba06b64583045665203afb53cbd9 Mon Sep 17 00:00:00 2001
From: Samuel Martin <s.martin49@gmail.com>
Date: Sun, 6 Nov 2016 16:29:08 +0100
Subject: [PATCH] thirdparty: tiff: append flags found by pkg-config if
 available
 
This change allows to get all required CFLAGS/LDFLAGS in case of static only
build.
 
This build issue [1] was triggered by the Buildroot farms.
 
[1] http://autobuild.buildroot.net/results/d0d/d0d22727311d6300e0e400728126170407bfd699/build-end.log
 
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
---
 thirdparty/CMakeLists.txt | 23 +++++++++++++++++++++--
 1 file changed, 21 insertions(+), 2 deletions(-)
 
diff --git a/thirdparty/CMakeLists.txt b/thirdparty/CMakeLists.txt
index cb24b43b58e2..cd6a5e1391b0 100644
--- a/thirdparty/CMakeLists.txt
+++ b/thirdparty/CMakeLists.txt
@@ -1,5 +1,9 @@
 # 3rd party libs
 
+if(NOT BUILD_THIRDPARTY)
+  include(FindPkgConfig)
+endif(NOT BUILD_THIRDPARTY)
+
 #------------
 # Try to find lib Z
 if(BUILD_THIRDPARTY)
@@ -36,6 +40,9 @@ if(BUILD_THIRDPARTY)
 else(BUILD_THIRDPARTY)
   if(ZLIB_FOUND)
     find_package(PNG)
+    # Static only build:
+    #   it is not necessary to invoke pkg_check_module on libpng, because libpng
+    #   only depends on zlib, which is already checked.
     if(PNG_FOUND)
       message(STATUS "Your system seems to have a PNG lib available, we will use it")
       set(OPJ_HAVE_PNG_H 1 PARENT_SCOPE)
@@ -66,12 +73,24 @@ if(BUILD_THIRDPARTY)
   set(OPJ_HAVE_LIBTIFF 1 PARENT_SCOPE)
 else(BUILD_THIRDPARTY)
   find_package(TIFF)
+  # Static only build:
+  #   it is necessary to invoke pkg_check_module on libtiff since it may have
+  #   several other dependencies not declared by its cmake module, but they are
+  #   in the its pkgconfig module.
+  if(PKG_CONFIG_FOUND)
+    foreach(pc_tiff_module tiff tiff3 tiff4 tiff-3 tiff-4 libtiff libtiff3 libtiff4 libtiff-3 libtiff-4)
+      pkg_check_modules(PC_TIFF QUIET ${pc_tiff_module})
+      if(PC_TIFF_FOUND)
+        break()
+      endif(PC_TIFF_FOUND)
+    endforeach()
+  endif(PKG_CONFIG_FOUND)
   if(TIFF_FOUND)
     message(STATUS "Your system seems to have a TIFF lib available, we will use it")
     set(OPJ_HAVE_TIFF_H 1 PARENT_SCOPE)
     set(OPJ_HAVE_LIBTIFF 1 PARENT_SCOPE)
-    set(TIFF_LIBNAME ${TIFF_LIBRARIES} PARENT_SCOPE)
-    set(TIFF_INCLUDE_DIRNAME ${TIFF_INCLUDE_DIR} PARENT_SCOPE)
+    set(TIFF_LIBNAME ${TIFF_LIBRARIES} ${PC_TIFF_STATIC_LIBRARIES} PARENT_SCOPE)
+    set(TIFF_INCLUDE_DIRNAME ${TIFF_INCLUDE_DIR} ${PC_TIFF_STATIC_INCLUDE_DIRS} PARENT_SCOPE)
   else(TIFF_FOUND) # not found
     set(OPJ_HAVE_TIFF_H 0 PARENT_SCOPE)
     set(OPJ_HAVE_LIBTIFF 0 PARENT_SCOPE)
-- 
2.10.2