Включая файлы из параллельной структуры каталогов
Не совсем дубликат: CMake включает путь
У меня изначально была структура каталогов:
root
src
foodir
foo.cpp
foo.h
Затем заголовочные файлы были перемещены в свои собственные параллельные каталоги:
root
src
foodir
foo.cpp
include
foodir
foo.h
Проблема в том... где foo.cpp просто использовал #include "foo.h"
теперь оно должно использовать #include "foodir/foo.h"
(составлено с -Iinclude
).
Итак, это не настоящая "проблема", но было бы лучше, если бы я мог сохранить "foo.h" вместо "foodir/foo.h" (много файлов). Есть ли способ, с помощью cmake, чтобы компилятор смотрел в соответствующем подкаталоге include/
?
2 ответа
Добавить include/foodir
к списку путей поиска компилятора, просто используйте include_directories
, Предполагая, что ваш CMakeLists.txt верхнего уровня находится в "root":
include_directories(${CMAKE_SOURCE_DIR}/include/foodir)
Вам просто нужно пройти подходящий -I<dir>/foobar
аргумент. Например -Iinclude/foobar
может работать. Когда используешь make
вы бы традиционно добавили опцию CPPFLAGS
(что реально используется, конечно, зависит от конкретных правил проекта).