Поскольку я никогда раньше не использовал CMake и в настоящее время у меня относительно простой проект, я хотел бы начать его использовать (в настоящее время я использую только проекты VS).мой проект использует одну стороннюю библиотеку, которую мне нужно собрать (sqlite), функцию для доступа к базе данных sqlite с помощью этой внешней библиотеки, которая имеет несколько модульных тестов с catch2 и основной исполняемый файл, который является CLI для этой функции базы данных (которая можетполучить некоторые тесты позже).Документация для всего проекта должна быть построена с использованием Doxygen.Тем не менее, даже с этим довольно маленьким проектом CMake является своего рода подавляющим для меня, так как мне удалось собрать статическую библиотеку с помощью cmake или создать тест с catch2 с использованием cmake.Мой текущий каталог Layout выглядит следующим образом:
root
|-3rdParty
|-catch2
|-build
|-documentation
|-include
|-sqlite3.h
|-lib
|-sqlite3.a
|-modules
|-database
|-header and source files for database function
|-CLI
|-header and source files for CLI
|-src
|-main.cpp
|-tests
|-test.cpp
Как я могу добавить статические библиотеки модулей в lib и включить каталог после их создания?
Мне удалось собрать статическую библиотеку, используя
set_target_properties( modulename
PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/
)
и добавьте файлы заголовков, используя
set( MY_PUBLIC_HEADERS
${CMAKE_CURRENT_SOURCE_DIR}/include/<header.h>
)
file(
COPY ${MY_PUBLIC_HEADERS}
DESTINATION ${CMAKE_SOURCE_DIR}/include/)
Единственная проблема заключается в том, что при удалении файла заголовка в include cmake не копирует его снова