Support building multiple DXX configurations at once
This commit is contained in:
parent
3ea05cf282
commit
1fb458fcf5
38
SConstruct
38
SConstruct
|
@ -10,7 +10,12 @@ class argumentIndirection:
|
||||||
self.prefix = prefix
|
self.prefix = prefix
|
||||||
self.ARGUMENTS = ARGUMENTS
|
self.ARGUMENTS = ARGUMENTS
|
||||||
def get(self,name,value=None):
|
def get(self,name,value=None):
|
||||||
return self.ARGUMENTS.get('%s_%s' % (self.prefix, name), self.ARGUMENTS.get(name,value))
|
for p in self.prefix:
|
||||||
|
try:
|
||||||
|
return self.ARGUMENTS['%s_%s' % (p, name)]
|
||||||
|
except KeyError:
|
||||||
|
pass
|
||||||
|
return self.ARGUMENTS.get(name,value)
|
||||||
|
|
||||||
# endianess-checker
|
# endianess-checker
|
||||||
def checkEndian():
|
def checkEndian():
|
||||||
|
@ -307,7 +312,7 @@ class DXXArchive(DXXCommon):
|
||||||
target = 'dxx-common'
|
target = 'dxx-common'
|
||||||
# Use a prefix of "common" since that is the source directory
|
# Use a prefix of "common" since that is the source directory
|
||||||
# governed by these arguments.
|
# governed by these arguments.
|
||||||
ARGUMENTS = argumentIndirection('common')
|
ARGUMENTS = argumentIndirection(['common'])
|
||||||
__objects_common = DXXCommon.create_lazy_object_property([os.path.join(srcdir, f) for f in [
|
__objects_common = DXXCommon.create_lazy_object_property([os.path.join(srcdir, f) for f in [
|
||||||
'2d/2dsline.c',
|
'2d/2dsline.c',
|
||||||
'2d/bitblt.c',
|
'2d/bitblt.c',
|
||||||
|
@ -677,7 +682,9 @@ class D1XProgram(DXXProgram):
|
||||||
PROGRAM_NAME = 'D1X-Rebirth'
|
PROGRAM_NAME = 'D1X-Rebirth'
|
||||||
target = 'd1x-rebirth'
|
target = 'd1x-rebirth'
|
||||||
srcdir = 'd1x-rebirth'
|
srcdir = 'd1x-rebirth'
|
||||||
ARGUMENTS = argumentIndirection('d1x')
|
def __init__(self,prefix):
|
||||||
|
self.ARGUMENTS = argumentIndirection(prefix)
|
||||||
|
DXXProgram.__init__(self)
|
||||||
def prepare_environment(self):
|
def prepare_environment(self):
|
||||||
DXXProgram.prepare_environment(self)
|
DXXProgram.prepare_environment(self)
|
||||||
# Flags and stuff for all platforms...
|
# Flags and stuff for all platforms...
|
||||||
|
@ -771,7 +778,9 @@ class D2XProgram(DXXProgram):
|
||||||
PROGRAM_NAME = 'D2X-Rebirth'
|
PROGRAM_NAME = 'D2X-Rebirth'
|
||||||
target = 'd2x-rebirth'
|
target = 'd2x-rebirth'
|
||||||
srcdir = 'd2x-rebirth'
|
srcdir = 'd2x-rebirth'
|
||||||
ARGUMENTS = argumentIndirection('d2x')
|
def __init__(self,prefix):
|
||||||
|
self.ARGUMENTS = argumentIndirection(prefix)
|
||||||
|
DXXProgram.__init__(self)
|
||||||
def prepare_environment(self):
|
def prepare_environment(self):
|
||||||
DXXProgram.prepare_environment(self)
|
DXXProgram.prepare_environment(self)
|
||||||
# Flags and stuff for all platforms...
|
# Flags and stuff for all platforms...
|
||||||
|
@ -868,12 +877,21 @@ class D2XProgram(DXXProgram):
|
||||||
def register_program(self):
|
def register_program(self):
|
||||||
self._register_program('d2x')
|
self._register_program('d2x')
|
||||||
|
|
||||||
program_d1x = None
|
def register_program(s,program):
|
||||||
program_d2x = None
|
l = [v for (k,v) in ARGLIST if k == s] or [1]
|
||||||
if int(ARGUMENTS.get('d1x', 1)):
|
# Fallback case: build the regular configuration.
|
||||||
program_d1x = D1XProgram()
|
if len(l) == 1:
|
||||||
if int(ARGUMENTS.get('d2x', 1)):
|
try:
|
||||||
program_d2x = D2XProgram()
|
if int(l[0]):
|
||||||
|
program([s])
|
||||||
|
return
|
||||||
|
except ValueError:
|
||||||
|
# If not an integer, treat this as a configuration profile.
|
||||||
|
pass
|
||||||
|
for e in l:
|
||||||
|
program(e.split(','))
|
||||||
|
register_program('d1x', D1XProgram)
|
||||||
|
register_program('d2x', D2XProgram)
|
||||||
|
|
||||||
# show some help when running scons -h
|
# show some help when running scons -h
|
||||||
Help('DXX-Rebirth, SConstruct file help:' +
|
Help('DXX-Rebirth, SConstruct file help:' +
|
||||||
|
|
Loading…
Reference in a new issue