summaryrefslogtreecommitdiff
path: root/cmake/PkgConfig.cmake
blob: ec4f5383cff504734cffd5bcd92ab2f98c8cd556 (plain)
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
# pkg-config support
#
# Copyright © 2015 Open Microscopy Environment / University of Dundee
# Copyright © 2021 Roger Leigh <rleigh@codelibre.net>
# Written by Roger Leigh <rleigh@codelibre.net>
#
# Permission to use, copy, modify, distribute, and sell this software and
# its documentation for any purpose is hereby granted without fee, provided
# that (i) the above copyright notices and this permission notice appear in
# all copies of the software and related documentation, and (ii) the names of
# Sam Leffler and Silicon Graphics may not be used in any advertising or
# publicity relating to the software without the specific, prior written
# permission of Sam Leffler and Silicon Graphics.
#
# THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
# EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
# WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
#
# IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
# ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
# WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
# LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
# OF THIS SOFTWARE.

# Post-process lib files into linker flags
function(set_libs_private out_var)
    set(tiff_libs_private "")
    foreach(lib IN LISTS ARGN)
        get_filename_component(name "${lib}" NAME)
        foreach(prefix IN LISTS CMAKE_FIND_LIBRARY_PREFIXES)
            if(name MATCHES "^${prefix}")
                string(REGEX REPLACE "^${prefix}" "" name "${name}")
                break()
            endif()
        endforeach()
        foreach(suffix IN LISTS CMAKE_FIND_LIBRARY_SUFFIXES)
            if(name MATCHES "${suffix}$")
                string(REGEX REPLACE "${suffix}$" "" name "${name}")
                break()
            endif()
        endforeach()
        string(APPEND tiff_libs_private " -l${name}")
    endforeach()
    set(${out_var} "${tiff_libs_private}" PARENT_SCOPE)
endfunction()

# Generate pkg-config file
set(prefix "${CMAKE_INSTALL_PREFIX}")
set(exec_prefix "\${prefix}")
if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
    set(libdir "${CMAKE_INSTALL_LIBDIR}")
else()
    set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
endif()
if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
    set(includedir "${CMAKE_INSTALL_INCLUDEDIR}")
else()
    set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
endif()
set_libs_private(tiff_libs_private ${tiff_libs_private_list})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libtiff-4.pc.in
        ${CMAKE_CURRENT_BINARY_DIR}/libtiff-4.pc @ONLY)

# Install pkg-config file
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libtiff-4.pc
        DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")