2010-09-03 3 views
0

Notre compilateur génère un fichier de déboguage en plus du fichier objet. Ce fichier de débogage est nécessaire pour la cible de débogage finale. J'ai déjà ajouté ce fichier en tant que dépendance supplémentaire pour la cible. Mais lorsque vous utilisez un CacheDir(), ce fichier doit être stocké avec le fichier objet.SCons: Comment placer plusieurs fichiers de sortie dans le cache

J'ai déjà essayé d'ajouter le fichier de débogage comme SideEffect() et Depends() du fichier objet ainsi que Depends() de la cible finale. Mais je n'avais pas de chance avec ça. SCons stocke uniquement le fichier objet dans le CacheDir() et ne sait pas comment créer le fichier de débogage.

Est-il possible de stocker les deux fichiers dans le répertoire de cache, afin qu'ils soient tous deux récupérés lors de la construction de la cible?

Répondre

0

Pour obtenir deux variantes de construction dans le même cycle, vous devez utiliser des noms différents pour les fichiers générés. Dans le cas d'un projet C/C++, ceci peut être réalisé via la variable d'environnement OBJSUFFIX. Le code ci-dessous fera que tous les fichiers d'objets de sortie de débogage apparaissent avec le suffixe '.dbg.o' au lieu de '.o'.

dbg_env = env.Clone(...) 
dbg_env.Append(...) # add debug flags 
dbg_env.Prepend(OBJSUFFIX = '.dbg') 
Questions connexes