web-dev-qa-db-fra.com

CMake analyse-t-il récursivement les dossiers?

Comment configurer CMake pour analyser récursivement un répertoire donné et déterminer la liste des fichiers source?

Mon projet est une bibliothèque partagée. J'ai une structure de dossiers similaire à celle-ci:

/
  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

Je veux que CMake analyse récursivement src et include et détermine la liste des fichiers source et d'en-tête dans mon projet, quelle que soit la structure du répertoire. Je veux aussi éviter:

  • Polluer le src/ et include/ répertoires avec une infinité CMakeLists.txt des dossiers
  • Devoir changer et adapter les scripts chaque fois que je change la structure de mon dossier

Cependant, chaque exemple peut avoir son propre script de construction.

37
Matheus Moreira

CMake fournit la commande suivante pour la globalisation des fichiers récursifs:

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

Documentation de commande: http://www.cmake.org/cmake/help/v2.8.8/cmake.html#command:file

42
Andrey Kamaev