考虑到我有一个C源项目,该项目还生成表单(用于Web服务器)和帮助(基于Asciidoctor)。我已经将表单的资源分别定义为COMPONENT
forms
。{p1
几个人有权在其help
中的SSH会话中处理所有来源。他们还应执行HOME
,make install
,make install-forms
。 make 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
,但是会丢失prog
和ALL
。
有没有合理的方法来解决这个问题? 我不希望人们提交,以系统用户身份登录,获取源代码,进行编译,安装。这确实会增加开发的往返时间。
注意:我只限于CMake 3.9。