I have a c++ project with several subdirectories, e.g.
src/
CMakeLists.txt
main.cpp
module1/
CMakeLists.txt
code.cpp
code.h
module2/
CMakeLists.txt
code2.cpp
It seems that the two ways to deal with this in cmake is to either use add_subdirectory(module1)
or include(module1)
in my src/CMakeLists.txt
. Somewhere I read, that the include
use is regarded legacy/deprecated. My src/module1/CMakeLists.txt
looks like this:
include_directories(${CMAKE_CURRENT_LIST_DIR})
set( SRCS
${SRCS}
${CMAKE_CURRENT_LIST_DIR}/code.cpp
)
set( QT_FILE_HEADERS
${QT_FILE_HEADERS} code.h
)
If I try to use the add_subdirectory
method and want to usecode.h
in main.cpp
I have to write #include "module1/code.h"
. If I do the include
method of adding module1, I can simply write #include "code.h"
. I would prefer not to specify the relative path of the include files when I use them somewhere else, is there a way to achieve this using the add_subdirectory
method? I thought the include_directories
line should have taken care of that.