SCons, specialis feladatra[megoldva]

A kovetkezo a problemam:
Tobb kulonallo xls-bol egy, amolyan compiler programmal letre kell egy-egy egyedi formatumu filet. Ezek .slc kiterjesztest kapnak. Az .slc fileokat egy masik program dolgozza fel, ugyanugy mint egy linker. A linker egyetlen filet ad ki magabol. Ahogyan ez C/C++ eseten megszokott. Ezeknek a lepeseknek az automatizalasara szeretnek irni egy SConstruct filet. Magamtol ennyire jutottam:


env = Environment()

cmplr = Builder(action = 'cat < $SOURCE > $TARGET',
                suffix = '.slc',
                src_suffix = '.xls')

lnkr = Builder(action = 'cat $SOURCES >> $TARGET',
                suffix = '.kdb',
                src_suffix = '.slc')

env['BUILDERS']['MyCompiler'] = cmplr
env['BUILDERS']['MyLinker'] = lnkr

srcs = [File('file1.xls'), File('file2.xls')]
slces = env.MyCompiler(source = srcs)
print slces

env.MyLinker(target = 'final.kdb', source = slces)

A compilert is, es a linkert is a cat helyettesiti az egyszeruseg kedveert. A problemam az, hogy csak a file1.xls-re fut le compile resz. Hogyan lehetne ezt orvosolni?

Hozzászólások

Igy mukodik.


env = Environment()

cmplr = Builder(action = 'cat < $SOURCE > $TARGET')

lnkr = Builder(action = 'cat $SOURCES >> $TARGET')

env['BUILDERS']['MyCompiler'] = cmplr
env['BUILDERS']['MyLinker'] = lnkr

slcs = env.MyCompiler('file1.slc', 'file1.xls')
slcs = slcs + env.MyCompiler('file2.slc', 'file2.xls')

env.MyLinker(target = 'final.kdb', source = slcs)

Mivel keves file-rol van szo, a szamuk nagyjabol allando, ezert tokeletesen elfogadhato ez a megoldas.