【问题标题】:CMake import non-compiled files into build directoryCMake将非编译文件导入构建目录
【发布时间】:2013-04-01 11:41:42
【问题描述】:

我是这样使用 CMake 的:

$ mkdir build && cd build
$ cmake .. && make && atf-run | atf-report

但要运行 atf,我需要一些文件(例如 /Atffile 和 test/Atffile),所以我正在寻找一种方法来在我的构建目录中导入所有此类文件。

我试过了:

file(COPY ${PROJECT_SOURCE_DIR}/.. DESTINATION ${PROJECT_SOURCE_DIR}/..)

但它不起作用。他们是一种简单/更清洁的方法吗?

【问题讨论】:

    标签: build copy cmake


    【解决方案1】:

    假设“/Atffile”和“/test/Atffile”是文件而不是文件夹,你可以使用configure_file

    configure_file(Atffile Atffile COPYONLY)
    configure_file(test/Atffile test/Atffile COPYONLY)
    

    由于这里的命令始终使用相对路径,因此输入 arg 相对于当前源目录,输出 arg 相对于当前二进制(即构建)目录。

    【讨论】:

    • 这可能会导致不必要的 cmake 重新运行
    • 第一个参数是输入,第二个是输出。
    【解决方案2】:

    我用下面的把一个完整的目录复制到构建目录中

    file(COPY "datasets" DESTINATION "${CMAKE_BINARY_DIR}")
    

    【讨论】:

    • 我在file(COPY "datasets" DESTINATION .)上也取得了成功
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2013-10-04
    • 2020-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多