CMake: ajouter la dépendance à add_custom_command dynamiquement

J'ai un CMake projet avec de nombreux sous-projets.
Chacun d'eux peut utiliser une fonction-je fournir pour générer un petit fichier texte avec certaines informations (en appelant add_custom_command).
À l'étape finale, je tiens à combiner tous ces fichiers en un seul gros fichier texte.

J'ai créé une commande personnalisée, qui cherche les fichiers créés (tous en un seul lieu) et les fusionne.

Le problème est que je voudrais faire cette dernière étape dependend sur de tous petits pas accomplis dans des sous-projets alors que je ne sais pas vraiment combien de fichiers seront fournis.

Ma dernière commande ressemble à ceci:

add_custom_command(OUTPUT combination.txt
                   COMMAND create combination.txt from all files from /path/)

et de créer mon-petit-texte-fichier-pour-chaque-sous-projet de commande ressemble à ceci:

add_custom_command(OUTPUT /path/${sub_project_name}.txt
                   COMMAND create /path/${sub_project_name}.txt)

Et quand j'ai créer ces petits fichiers que je voudrais faire quelque chose comme pour le faire "combination.txt" dépendent de l' /chemin/${sub_project_name}.txt

Donc, je souhaite que je pourrais:

add_dependency(combination.txt /path/${sub_project_name}.txt)

Toutefois, cela ne fonctionne que pour les cibles.

J'ai aussi essayé d'utiliser set_source_files_properties avec OBJECT_DEPENDS, mais il semble qu'il ne fonctionne pas (peut-être son intention d'être utilisé avec add_target de fichiers cpp ?)

Le dernier moyen de le faire fonctionner, je vois est d'utiliser un cache variable qui permettrait d'accumuler tous ces petits fichiers de chemins et de l'utiliser ensuite comme ceci:

add_custom_command(OUTPUT combination.txt
                   COMMAND create combination.txt from all files from /path/
                   DEPENDS ${all_small_files_list})

mais c'est la dernière chose que je veux faire.

OriginalL'auteur Michał Walenciak | 2012-10-16