Comment utiliser tous les *.c les fichiers dans un répertoire avec le système de compilation Cmake?

Je veux trouver toutes les .c fichiers dans un répertoire et de tous les ajouter à la SRC fichiers à compiler dans cmake. Comment puis-je faire dans CMakeList.txt.

régulièrement des makefiles je peux créer

SPECIFIED_SRC_FILE  = $(foreach d,$(SPECIFIED_SRC_DIRS),$(wildcard $(addprefix $(d)/*,*.c)))

mais je ne pouvais pas comment faire quelque chose comme ceci dans CMakeList.txt.

  • Notez que "recueillir tous les fichiers source avec glob" est pas recommandée CMake: Nous ne recommandons pas l'utilisation de GLOB à recueillir une liste de fichiers source de votre arborescence des sources. Si aucun CMakeLists.txt modifications du fichier lorsqu'une source est ajouté ou supprimé, l'généré système de construction ne peut pas savoir quand demander de CMake pour se régénérer. - à partir de documentation
  • est-il une alternative qui ne nécessite pas d'écrire chaque nom de fichier manuellement?
  • Si vous voulez éviter d'écrire chaque nom de fichier, puis je pense que foreach mentionné par l'OP est le chemin à parcourir. Cependant, CMake équipe semble recommander l'écriture manuelle de chaque nom de fichier.
  • l'écriture manuelle de chaque nom de fichier ??? Sérieusement ?
  • Est-il quelque chose dans les nouvelles versions de CMake qui permettent à l'auto-trouver les fichiers source à chaque fois que vous exécutez le faire?
  • Oui, sérieusement.

InformationsquelleAutor | 2010-01-21