CMake将非编译文件导入构建目录

Gli*_*ome 17 copy build cmake

我像这样使用CMake:

$ mkdir build && cd build
$ cmake .. && make && atf-run | atf-report
Run Code Online (Sandbox Code Playgroud)

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

我试过这个:

file(COPY ${PROJECT_SOURCE_DIR}/.. DESTINATION ${PROJECT_SOURCE_DIR}/..)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.他们是一个简单/清洁的方式吗?

Fra*_*ser 28

假设"/ Atffile"和"/ test/Atffile"是文件而不是文件夹,您可以使用 configure_file

configure_file(Atffile Atffile COPYONLY)
configure_file(test/Atffile test/Atffile COPYONLY)
Run Code Online (Sandbox Code Playgroud)

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

  • 第一个参数是输入,第二个是输出. (3认同)