2016-01-14 4 views
0

У меня есть следующая структура проекта: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 к включенным.

ответ