I have a CMake project with a directory structure below:
.
├── b.h
├── CMakeLists.txt
├── src
└── test
├── CMakeLists.txt
├── impl
└── include
└── a.h
I want to include b.h
in a.h
but the CMake cannot find b.h
in a.h
. I know it's wrong if I include a.h
in b.h
while including b.h
in a.h
. However, I'm sure that a.h
will only be used in files in test/impl
.
The content of ./CMakeLists.txt
simply adds test/
as a subdirectory.
The content of ./test/CMakeLists
generates an executable target which used googletest.
Is there anyway that I can include b.h
in a.h
without adding an extra CMake file in ./test/include
?
./CMakeLists.txt
file(GLOB_RECURSE SOURCES src/*.cpp)
add_library(core SHARED ${SOURCES})
target_include_directories(core PUBLIC ${PROJECT_SOURCE_DIR})
add_subdirectory(test)
./test/CMakeLists.txt
file(GLOB_RECURSE SOURCES impl/*.cpp)
enable_testing()
add_executable(
core_test
${SOURCES}
)
target_link_libraries(
core_test
gtest_main
)
include(GoogleTest)
gtest_discover_tests(core_test)
target_include_directories(core_test PUBLIC ${PROJECT_SOURCE_DIR})
Aucun commentaire:
Enregistrer un commentaire