J'essaie de modifier mes fichiers SCONS afin qu'ils mettent les fichiers forts> produits forts> dans un répertoire construction em>. Au départ, je variantdir em> pourrait être une option mais à juger de tout ce que j'ai lu et les exemples qu'il ne fait pas ce que je veux. P>
Y a-t-il un moyen simple de forcer les scons à mettre la sortie dans un certain répertoire sans avoir à réécrire toutes les sources et toutes les scripts? P>
4 Réponses :
Face à une frustration similaire, j'ai ajouté un site_scons qui a ajouté des constructeurs de remplacement (par exemple "" EXE "au lieu de" programme ") et spécifié un émetteur pour ce constructeur qui a remplacé la partie de chemin avec le répertoire de construction. Cela nécessite l'utilisation du constructeur alternatif dans vos sconscripts cependant. P>
Vous pouvez également essayer de sous-classer l'environnement et réécrivez les principales cibles à utiliser des réécrites cibles. Ensuite, vous spécifiez votre environnement en tant que défaut (modification de SCONS.Script.Defaultenvironment ou quelque chose comme ça). Cette approche a gardé les Sconscripts statiques mais a été très désordonnée et nécessite plus de maintenance au fil du temps comme changement de scons-internals. P>
Utilisation de variantdir code> avec
dupliquer = 0 code> devrait fonctionner. P>
Cela vous obligerait à réécrire la majorité des scripts de construction.
Vous pouvez utiliser Installer ou installer sur la sortie de la cible. Cela fonctionne pour moi.
Après avoir lu avec VariantDir pendant un certain temps (il ne faisait rien du tout), j'ai fini par utiliser Ceci mange un niveau, bien que (sous-résidents), et en utilisant "../build" n'aide pas. La solution consiste à avoir un fichier SCONScript au même niveau que Sconstructeur et appeler Voir aussi Force Swons Sortie (EXE , obj, lib & dll) à un répertoire de construction spécifique - il a une réponse similaire p> variant_dir code> dans l'appel de sconscript de niveau supérieur, ce qui cause toutes les sorties de construction en aval finissent par Un arbre parallèle 'build':
SCONScript (['Subdies / SConscript'], variante_dir = 'Build', dupliquer = 0) Code>
Ma structure de construction est une hiérarchie de Sconscripts dans les sous-divins / sous-sous-directrices, etc. Avec cet appel, les sorties se retrouvent dans la construction / sous-sous-directrices au même niveau que dans la source. P>
SCONScript (["SCONScript '], variante_dir =' Build ', dupliquer = 0) Code> p> P>
Quel est le problème avec
variantdir code>? Avez-vous essayé d'utiliser
duplicate = 0 code>?
Pour l'utilisation de
variantdir code> Vous devez vendre toute votre âme. Ce qui signifie que vous devez soit tout faire dans le
variantdir code> ou rien. La chose que je et beaucoup d'autres veulent, c'est de mettre uniquement généré b> de choses dans la version de construction et non de tout.
N'est-ce pas ce que
dupliquer = 0 code> fait? À partir de la DOCS: La duplication de l'arborescence source peut être désactivée en définissant l'argument en double à 0 (zéro). Cela entraînera des scons d'invoquer des constructeurs à l'aide des noms de chemin des fichiers source dans src_dir et les noms de chemin des fichiers dérivés de variante_dir.