]>
Commit | Line | Data |
---|---|---|
a3a63344 JP |
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 | |
5 | ||
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 | |
9 | ||
10 | Fixes #1098 | |
11 | --- | |
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(-) | |
17 | ||
18 | diff --git a/CMakeLists.txt b/CMakeLists.txt | |
19 | index b2393290..e330b690 100644 | |
20 | --- a/CMakeLists.txt | |
21 | +++ b/CMakeLists.txt | |
22 | @@ -119,6 +119,16 @@ if(WIN32) | |
23 | endif() | |
24 | ||
25 | if(NOT BUILD_FRAMEWORK) | |
26 | + if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR}) | |
27 | + set(CMAKE_PC_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}) | |
28 | + else() | |
29 | + set(CMAKE_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") | |
30 | + endif() | |
31 | + if (IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR}) | |
32 | + set(CMAKE_PC_LIBDIR ${CMAKE_INSTALL_LIBDIR}) | |
33 | + else() | |
34 | + set(CMAKE_PC_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}") | |
35 | + endif() | |
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") | |
38 | endif() | |
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 | |
44 | ) | |
45 | ||
46 | if(NOT BUILD_FRAMEWORK) | |
47 | + if (IS_ABSOLUTE ${CMAKE_INSTALL_INCLUDEDIR}) | |
48 | + set(CMAKE_PC_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}) | |
49 | + else() | |
50 | + set(CMAKE_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") | |
51 | + endif() | |
52 | + if (IS_ABSOLUTE ${CMAKE_INSTALL_LIBDIR}) | |
53 | + set(CMAKE_PC_LIBDIR ${CMAKE_INSTALL_LIBDIR}) | |
54 | + else() | |
55 | + set(CMAKE_PC_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}") | |
56 | + endif() | |
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) | |
59 | endif() | |
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 | |
64 | @@ -1,7 +1,7 @@ | |
65 | prefix=@CMAKE_INSTALL_PREFIX@ | |
66 | exec_prefix=${prefix} | |
67 | -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ | |
68 | -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ | |
69 | +libdir=@CMAKE_PC_LIBDIR@ | |
70 | +includedir=@CMAKE_PC_INCLUDEDIR@ | |
71 | ||
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 | |
76 | --- a/taglib.pc.cmake | |
77 | +++ b/taglib.pc.cmake | |
78 | @@ -1,7 +1,7 @@ | |
79 | prefix=@CMAKE_INSTALL_PREFIX@ | |
80 | exec_prefix=${prefix} | |
81 | -libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ | |
82 | -includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ | |
83 | +libdir=@CMAKE_PC_LIBDIR@ | |
84 | +includedir=@CMAKE_PC_INCLUDEDIR@ | |
85 | ||
86 | Name: TagLib | |
87 | Description: Audio meta-data library | |
88 | -- | |
89 | 2.42.0 | |
90 |