10 votes

cmake obtenir la liste des sources

J'ai déjà un gros projet qui se construit sous cmake. Je cherche un moyen d'obtenir la liste des fichiers sources et de leurs fichiers d'en-tête dépendants pour créer une nouvelle cible (par exemple etags pour Emacs). J'ai essayé de trouver la réponse par moi-même mais il semble que ce ne soit pas si facile.

La solution idéale serait quelque chose comme cela :

add_executable(my_project <some list of source files and libraries defined in different directories>)
add_custom_target(tags
  COMMAND etags <list of all *.cpp and *.h files used in 'my_project' target>
  DEPENDS <list of all *.cpp and *h used in 'my_project' target>
  COMMENT "Creates source code tags for Emacs")

Savez-vous peut-être comment faire pour que la cible 'tags' importe toutes les dépendances de la cible 'my_project' sans avoir à réécrire tous les fichiers de configuration cmake dans tous les répertoires ?

14voto

julp Points 2525

Avec commande get_target_property et la propriété SOURCES et enfin PUBLIC_HEADER ou PRIVATE_HEADER ?

get_target_property(MY_PROJECT_SOURCES my_project SOURCES)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X