私はCMakeが初めてです。プロジェクトをコンパイルしました。私はこのような構造を持っています
事業
SRC
このフォルダーの .cpp (すべてのソース ファイル) と CMakeLists.txt をテストします (静的ライブラリを作成します)。- 例
.cpp (すべてのソース ファイル) とこのフォルダーの CMakeLists.txt (静的ライブラリの作成)
含む
- test
.h (すべてのヘッダー ファイル) - example
.h (すべてのヘッダー ファイル)
- test
建てる
- CMakeLists.txt (メインの CMakelist ファイル)
ライブラリ
- test (生成されたファイルを含む)
- 例 (生成されたファイルを含む)
問題は、すべての静的ファイルをコピーする方法です。テストとサンプルのフォルダーから、バイナリ構造の外の別のフォルダーに再帰的に配置しますか?
私のメインの 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 のプロジェクトがあり、再帰的に実行したいと考えています。
ありがとう :)