У меня есть следующая структура проекта:Cmake библиотека/приложения структура
root/
CMakeLists.txt
src/
CMakeLists.txt
engine/
CMakeLists.txt
*.h
*.cpp
console/
CMakeLists.txt
*.h
*.cpp
Сейчас в src/engine/CMakeLists.txt
я называю add_library(engine ${SOURCES})
и она работает нормально, компилирует и все. Теперь в консоли, я бы хотел, чтобы мой включил в двигатель #include "engine/foo.h"
, а не только #include "foo.h"
.
Теперь вопрос в том, есть ли какой-либо элегантный способ добавления включений, поэтому я должен добавить двигатель к моим включенным в проект консоли?
В настоящее время, что я делаю, имеет следующее src/console/CMakeLists.txt
:
add_executable(console ${SOURCES})
target_include_directories(console PUBLIC ${lib_incl_path})
target_link_libraries(console PRIVATE engine)
, а затем определить set(lib_incl_path ${CMAKE_CURRENT_SOURCE_DIR})
в src/CMakeLists.txt
. Но это кажется излишним (и взломанным), чтобы добавить всю папку src к включенным.