2010-07-01 3 views
0

Disons que j'ai cette structure de répertoire:scons - la source/comprennent des chemins

  • SConstruct
  • src/
    • a.cpp
    • b.cpp
  • comprennent/
    • a.h
    • b.h

dans SConstruct Je ne veux pas spécifier [ 'src/a.cpp', 'scr/b.cpp'] à chaque fois; Je cherche un moyen de définir le répertoire source de base à 'src'

un indice? Je l'ai regardé dans les documents, mais ne peut pas trouver quelque chose d'utile

Répondre

2

deux options pour vous:

D'abord, scons aime utiliser des fichiers SConscript pour les sous-répertoires. Placez un SConscript dans src/ et il peut faire référence à des fichiers locaux (et générera également une sortie dans un sous-répertoire de construction). Vous pouvez configurer votre environnement une fois dans le SConstruct. Ensuite, vous "chargez" le SConscript de votre maître SConstruct.

SConscript('src/SConscript') 

que votre projet se développe, la gestion des fichiers SConscript dans les sous-répertoires est plus facile que de mettre tout dans le SConstruct maître. Deuxièmement, voici un similar question/answer qui pourrait aider - il utilise Glob avec un exemple très simple.

Troisièmement, car il est juste python, vous pouvez faire une liste de fichiers sans le préfixe et utiliser une compréhension de liste pour construire la liste réelle:

file_sources = [ 'a.c', 'b.c' ] 
real_sources = [os.path.join('src', f) for f in file_sources]