CMake рекурсивно сканирует папки? - PullRequest
36 голосов
/ 17 марта 2012

Как мне настроить CMake для рекурсивного сканирования заданного каталога и определения списка исходных файлов?

Мой проект - общая библиотека. У меня есть структура папок, подобная этой:

/
  src/              # Source files in an arbitrary tree
  include/          # Headers, tree mirrors that of the src/ folder
  examples/         # Executable code examples that link against the library
  CMakeLists.txt

Я хочу, чтобы CMake рекурсивно сканировал src и include и определял список исходных файлов и файлов заголовков в моем проекте независимо от структуры каталогов. Я также хочу избежать:

  • загрязнение каталогов src/ и include/ бесконечными CMakeLists.txt файлами
  • Необходимость изменять и адаптировать скрипты каждый раз, когда я меняю структуру папок

Впрочем, для каждого примера хорошо иметь собственный скрипт сборки.

1 Ответ

41 голосов
/ 17 марта 2012

CMake предоставляет следующую команду для рекурсивного перемещения файлов:

file(GLOB_RECURSE variable [RELATIVE path] 
   [FOLLOW_SYMLINKS] [globbing expressions]...)

Документация команды: http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:file

...