Skip to content

Commit 2c49607

Browse files
Kai Pastorrouault
Kai Pastor
authored andcommitted
Fix version in libtiff-4.pc.in, and CMake build: Add requirements to pc file
1 parent c145a6c commit 2c49607

File tree

5 files changed

+49
-5
lines changed

5 files changed

+49
-5
lines changed

CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,6 @@ include(WindowsSupport)
124124
# Orthogonal features
125125
include(LibraryFeatures)
126126

127-
# pkg-config support
128-
include(PkgConfig)
129127

130128
# math.h/libm portability
131129
find_package(CMath REQUIRED)
@@ -144,6 +142,8 @@ add_subdirectory(build)
144142
add_subdirectory(man)
145143
add_subdirectory(html)
146144

145+
# pkg-config support
146+
include(PkgConfig)
147147

148148
message(STATUS "")
149149
message(STATUS "Libtiff is now configured for ${CMAKE_SYSTEM}")

cmake/PkgConfig.cmake

+23
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,34 @@
2323
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
2424
# OF THIS SOFTWARE.
2525

26+
# Post-process lib files into linker flags
27+
function(set_libs_private out_var)
28+
set(tiff_libs_private "")
29+
foreach(lib IN LISTS ARGN)
30+
get_filename_component(name "${lib}" NAME)
31+
foreach(prefix IN LISTS CMAKE_FIND_LIBRARY_PREFIXES)
32+
if(name MATCHES "^${prefix}")
33+
string(REGEX REPLACE "^${prefix}" "" name "${name}")
34+
break()
35+
endif()
36+
endforeach()
37+
foreach(suffix IN LISTS CMAKE_FIND_LIBRARY_SUFFIXES)
38+
if(name MATCHES "${suffix}$")
39+
string(REGEX REPLACE "${suffix}$" "" name "${name}")
40+
break()
41+
endif()
42+
endforeach()
43+
string(APPEND tiff_libs_private " -l${name}")
44+
endforeach()
45+
set(${out_var} "${tiff_libs_private}" PARENT_SCOPE)
46+
endfunction()
47+
2648
# Generate pkg-config file
2749
set(prefix "${CMAKE_INSTALL_PREFIX}")
2850
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
2951
set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}")
3052
set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}")
53+
set_libs_private(tiff_libs_private ${tiff_libs_private_list})
3154
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libtiff-4.pc.in
3255
${CMAKE_CURRENT_BINARY_DIR}/libtiff-4.pc)
3356

configure.ac

+3
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,9 @@ AM_SILENT_RULES
160160
tiff_libs_private=
161161
AC_SUBST(tiff_libs_private)
162162

163+
tiff_requires_private=
164+
AC_SUBST(tiff_requires_private)
165+
163166
dnl We don't need to add math library to all targets
164167
case "${host_os}" in
165168
cygwin* | mingw32* | beos* | darwin*)

libtiff-4.pc.in

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ includedir=@includedir@
55

66
Name: libtiff
77
Description: Tag Image File Format (TIFF) library.
8-
Version: @VERSION@
8+
Version: @LIBTIFF_MAJOR_VERSION@.@LIBTIFF_MINOR_VERSION@.@LIBTIFF_MICRO_VERSION@
99
Libs: -L${libdir} -ltiff
1010
Libs.private: @tiff_libs_private@
1111
Cflags: -I${includedir}
12+
Requires.private: @tiff_requires_private@

libtiff/CMakeLists.txt

+19-2
Original file line numberDiff line numberDiff line change
@@ -106,35 +106,52 @@ target_include_directories(tiff
106106
${TIFF_INCLUDES}
107107
)
108108

109+
set(tiff_libs_private_list "") # cmake list
110+
set(tiff_requires_private "") # cmake string
111+
109112
if(ZIP_SUPPORT)
110113
target_link_libraries(tiff PRIVATE ZLIB::ZLIB)
114+
string(APPEND tiff_requires_private " zlib")
111115
endif()
112116
if(ZIP_SUPPORT AND LIBDEFLATE_SUPPORT)
113117
target_link_libraries(tiff PRIVATE Deflate::Deflate)
118+
list(APPEND tiff_libs_private_list "${Deflate_LIBRARY}")
114119
endif()
115120
if(JPEG_SUPPORT)
116121
target_link_libraries(tiff PRIVATE JPEG::JPEG)
122+
string(APPEND tiff_requires_private " libjpeg")
117123
if(JPEG_DUAL_MODE_8_12)
118124
target_include_directories(tiff PRIVATE ${JPEG12_INCLUDE_DIR})
119125
target_link_libraries(tiff PRIVATE ${JPEG12_LIBRARIES})
120126
endif()
121127
endif()
122128
if(JBIG_SUPPORT)
123129
target_link_libraries(tiff PRIVATE JBIG::JBIG)
130+
list(APPEND tiff_libs_private_list "${JBIG_LIBRARY}")
124131
endif()
125132
if(LERC_SUPPORT)
126-
target_link_libraries(tiff PRIVATE LERC::LERC)
133+
target_link_libraries(tiff PRIVATE LERC::LERC)
134+
list(APPEND tiff_libs_private_list "${LERC_LIBRARY}")
127135
endif()
128136
if(LZMA_SUPPORT)
129-
target_link_libraries(tiff PRIVATE LibLZMA::LibLZMA)
137+
target_link_libraries(tiff PRIVATE LibLZMA::LibLZMA)
138+
string(APPEND tiff_requires_private " liblzma")
130139
endif()
131140
if(ZSTD_SUPPORT)
132141
target_link_libraries(tiff PRIVATE ZSTD::ZSTD)
142+
string(APPEND tiff_requires_private " libzstd")
133143
endif()
134144
if(WEBP_SUPPORT)
135145
target_link_libraries(tiff PRIVATE WebP::WebP)
146+
string(APPEND tiff_requires_private " libwebp")
136147
endif()
137148
target_link_libraries(tiff PRIVATE CMath::CMath)
149+
if(CMath_LIBRARY)
150+
list(APPEND tiff_libs_private_list "${CMath_LIBRARY}")
151+
endif()
152+
153+
set(tiff_libs_private_list "${tiff_libs_private_list}" PARENT_SCOPE)
154+
set(tiff_requires_private "${tiff_requires_private}" PARENT_SCOPE)
138155

139156
set_target_properties(tiff PROPERTIES SOVERSION ${SO_COMPATVERSION})
140157
if(NOT CYGWIN)

0 commit comments

Comments
 (0)