我正在尝试在“make install”末尾制作可执行文件的副本
我需要做类似的事情:
cp bin/prog bin/prog1
我已将以下内容添加为 CMakelists.txt 中的最后一行
install (CODE "execute_process(COMMAND /src/copyExe.sh ${BIN_DIR})")
copyExe.sh 是一个执行复制操作的 bash 脚本。为了达到预期的效果,我需要运行“make install”两次。第一次它抱怨prog不存在,然后将文件复制到bin中。第二次它找到 prog 并能够制作副本。
有没有办法确保我的 copyExe 脚本在文件复制到 bin 后运行?
目录结构
site
bin
src
CMakeLists.txt ( contains add_dir(foo) and install(CODE....))
foo
CMakeLists.txt ( contains install( TARGET..... ))
而 CMake文档 https://cmake.org/cmake/help/v3.7/command/install.html for install
命令说(关于安装逻辑):
未定义跨目录的顺序。
看起来它倾向于以不同的方式处理安装逻辑子目录按相同顺序 as add_subdirectory()
calls.
但是,它处理的安装逻辑install()
调用当前目录 在子目录之前.
你可以移动install(CODE)
进入某个子目录(例如,fix_binaries
),并在末尾添加该子目录CMakeLists.txt
in src
:
src/fix_binaries/CMakeLists.txt:
install(CODE ...)
src/CMakeLists.txt:
...
add_subdirectory(foo)
...
# After all add_subdirectory() calls
add_subdirectory(fix_binaries)
这种方法适用于我参与的一个项目(相关代码 https://github.com/euspectre/kedr/blob/master/sources/cmake/modules/update_modules.cmake).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)