From 75aafafa6e359e88cec861a70cc36253a82fcc5d Mon Sep 17 00:00:00 2001 From: Bart Ribbers Date: Fri, 13 Nov 2020 15:16:22 +0100 Subject: [PATCH] Respect GNUInstallDirs This allows packagers to set the proper directories to install stuff too using CMAKE_INSTALL_PREFIX, CMAKE_INSTALL_LIBDIR, etc. Also make installing systemd unit files optional, for systemd without systemd, but enable them by default --- CMakeLists.txt | 11 ++++++++--- src/booster-generic/CMakeLists.txt | 7 +++++-- src/invoker/CMakeLists.txt | 4 +--- src/launcherlib/CMakeLists.txt | 2 +- src/single-instance/CMakeLists.txt | 2 +- 5 files changed, 16 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1a91369..05bb06b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,11 @@ project(Applauncherd) cmake_minimum_required(VERSION 2.6) cmake_policy(VERSION 2.6) +include(FeatureSummary) +include(GNUInstallDirs) + +option(INSTALL_SYSTEMD_UNITS "Install systemd unit files" ON) + # # NOTE: For verbose build use VERBOSE=1 # @@ -56,6 +61,6 @@ else (EXISTS ${Doxygen}) endif (EXISTS ${Doxygen}) # Install html documentation -install(DIRECTORY doc/implementation-documentation DESTINATION /usr/share/doc/applauncherd OPTIONAL) -install(DIRECTORY doc/user-documentation DESTINATION /usr/share/doc/applauncherd OPTIONAL) -install(DIRECTORY doc/mdeclarativecache-documentation DESTINATION /usr/share/doc/applauncherd OPTIONAL) +install(DIRECTORY doc/implementation-documentation DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} OPTIONAL) +install(DIRECTORY doc/user-documentation DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} OPTIONAL) +install(DIRECTORY doc/mdeclarativecache-documentation DESTINATION ${CMAKE_INSTALL_FULL_DOCDIR} OPTIONAL) diff --git a/src/booster-generic/CMakeLists.txt b/src/booster-generic/CMakeLists.txt index 2b0672b..c26b867 100644 --- a/src/booster-generic/CMakeLists.txt +++ b/src/booster-generic/CMakeLists.txt @@ -17,5 +17,8 @@ add_executable(booster-generic ${SRC} ${MOC_SRC}) add_dependencies(booster-generic applauncherd) # Add install rule -install(TARGETS booster-generic DESTINATION /usr/libexec/mapplauncherd/) -install(FILES booster-generic.service DESTINATION /usr/lib/systemd/user/) +install(TARGETS booster-generic DESTINATION ${CMAKE_INSTALL_FULL_LIBEXECDIR}/mapplauncherd/) + +if(INSTALL_SYSTEMD_UNITS) + install(FILES booster-generic.service DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/systemd/user/) +endif() diff --git a/src/invoker/CMakeLists.txt b/src/invoker/CMakeLists.txt index 3a35a6b..78be60c 100644 --- a/src/invoker/CMakeLists.txt +++ b/src/invoker/CMakeLists.txt @@ -19,6 +19,4 @@ add_executable(invoker ${SRC}) target_link_libraries(invoker ${DBUS_LDFLAGS}) # Add install rule -install(TARGETS invoker DESTINATION /usr/bin/) - - +install(TARGETS invoker DESTINATION ${CMAKE_INSTALL_FULL_BINDIR}) diff --git a/src/launcherlib/CMakeLists.txt b/src/launcherlib/CMakeLists.txt index 2c9fb4d..5396614 100644 --- a/src/launcherlib/CMakeLists.txt +++ b/src/launcherlib/CMakeLists.txt @@ -32,5 +32,5 @@ target_link_libraries(applauncherd ${SYSTEMD_LIBRARIES}) # Add install rule install(TARGETS applauncherd DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}) -install(FILES ${HEADERS} DESTINATION /usr/include/applauncherd +install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR}/applauncherd PERMISSIONS OWNER_READ GROUP_READ WORLD_READ) diff --git a/src/single-instance/CMakeLists.txt b/src/single-instance/CMakeLists.txt index acc1439..fd9be9c 100644 --- a/src/single-instance/CMakeLists.txt +++ b/src/single-instance/CMakeLists.txt @@ -26,4 +26,4 @@ link_libraries(${DBUS_LDFLAGS}) add_executable(single-instance ${SRC}) # Add install rule -install(TARGETS single-instance DESTINATION /usr/bin/) +install(TARGETS single-instance DESTINATION ${CMAKE_INSTALL_FULL_BINDIR})