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 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
From: Jérémy Bobbio <lunar@debian.org>
Date: Sat, 5 Aug 2023 21:36:50 -0400
Subject: fix installation paths
Use GNUInstallDirs in CMake configuration to use the proper library
and include directories in multiarch systems.
---
CMakeLists.txt | 10 ++++------
cmake/modules/FindQJSON.cmake | 3 ++-
libmygpo-qt.pc.in | 4 ++--
src/CMakeLists.txt | 4 ++--
4 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2a1f652..ed6f075 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -85,11 +85,9 @@ set( CPACK_PACKAGE_VERSION "${MYGPO_QT_VERSION}" )
set( CPACK_DEBIAN_PACKAGE_MAINTAINER "gpodder@freelists.org" )
set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "A c++/qt library to access the APIs provided by gpodder.net." )
-set(LIB_SUFFIX "" CACHE STRING "The directories where to install libraries to")
-set(LIB_INSTALL_DIR lib${LIB_SUFFIX} )
-set(LIB_DIR_PKGCONF "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
-set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include/mygpo-qt${MYGPO_QT_VERSION_SUFFIX}" CACHE PATH "The directory the headers are installed in")
-set(CMAKECONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/mygpo-qt${MYGPO_QT_VERSION_SUFFIX})
+include(GNUInstallDirs)
+set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}/mygpo-qt${MYGPO_QT_VERSION_SUFFIX}" CACHE PATH "The directory the headers are installed in")
+set(CMAKECONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/mygpo-qt${MYGPO_QT_VERSION_SUFFIX})
if( APPLE )
set( CPACK_GENERATOR "DragNDrop" )
@@ -125,7 +123,7 @@ IF (NOT WIN32)
CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/libmygpo-qt.pc.in
${CMAKE_CURRENT_BINARY_DIR}/libmygpo-qt${MYGPO_QT_VERSION_SUFFIX}.pc
@ONLY)
- INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/libmygpo-qt${MYGPO_QT_VERSION_SUFFIX}.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
+ INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/libmygpo-qt${MYGPO_QT_VERSION_SUFFIX}.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
ENDIF (PKG_CONFIG_FOUND)
ENDIF (NOT WIN32)
diff --git a/cmake/modules/FindQJSON.cmake b/cmake/modules/FindQJSON.cmake
index 936d93b..cf5e6a3 100644
--- a/cmake/modules/FindQJSON.cmake
+++ b/cmake/modules/FindQJSON.cmake
@@ -14,6 +14,7 @@ if (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
else (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
if (NOT WIN32)
+ include (GNUInstallDirs)
# use pkg-config to get the values of QJSON_INCLUDE_DIRS
# and QJSON_LIBRARY_DIRS to add as hints to the find commands.
include (FindPkgConfig)
@@ -25,7 +26,7 @@ else (QJSON_INCLUDE_DIR AND QJSON_LIBRARIES)
qjson
PATHS
${QJSON_LIBRARY_DIRS}
- ${LIB_INSTALL_DIR}
+ ${CMAKE_INSTALL_LIBDIR}
${KDE4_LIB_DIR}
)
diff --git a/libmygpo-qt.pc.in b/libmygpo-qt.pc.in
index 8403e48..b5c66f4 100644
--- a/libmygpo-qt.pc.in
+++ b/libmygpo-qt.pc.in
@@ -1,7 +1,7 @@
prefix=@CMAKE_INSTALL_PREFIX@
exec_prefix=${prefix}
-libdir=@LIB_DIR_PKGCONF@
-includedir=@INCLUDE_INSTALL_DIR@
+libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${prefix}/@INCLUDE_INSTALL_DIR@
Name: libmygpo-qt@MYGPO_QT_VERSION_SUFFIX@
Description: libmygpo-qt is a C++/Qt Library that wraps the gpodder.net WebAPI
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 802125b..8111ec2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -87,6 +87,6 @@ target_link_libraries( ${MYGPO_QT_TARGET_NAME} ${QJSON_LIBRARIES} ${QT_QTCORE_LI
target_link_libraries( ${MYGPO_QT_TARGET_NAME} Qt6::Core Qt6::Network)
endif()
-install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${LIB_INSTALL_DIR} )
+install( TARGETS ${MYGPO_QT_TARGET_NAME} EXPORT ${MYGPO_QT_TARGET_NAME}Export DESTINATION ${CMAKE_INSTALL_LIBDIR} )
-install( FILES ${LIBMYGPO_QT_INSTALL_H} DESTINATION ${INCLUDE_INSTALL_DIR} COMPONENT Devel )
+install( FILES ${LIBMYGPO_QT_INSTALL_H} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mygpo-qt${MYGPO_QT_VERSION_SUFFIX} COMPONENT Devel )
|