1 From a27ce770db14fcc4dcb971f2122b9ede64c6298d Mon Sep 17 00:00:00 2001
2 From: Jan Palus <jpalus@fastmail.com>
3 Date: Fri, 29 Sep 2023 21:36:12 +0200
4 Subject: [PATCH] cmake: support both relative and absolute paths for pc files
6 cmake supports both absolute and relative to prefix install dirs. #1071
7 effectively mandated relative paths only. check if install dir is
8 relative or absolute and either include ${prefix} in pc file or not
12 CMakeLists.txt | 10 ++++++++++
13 bindings/c/CMakeLists.txt | 10 ++++++++++
14 bindings/c/taglib_c.pc.cmake | 4 ++--
15 taglib.pc.cmake | 4 ++--
16 4 files changed, 24 insertions(+), 4 deletions(-)
18 diff --git a/CMakeLists.txt b/CMakeLists.txt
19 index b2393290..e330b690 100644
22 @@ -119,6 +119,16 @@ if(WIN32)
25 if(NOT BUILD_FRAMEWORK)
26 + if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
27 + set(CMAKE_PC_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR})
29 + set(CMAKE_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
31 + if (IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
32 + set(CMAKE_PC_LIBDIR ${CMAKE_INSTALL_LIBDIR})
34 + set(CMAKE_PC_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
36 configure_file("${CMAKE_CURRENT_SOURCE_DIR}/taglib.pc.cmake" "${CMAKE_CURRENT_BINARY_DIR}/taglib.pc" @ONLY)
37 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/taglib.pc" DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
39 diff --git a/bindings/c/CMakeLists.txt b/bindings/c/CMakeLists.txt
40 index d947aa4a..b24c9dca 100644
41 --- a/bindings/c/CMakeLists.txt
42 +++ b/bindings/c/CMakeLists.txt
43 @@ -69,6 +69,16 @@ install(TARGETS tag_c
46 if(NOT BUILD_FRAMEWORK)
47 + if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR})
48 + set(CMAKE_PC_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR})
50 + set(CMAKE_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
52 + if (IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR})
53 + set(CMAKE_PC_LIBDIR ${CMAKE_INSTALL_LIBDIR})
55 + set(CMAKE_PC_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
57 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/taglib_c.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/taglib_c.pc @ONLY)
58 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/taglib_c.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
60 diff --git a/bindings/c/taglib_c.pc.cmake b/bindings/c/taglib_c.pc.cmake
61 index 178f1e50..b3b4b2ac 100644
62 --- a/bindings/c/taglib_c.pc.cmake
63 +++ b/bindings/c/taglib_c.pc.cmake
65 prefix=@CMAKE_INSTALL_PREFIX@
67 -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
68 -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
69 +libdir=@CMAKE_PC_LIBDIR@
70 +includedir=@CMAKE_PC_INCLUDEDIR@
72 Name: TagLib C Bindings
73 Description: Audio meta-data library (C bindings)
74 diff --git a/taglib.pc.cmake b/taglib.pc.cmake
75 index 3800f078..1f1c9fdb 100644
79 prefix=@CMAKE_INSTALL_PREFIX@
81 -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
82 -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
83 +libdir=@CMAKE_PC_LIBDIR@
84 +includedir=@CMAKE_PC_INCLUDEDIR@
87 Description: Audio meta-data library