【问题标题】:CMake replacing a string while copying fileCMake在复制文件时替换字符串
【发布时间】:2021-10-23 14:43:43
【问题描述】:
您好,我的项目在根目录中有 job.sh
文件包含
#!/bin/bash
#SBATCH --job-name=$(REPLACEME)
#SBATCH --tasks=4
#SBATCH --computers=1
run ./myApp
现在我想以某种方式将文件复制到 builddir 并用项目名称替换 $(REPLACEME)
不知道怎么做替换部分,因为复制很容易
file(GENERATE OUTPUT job.sh INPUT job.sh)
感谢您的回答和最诚挚的问候
【问题讨论】:
标签:
replace
cmake
copy
post-build
【解决方案1】:
我想通了,您可以在根目录中创建一个模板文件,例如 job.sh,其中包含您想要的内容和一些 CMAKE 变量,例如 ${CMAKE_PROJECT_NAME}
#!/bin/bash
#SBATCH --job-name=${CMAKE_PROJECT_NAME}
#SBATCH --tasks=4
#SBATCH --computers=1
run ./myApp
然后在您的 CMakeLists.txt 中执行此操作
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/job.sh ${CMAKE_CURRENT_BINARY_DIR}/job.sh)