[C++] Как правильно добавить включенные каталоги с помощью CMake?



Answers

Во-первых, вы используете include_directories() чтобы сообщить CMake добавить каталог как -I в командную строку компиляции. Во-вторых, вы add_executable() заголовки в add_executable() или add_library() .

Например, если источники вашего проекта находятся в src , и вам нужны заголовки из include , вы можете сделать это следующим образом:

include_directories(include)

add_executable(MyExec
  src/main.c
  src/other_source.c
  include/header1.h
  include/header2.h
)
Question

Около года назад я спросил о зависимостях заголовков в CMake .

Недавно я понял, что проблема заключается в том, что CMake считает, что эти файлы заголовков являются внешними по отношению к проекту. По крайней мере, при создании проекта Code :: Blocks заголовочные файлы не отображаются в проекте (исходные файлы). Поэтому мне кажется, что CMake считает, что эти заголовки являются внешними по отношению к проекту и не отслеживают их в зависимости.

Быстрый поиск в учебнике CMake показал только на include_directories который, похоже, не делает того, что я хочу ...

Каким образом можно сигнализировать CMake о том, что конкретный каталог содержит заголовки, которые необходимо включить, и чтобы эти заголовки отслеживались сгенерированным Makefile?




Links