Я пытаюсь использовать подмодули git для зависимостей в моем проекте и хочу добавить их в мою сборку CMake.До сих пор мой подход заключался в том, чтобы вручную построить / установить зависимости, а затем использовать find_package () .
Теперь я хочу иметь возможность рекурсивно клонировать мой репозиторий и позволить CMake создавать все, включая зависимости.Я уже добавил их как подмодули git.Мой новый подход с CMake, например для Assimp, -
add_subdirectory(external/assimp)
и позже
target_include_directories(${PROJECT_NAME}
PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/external/assimp/include/
)
Я не уверен, что это правильный подход, но, по крайней мере, включения все еще доступны, как и раньше.
DCMTK - это отдельная история.Структура папок выглядит следующим образом:
external/dcmtk
| dcmdata
| | include
| | | dcmtk
| | | | dctk.h
| dcmimgle
| | include
| | | dcmtk
| | | | dcmimage.h
| ...
Таким образом, каждый модуль DCMTK находится в своей собственной папке.Через find_package (DCMTK) я все еще был в состоянии включить с помощью всего лишь
#include "dcmtk/dctk.h"
#include "dcmtk/dcmimage.h"
FindDCMTK.cmake делает немного магии, так что это возможно, но я незнаю, как заставить это работать в моем CMakeLists.txt без find_package ().Каков будет правильный подход здесь?