[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

pl.comp.programming

SCons + SConscript + tuple

Zbyszek Malec

4/3/2007 2:00:00 PM

Mam niesamowity problem z napisaniem sconscriptów do mojego nowego
projektu. Nie znam SConsa bardzo dobrze, ale co? tam o nim wiem. Napisa3em
do?a prosty zestaw sconscriptów które nie dzia3aj?, konkretnie:

scons -u -k
scons: Entering directory `c:\Moje\programming\programy\test'
scons: Reading SConscript files ...

scons: *** attempted to add a non-Node as source of test.exe:
['t1\\t1.o'] is a <type 'list'>, not a Node
File "SConstruct", line 10, in ?

Compilation exited abnormally with code 1 at Tue Apr 03 15:51:40

pliki w projekcie:

\SConstruct
\t1\SConscript
\t1\t1.cpp
\t2\SConscript
\t2\t2.cpp

##########################################
#SConstruct wygl?da nastepuj?co:
##########################################
import os

env = Environment(ENV=os.environ, tools=['mingw'])

Export('env')

objects = []
objects.append(SConscript(['t1/SConscript', 't2/SConscript']) )

env.Program(target = 'test', source = objects )

############################################
#SConscript od t1
############################################
Import ('env')

objects = env.StaticObject(source = ['t1.cpp'] )

Return('objects')

############################################
#SConscript od t2:
############################################
Import ('env')

objects = env.StaticObject(source = ['t2.cpp'] )
Return('objects')



Lista objects ze SConstructa wypisana na ekran:
[([<SCons.Node.FS.File instance at 0x00E250D0>],
[<SCons.Node.FS.File instance at 0x00E25850>])]

Zgodnie z dokumentacj? builder powinien sobie poradzia ze sp3aszczeniem
listy objectów. Jak zamienie w SConstruct'ie wywo3anie SConscripta od listy
na dwa wywo3ania od pojedynczych plików i dam dwa razy append to jest ok,
ale to rozwi?zanie mnie nie zadowala. Co robie ?le? Ewentualnie, czego nie
wiem?

SCons w wersji 0.96.1 na windowsy, Python 2.4.3.

--
Zbyszek Malec Ustronie 104
jid: zbyszanna@chrome.pl
4 Answers

Rob Wolfe

4/3/2007 3:06:00 PM

0


Zbyszek Malec napisal(a):
> Mam niesamowity problem z napisaniem sconscriptów do mojego nowego
> projektu. Nie znam SConsa bardzo dobrze, ale cos tam o nim wiem. Napisalem
> dosc prosty zestaw sconscriptów które nie dzialaja, konkretnie:
>
> scons -u -k
> scons: Entering directory `c:\Moje\programming\programy\test'
> scons: Reading SConscript files ...
>
> scons: *** attempted to add a non-Node as source of test.exe:
> ['t1\\t1.o'] is a <type 'list'>, not a Node
> File "SConstruct", line 10, in ?
>
> Compilation exited abnormally with code 1 at Tue Apr 03 15:51:40
>
> pliki w projekcie:
>
> \SConstruct
> \t1\SConscript
> \t1\t1.cpp
> \t2\SConscript
> \t2\t2.cpp
>
> ##########################################
> #SConstruct wyglada nastepujaco:
> ##########################################
> import os
>
> env = Environment(ENV=os.environ, tools=['mingw'])
>
> Export('env')
>
> objects = []
> objects.append(SConscript(['t1/SConscript', 't2/SConscript']) )
>
> env.Program(target = 'test', source = objects )

Przerób ten plik tak:

<code>
objects = []
for subdir in ('t1', 't2'):
o = SConscript('%s/SConscript' % subdir)
objects.append(o)
</code>

Widocznie Sconscript nie radzi sobie z dowolnie duzym
zagniezdzeniem list.

--
pozdrawiam
Rob

Zbyszek Malec

4/3/2007 7:34:00 PM

0

Dnia 3 Apr 2007 08:06:15 -0700, Rob Wolfe napisa3(a):

> <code>
> objects = []
> for subdir in ('t1', 't2'):
> o = SConscript('%s/SConscript' % subdir)
> objects.append(o)
> </code>
>
> Widocznie Sconscript nie radzi sobie z dowolnie du?ym
> zagnie?d?eniem list.

To dzia3a, ale mam podobny projekt pod linuksem i tam takie zagnie?dzenia
dzia3aj?. Mo?e to jest problem windowsowej wersji SConsa? Ale pewnie by to
wysz3o du?o wcze?niej a nie na moim przyk3adzie ;) No nic, zmienie na fora.

--
Zbyszek Malec Ustronie 104
jid: zbyszanna@chrome.pl

Rob Wolfe

4/3/2007 8:17:00 PM

0

Zbyszek Malec <zbyszanna@tlen.pl> writes:

> Dnia 3 Apr 2007 08:06:15 -0700, Rob Wolfe napisa3(a):
>
>> <code>
>> objects = []
>> for subdir in ('t1', 't2'):
>> o = SConscript('%s/SConscript' % subdir)
>> objects.append(o)
>> </code>
>>
>> Widocznie Sconscript nie radzi sobie z dowolnie du?ym
>> zagnie?d?eniem list.
>
> To dzia3a, ale mam podobny projekt pod linuksem i tam takie zagnie?dzenia
> dzia3aj?. Mo?e to jest problem windowsowej wersji SConsa? Ale pewnie by to
> wysz3o du?o wcze?niej a nie na moim przyk3adzie ;) No nic, zmienie na fora.

Sprawdzi3em na Linuksie i... problem le?y w wersji Sconsa.
W wersji 0.96.1 sie wysypuje, a w wersji 0.96.95 ju? nie.

--
pozdrawiam
Rob

Zbyszek Malec

4/3/2007 8:34:00 PM

0

Dnia Tue, 03 Apr 2007 22:17:09 +0200, Rob Wolfe napisa3(a):

> Sprawdzi3em na Linuksie i... problem le?y w wersji Sconsa.
> W wersji 0.96.1 sie wysypuje, a w wersji 0.96.95 ju? nie.

Ehhh... Dzieki za pomoc.

--
Zbyszek Malec Ustronie 104
jid: zbyszanna@chrome.pl