cpplint.py & amp; cmake: как указать включаемые файлы

Предположим, у меня есть проект следующей структуры каталогов:

myproject
├── .git [...]
├── CMakeLists.txt
└── src
├── CMakeLists.txt
├── foo.cc
└── foo.h

Если в src/foo.cc Я включаю заголовочный файл как #include "foo.h" а затем запустить Google cpplint.py на это он жалуется с

src/foo.cc:8:  Include the directory when naming .h files  [build/include] [4]

Поэтому я включаю это как #include "./foo.h", Теперь я получил еще одну жалобу:

src/foo.cc:8:  src/foo.cc should include its header file src/foo.h  [build/include] [5]

Однако, если я включу это как #include "src/foo.h", компилятор не найдет его, с моей текущей настройкой CMake. Вот как выглядят мои два файла CMakeLists.txt:

CMakeLists.txt:

project(myproject)
add_subdirectory(src)

SRC / CMakeLists.txt:

set(SRCS foo.cc)
add_executable(foo ${SRCS})

Является ли способ, которым я использую CMake как-то в корне неправильно? Должен ли я удалить src/CMakeLists.txt файл целиком, и укажите все исходные файлы в базе CMakeLists.txt с их полным путем?

Или я должен просто игнорировать жалобы cpplint, поскольку они не совсем соответствуют тому, как должны быть созданы проекты CMake?

4

Решение

добавлять include_directories(${CMAKE_SOURCE_DIR}) в вашем верхнем уровне CMakeLists.txt, как предложил Wander:

project(myproject)
include_directories(${CMAKE_SOURCE_DIR})
add_subdirectory(src)
0

Другие решения

Других решений пока нет …