Je viens de lire ceci:
CMake - Ajouter automatiquement tous les fichiers d'un dossier à une cible?
Avec la réponse suggérant un fichier glob, par exemple:
file(GLOB "*.h" "*.cpp")
maintenant, que se passe-t-il si je veux que ma cible dépende de tous les fichiers d'un certain type dans un certain dossier - qui peuvent se trouver dans plusieurs sous-dossiers? J'ai essayé d'utiliser
execute_process(COMMAND find src/baz/ -name "*.cpp" OUTPUT_VARIABLE BAR)
puis
add_executable(foo ${BAR}
mais cela me donne l'erreur:
Impossible de trouver le fichier source:
src/baz/some/file/here
src/baz/some/other_file/here
src/baz/some/other_file/here2
(oui, avec cet espacement.)
Qu'est-ce que je fais mal ici?
Transformer mon commentaire en réponse
Si vous souhaitez ajouter une recherche récursive de fichiers, utilisez file(GLOB_RECURSE ...)
file(GLOB_RECURSE source_list "*.cpp" "*.hpp")
Votre deuxième exemple se traduirait par
file(GLOB_RECURSE BAR "src/baz/*.cpp")
Références