Mat*_*ice 3 install cmake deb cpack
我有一个构建多个可执行文件并安装它们的项目。对于可执行文件,相关的CMake代码为:
add_executable(foo "foo.cpp")
add_executable(bar "bar.cpp;qux.cpp")
install(TARGETS foo bar "/usr/bin")
Run Code Online (Sandbox Code Playgroud)
然后,我创建了一个.deb包,当它安装,我可以运行foo
,并bar
通过命令行。我想做这样的事情:
add_executable(foo "foo.cpp")
add_executable(bar "bar.cpp;qux.cpp")
add_script(hello "hello.sh")
install(TARGETS foo bar hello)
Run Code Online (Sandbox Code Playgroud)
...因此可以hello
从命令行执行。但是实际上并没有一个名为的CMake命令add_script
。我该如何实现?
您可以使用
install(PROGRAMS hello.sh DESTINATION bin RENAME hello)
Run Code Online (Sandbox Code Playgroud)
这将自动使您的脚本可执行。请参阅文档以了解install(FILES):
PROGRAMS表单与FILES表单相同,除了已安装文件的默认权限还包括OWNER_EXECUTE,GROUP_EXECUTE和WORLD_EXECUTE。此表单旨在安装非目标程序,例如shell脚本。
我以为这很简单,结果却很难搜索:
install(FILES "hello.sh"
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
DESTINATION "bin"
RENAME "hello")
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1559 次 |
最近记录: |