【问题标题】: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)
    

    【讨论】:

      猜你喜欢
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-07
      • 1970-01-01
      相关资源
      最近更新 更多