У меня следующая структура проекта
CmakeLists.txt
src/main.cpp
A/CMakeLists.txt
A/test.cpp
B/CMakeLists.txt
B/other.cpp
libs/
Конфигурация сборки написана таким образом, что подкаталоги компилируются как статические библиотеки (хранятся в библиотеках), а затем используются для создания окончательного двоичного файла.
Теперь предположим, что я перенесу этот проект в свой каталог, только с библиотеками CMakeLists.txt, исходными файлами и статическими библиотеками.
При компиляции проекта он / она должен заново перекомпилировать все исходные файлы, несмотря на то, что библиотеки уже есть.
Есть ли способ сказать cmake повторно использовать предварительную сборкустатические библиотеки ??
Выдержка из верхнего cmakelist.txt.
add_subdirectory (${PROJECT_SOURCE_DIR}/src/A)
add_subdirectory (${PROJECT_SOURCE_DIR}/src/B)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/libs)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/libs)
add_executable(myBinary ${PROJECT_SOURCE_DIR}/src/main.cpp )
add_dependencies(myBinary A B)
target_link_libraries (myBinary A B)
Подкаталог cmakelist.txt.
project (A)
file(GLOB SOURCES "*.cpp")
add_library (A STATIC ${SOURCES})