Я проект структурирован следующим образом:Правильная установка CMake включить заголовки
─root
├──src
│ ├──main.cpp
│ └──CMakeLists.txt[2]
├──build
├──out
├──inc
├──dep
│ ├──log
│ │ ├──include
│ │ │ └──log.h
│ │ ├──src
│ │ │ └──log.cpp
│ │ └──CMakeLists.txt[4]
│ └──CMakeLists.txt[3]
└──CMakeLists.txt[1]
Под dep
У меня есть библиотека протоколирования, которая является внешним хранилищем мерзавцев с его собственным CMakeLists.txt
файла.
Основной CMakeLists.txt
(отмечен как [1]) является:
cmake_minimum_required(VERSION 2.6)
set(APP_ROOT ${PROJECT_SOURCE_DIR})
add_subdirectory(dep)
add_subdirectory(src)
CMakeLists.txt
(отмечен как [2]) для текущего кода проекта является:
add_executable(app main.cpp)
target_link_libraries(app log)
include_directories("${APP_ROOT}/inc")
CMakeLists.txt
(отмечены как [3]) для зависимостей:
add_subdirectory(log)
Что я tr ying делать это, чтобы содержимое папки dep/log/include
было скопировано в новую папку под названием inc/log
, так что в main.cpp
я могу написать что-то вроде #include <log/log.h>
, но я не понимаю, как это сделать. Я хотел бы избежать редактирования CMakeLists.txt
проекта регистратора.
К сожалению, не может внести свой вклад, чтобы ответить, но не может помочь нажать +1 для ASCII-графики. –
Ваше решение выглядит хорошо для меня - я бы добавил его в качестве ответа. – Fraser
Не было бы проще просто добавить каталог включения журнала в путь включения компилятора? – szx