我是 CMake 的新手。我已经编译了我的项目。我有这样的结构
项目
SRC
- 测试
此文件夹的 .cpp(所有源文件)和 CMakeLists.txt(创建静态库) - 此文件夹的示例
.cpp(所有源文件)和 CMakeLists.txt(创建静态库)
- 测试
包括
- 测试
.h(所有头文件) - 示例
.h(所有头文件)
- 测试
建造
- CMakeLists.txt(主 CMakelist 文件)
库
- 测试(包含生成的文件)
- 示例(包含生成的文件)
问题是我如何复制所有静态文件,即。从测试和示例文件夹中递归地将它们放在二进制结构之外的不同文件夹中?
我的主要 CMakeLists.txt 文件:
PROJECT(copythefiles)
SET(CMAKE_CURRENT_BINARY_DIR ".")
add_subdirectory(/src/test /lib/test) # I am specifying the location where the files are to be generated
add_subdirectory(/src/example /lib/example)
ADD_CUSTOM_TARGET( a ALL COMMAND ${CMAKE_COMMAND} -E echo "\{X}" > ${CMAKE_CURRENT_BINARY_DIR}/lib/test/libtest.a )
ADD_CUSTOM_COMMAND(TARGET a POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/lib/test/libtest.a
${CMAKE_CURRENT_BINARY_DIR}/lib/libtest.a )
这会复制文件。但我有大约 20 个项目,我想递归地做。
谢谢 :)