ceph/systemd/CMakeLists.txt
胡玮文 8e49d36170 cmake: fix default systemd unit install dir
The original usage of CMAKE_INSTALL_LIBEXECDIR is incorrect.

Also try to get the path from pkg-config

Signed-off-by: 胡玮文 <huww98@outlook.com>
2021-11-18 15:07:26 +08:00

49 lines
1.3 KiB
CMake

find_package(PkgConfig QUIET REQUIRED)
pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR "systemd" "systemd_system_unit_dir")
if(NOT SYSTEMD_SYSTEM_UNIT_DIR)
pkg_get_variable(SYSTEMD_SYSTEM_UNIT_DIR "systemd" "systemdsystemunitdir")
if(NOT SYSTEMD_SYSTEM_UNIT_DIR)
set(SYSTEMD_SYSTEM_UNIT_DIR "${CMAKE_INSTALL_LIBDIR}/systemd/system")
endif()
endif()
set(SYSTEMD_SYSTEM_UNIT_DIR "${SYSTEMD_SYSTEM_UNIT_DIR}"
CACHE PATH "Location for systemd system unit files")
set(CEPH_SYSTEMD_ENV_DIR "/etc/sysconfig"
CACHE PATH "Location for systemd service environmental variable settings files")
set(SYSTEMD_ENV_FILE "${CEPH_SYSTEMD_ENV_DIR}/ceph")
foreach(service
ceph-crash
ceph-fuse@
ceph-mds@
ceph-mgr@
ceph-mon@
ceph-osd@
ceph-radosgw@
ceph-rbd-mirror@
ceph-immutable-object-cache@
cephfs-mirror@
rbdmap)
configure_file(
${service}.service.in
${service}.service
@ONLY)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/${service}.service
DESTINATION ${SYSTEMD_SYSTEM_UNIT_DIR})
endforeach()
install(FILES
ceph.target
ceph-fuse.target
ceph-osd.target
ceph-mgr.target
ceph-mon.target
ceph-mds.target
ceph-radosgw.target
ceph-rbd-mirror.target
ceph-immutable-object-cache.target
ceph-volume@.service
cephfs-mirror.target
DESTINATION ${SYSTEMD_SYSTEM_UNIT_DIR})