diff options
Diffstat (limited to 'bksys/parser.py')
-rw-r--r-- | bksys/parser.py | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/bksys/parser.py b/bksys/parser.py deleted file mode 100644 index cdde2b0..0000000 --- a/bksys/parser.py +++ /dev/null @@ -1,142 +0,0 @@ -#!/usr/bin/python - -from xml.sax import make_parser -from xml.sax.handler import ContentHandler - -import SCons.Util - -def exists(env): - return True - -class SconsHandler(ContentHandler): - - def __init__ (self, envi, builddir): - self.envname = "" - self.env = envi - self.builddir="" #envi['_BUILDDIR_'] - - #self.dump = True - self.dump = False - self.count = 0 - self.dir = "" - self.autoinstall = False - self.appname="" - - self.obj = "" - - self.subdir ="" - self.type ="" - - self.isgloballib="" - self.target="" - - self._includes="" - self.cxxflags="" - self.globallibs="" - self.locallibs="" - self.linkflags="" - - self.srclist=[] - - def adrl(self, file): - if self.builddir: - dir=self.env.join(self.builddir,file).lstrip('/') - else: - dir=file.lstrip('/') - return dir - - def dump_commands(self, str): - if self.dump: - print str - - def startElement(self, name, attrs): - - if name == 'icondirent': - dir = attrs.get('dir', '') - sbdir = attrs.get('subdir', '') - if dir: - #if self.env.has_key("DUMPCONFIG"): - # print "env.KDEicon('"+dir+")'" - self.env.KDEicon('*', self.adrl(dir), subdir=sbdir) - elif name == 'subdirent': - dir = attrs.get('dir', None) - if dir: - #if self.env.has_key("DUMPCONFIG"): - # print "env.SConscript('"+dir+"/SConscript')" - self.env.SConscript(self.env.join(self.adrl(dir),"SConscript")) - elif name == 'docdir': - self.appname = self.adrl( attrs.get('name', None) ) - elif name == 'docdirent': - dir = attrs.get('dir', None) - lang = attrs.get('lang', None) - if dir and lang: - #if self.env.has_key("DUMPCONFIG"): - # print "env.docfolder('"+dir+"', '"+lang+"', '"+self.appname+"')" - self.env.docfolder(self.adrl(dir), lang, self.appname) - elif name == 'podir': - dir = attrs.get('dir', None) - appname = attrs.get('name', None) - if dir and appname: - if self.env.has_key('_BUILDDIR_'): dir=self.env.join(self.env['_BUILDDIR_'], dir) - self.env.KDElang(dir, appname) - elif name == 'install': - self.type = attrs.get('type', None) - self.subdir = attrs.get('subdir', None) - - elif name == 'file': - name = attrs.get('name', None) - if self.type: - #if self.env.has_key("DUMPCONFIG"): - # print "env.KDEinstall('"+self.type+"', '"+self.subdir+"', '"+name+"')" - self.env.KDEinstall(self.type, self.subdir, name) - - elif name == 'compile': - - type = attrs.get('type', None) - if not type: self.env.Exit(1) - self.obj = self.env.kobject(type) - - self.obj.target = str(attrs.get('target', '')) - self.obj.source = [] - - self.obj.includes = str(attrs.get('includes', '')) - self.obj.cflags = str(attrs.get('cflags', '')) - self.obj.cxxflags = str(attrs.get('cxxflags', '')) - - self.obj.libs = str(attrs.get('libs', '')) - self.obj.linkflags = str(attrs.get('linkflags', '')) - self.obj.libpath = str(attrs.get('libpath', '')) - - self.obj.vnum = str(attrs.get('vnum', '')) - self.obj.iskdelib = str(attrs.get('iskdelib', 0)) - self.obj.libprefix = str(attrs.get('libprefix', '')) - - self.obj.chdir = self.adrl(str(attrs.get('chdir', ''))) - self.obj.dirprefix = self.adrl(str(attrs.get('dirprefix', './'))) - if not self.obj.dirprefix: self.obj.dirprefix='./' # avoid silly errors - - elif name == 'source': - file = attrs.get('file', None) - condition = attrs.get('condition', ""); - lst=condition.split(':') - for c in lst: - if self.env.has_key(c): - self.obj.source.append( file ) - break - if file and not condition: self.obj.source.append( file ) - - def endElement(self, name): - if name == 'compile': - self.obj.execute() - -def generate(env): - - def xmlfile(env, file, builddir=''): - parser = make_parser() - curHandler = SconsHandler(env, builddir) - parser.setContentHandler(curHandler) - parser.parse(open(file)) - - from SCons.Script.SConscript import SConsEnvironment - SConsEnvironment.xmlfile = xmlfile - |