我有一个项目,使用CMake生成构建脚本,每个平台都将生成的可执行文件放在不同的位置。我们团队中有一个非程序员,他没有构建工具,我希望能够将运行该项目所需的所有文件、脚本和可执行文件捆绑起来,以便他能运行该项目。
为此,我添加了一个自定义目标,将所有必要的文件打包成zip文件。它还生成了一个非常简单的脚本(包含在zip文件中),他只需要点击它就可以运行脚本并启动可执行文件,如下:
add_custom_target(runcommand
COMMAND echo '\#!/bin/bash -eu' > run.command &&
echo 'cd `dirname $$0`' >> run.command &&
echo './scripts/prerun_script.sh && ${MY_EXECUTABLE}' >> run.command &&
chmod +x run.command)
这个问题在于MY_EXECUTABLE是我系统上可执行文件的硬编码路径。我希望它是相对路径,这样我就可以将生成的zip文件解压到任何地方并从那里运行它。我希望能够获取相对于我的项目根目录的MY_EXECUTABLE路径,以便该脚本可在任何位置运行。
install()
命令,然后压缩结果而不是使用自定义目标。 - Alexis Wilke