2008-11-19 9 views
5

quelqu'un peut-il donner un fichier de configuration scons qui permet à la structure suivantescons: src et comprennent dirs

toplevel/ 
     /src - .cc files 
     /include .h files 

au plus haut niveau que je veux le o et dernier exe.

Répondre

4
env=Environment(CPPPATH='/usr/include/glib-2.0/:/usr/lib/glib-2.0/include:include', 
       CPPDEFINES=[], 
       LIBS=['glib-2.0']) 

if ARGUMENTS.get('debug', 0): 
    env.Append(CCFLAGS = ' -g') 

env.Program('template', Glob('src/*.cc')) 

A travaillé un régal. Merci.

+0

Comment faire pour que les fichiers objet (*. O) se retrouvent dans un dossier nouvellement créé appelé obj –

4

Cette question: https://stackoverflow.com/questions/279860/... donne un squelette de Scons assez flexible qui devrait servir vos besoins avec quelques ajustements aux variables de chemin.

+1

Je pense que cette réponse est trop difficile pour la plupart des gens nouveaux à scons. VariantDir? (par exemple) et suppose la connaissance de Python. – RichieHH

+0

Votre hypothèse est correcte Richard. Je n'ai aucune idée de ce que fait ce fichier de configuration mais je pense que j'ai réussi à en tirer quelque chose d'utile. – anon58192932

8

Voici un exemple de Sconscript fichier

env=Environment(CPPPATH='/usr/include/glib-2.0/:/usr/lib/glib-2.0/include:inc', 
       CPPDEFINES=[], 
       LIBS=['glib-2.0']) 
env.Program('runme', Glob('src/*.c')) 

(La ligne de l'environnement est pas vraiment nécessaire pour l'exemple, mais je l'ai d'inclure le chemin d'en-tête pendue non standard et laissé là pour que vous puissiez obtenir l'idée comment ajouter des includes et des define)

Les fichiers source sont dans le répertoire src et les fichiers d'en-tête dans le répertoire inc. Vous exécutez scons à partir du répertoire de base et le fichier de sortie est également généré dans le même répertoire.