我正在尝试在CLion上创建一个简单的项目。它使用CMake(我是这里的新手)来生成Makefile来构建项目(或某种形式)
每次运行代码时,我需要做的就是将一些非项目文件(某种资源文件)传输到二进制目录。
该文件包含测试数据,应用程序打开它以读取它们。我尝试了几种方法来做到这一点:
通过
file(COPY ...
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/input.txt DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/input.txt
看起来不错,但它只能工作一次,下次运行后不会重新复制文件。
通过
add_custom_command
OUTPUT
版add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/input.txt COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/input.txt ${CMAKE_CURRENT_BINARY_DIR}/input.txt)
TARGET
版add_custom_target(foo) add_custom_command( TARGET foo COMMAND ${CMAKE_COMMAND} copy ${CMAKE_CURRENT_BINARY_DIR}/test/input.txt ${CMAKE_SOURCE_DIR})
但是,没有人能奏效。
我究竟做错了什么?
configure_file
,即使您使用GLOB创建文件列表,该功能也不适用于子目录。