如何使用CMake安装脚本?

时间:2017-09-01 14:57:26

标签: cmake install deb cpack

我有一个项目可以构建多个可执行文件并安装它们。对于可执行文件,相关的CMake代码是:

add_executable(foo "foo.cpp")
add_executable(bar "bar.cpp;qux.cpp")
install(TARGETS foo bar "/usr/bin")

然后我创建一个.deb包,当它安装时,我可以从命令行运行foobar。我想做这样的事情:

add_executable(foo "foo.cpp")
add_executable(bar "bar.cpp;qux.cpp")
add_script(hello "hello.sh")
install(TARGETS foo bar hello)

...以便hello可以从命令行执行。但实际上并没有名为add_script的CMake命令。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以使用

install(PROGRAMS hello.sh DESTINATION bin RENAME hello)

这将自动使您的脚本可执行。参见the docs for install(FILES)

  

“程序”表单与“文件”表单相同,不同之处在于默认权限   用于已安装文件的文件还包括OWNER_EXECUTE,GROUP_EXECUTE和WORLD_EXECUTE。   此表单用于安装非目标程序,例如shell脚本。

答案 1 :(得分:1)

我认为这很简单,但结果很难找到:

install(FILES "hello.sh"
    PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
    DESTINATION "bin"
    RENAME "hello")