Ajouter tous les fichiers d'un dossier à un CMake glob?

Je viens de lire ceci:

CMake - ajouter Automatiquement tous les fichiers dans un dossier à une cible?

Avec la réponse, ce qui suggère un fichier glob, par exemple:

file(GLOB "*.h" "*.cpp")

maintenant, si je veux que ma cible dépendent tous les fichiers d'un certain type de sous un certain dossier - qui peut être dans plusieurs sous-dossiers? J'ai essayé d'utiliser

execute_process(COMMAND find src/baz/-name "*.cpp" OUTPUT_VARIABLE BAR)

et puis

add_executable(foo ${BAR}

mais cela me donne l'erreur:

Ne peut pas trouver le fichier source:

  src/baz/some/file/here

src/baz/some/other_file/here

src/baz/some/other_file/here2

(oui, avec un espacement.)

Ce que je fais mal?

Peut-être file(GLOB_RECURSE ...)? Mais être au courant de Pourquoi est-cmake fichier GLOB mal? et la Meilleure façon de spécifier sourcefiles dans CMake
À l'aide de find de cette façon est une mauvaise idée, mais vous pouvez résoudre le problème vous semblez avoir avec elle, en ajoutant -type f.
Je vais essayer ça. À propos de ce être une mauvaise idée - j'ai lu les liens Florian posté, et pense que je suis d'accord avec cette réponsele premier commentaire sur cette réponse
Je pense que le commentaire que vous avez de référence est de comparer les mauvaises choses: "Mais n'est-il pas vrai que si vous n'avez pas glob, vous avez encore de mettre à jour manuellement CMakeLists.txt, sens cmake est toujours pas de mise à jour automatique du système de génération?" La plainte initiale qui globing les fichiers ne sont pas automatiquement mettre à jour le système de construction n'a pas été en comparaison à un système qui effectue automatiquement la mise à jour du système de génération. Peut-être le point d'origine n'est pas fait tout ce que clairement, mais la plainte a été sur le échec mode des deux méthodes.
Oh, aussi mon commentaire sur l'utilisation de find de cette façon n'était pas à propos de l'habitude globing problème. La raison pour laquelle je vous le déconseille à l'aide de find ici, c'est parce qu'il ajoute une dépendance, sans raison réelle. file(GLOB_RECURSE ...) semble être la bonne chose ici.

OriginalL'auteur einpoklum | 2016-02-15