Exchange CMake的默认安装或执行非root用户sudo

时间:2019-08-07 12:40:30

标签: build cmake

考虑到我有一个C源项目,该项目还生成表单(用于Web服务器)和帮助(基于Asciidoctor)。我已经将表单的资源分别定义为COMPONENT forms。{p1

几个人有权在其help中的SSH会话中处理所有来源。他们还应执行HOMEmake installmake install-formsmake install-help是系统用户直接拥有的祝福。要解决此问题,必须做CMAKE_INSTALL_PREFIX,但是由于系统用户无法写入用户的目录,因此无法写入sudo -u system_user make install

到目前为止,我已经针对以下组件解决了该问题:

install_manifest.txt

尽管这可行,但我无法对默认的add_custom_target(install-forms COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_BINARY_DIR}/install_manifest_forms.txt COMMAND chmod g+w ${CMAKE_CURRENT_BINARY_DIR}/install_manifest_forms.txt COMMAND sudo -u system_user ${CMAKE_COMMAND} -DCOMPONENT=forms -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_install.cmake DEPENDS forms) 目标应用相同的方法。 CMake说

  

目标名称“安装”已保留或无效...

我可以将已编译输出的install命令移至新组件install,但是会丢失progALL

有没有合理的方法来解决这个问题? 我不希望人们提交,以系统用户身份登录,获取源代码,进行编译,安装。这确实会增加开发的往返时间。

注意:我只限于CMake 3.9。

0 个答案:

没有答案