CMake Debian 与 Redhat/Arch 特定的安装目录

CMake Debian 与 Redhat/Arch 特定的安装目录

我有一个 systemd *.service 文件,我想使用 CMake 构建系统来安装它。

根据免费桌面政策Debian 使用这些进入/lib/systemd/system.在红帽政策这些进去/usr/lib/systemd/system

有没有 CMake 原生的方法来设置这个?

Gnu安装目录可以理解的是,它没有为 systemd 提供路径。

到目前为止我的解决方案是:

option(USE_REDHAT_PATHS "Use Red Hat policy for install-paths" ON)

if ( ${USE_REDHAT_PATHS} )
  set( _SYSTEMD_DIR "/usr/lib/systemd/system" )
else()
  set( _SYSTEMD_DIR "/lib/systemd/system" )
endif()

install(FILES myservice.service DESTINATION ${_SYSTEMD_DIR})

它可以工作,但需要用户端配置。 ACMAKE_INSTALL_SYSTEMDCMAKE_REDHAT会有用。

使用ExecuteProcess调用uname -v可能会有所帮助,但是有很多方法可能会破坏它,除非我们也支持所有可能的上游发行版。

相关内容