For Mac in SCons, find the HIServices framework for physfsx.c
This commit is contained in:
parent
f3b1294bf0
commit
7683d7998d
49
SConstruct
49
SConstruct
|
@ -51,14 +51,36 @@ class DXXProgram:
|
||||||
self.use_udp = int(ARGUMENTS.get('use_udp', 1))
|
self.use_udp = int(ARGUMENTS.get('use_udp', 1))
|
||||||
self.use_tracker = int(ARGUMENTS.get('use_tracker', 1))
|
self.use_tracker = int(ARGUMENTS.get('use_tracker', 1))
|
||||||
self.verbosebuild = int(ARGUMENTS.get('verbosebuild', 0))
|
self.verbosebuild = int(ARGUMENTS.get('verbosebuild', 0))
|
||||||
|
builddir_prefix = ARGUMENTS.get('builddir_prefix', None)
|
||||||
|
builddir_suffix = ARGUMENTS.get('builddir_suffix', None)
|
||||||
|
default_builddir = builddir_prefix or ''
|
||||||
|
if builddir_prefix is not None or builddir_suffix is not None:
|
||||||
|
if os.environ.has_key('CC'):
|
||||||
|
default_builddir += '%s-' % os.path.basename(os.environ['CC'])
|
||||||
|
for a in (
|
||||||
|
('debug', 'dbg'),
|
||||||
|
('profiler', 'prf'),
|
||||||
|
('editor', 'ed'),
|
||||||
|
('opengl', 'ogl'),
|
||||||
|
('opengles', 'es'),
|
||||||
|
):
|
||||||
|
if getattr(self, a[0]):
|
||||||
|
default_builddir += a[1]
|
||||||
|
if builddir_suffix is not None:
|
||||||
|
default_builddir += builddir_prefix
|
||||||
|
self.builddir = ARGUMENTS.get('builddir', default_builddir)
|
||||||
|
if self.builddir != '' and self.builddir[-1:] != '/':
|
||||||
|
self.builddir += '/'
|
||||||
# Base class for platform-specific settings processing
|
# Base class for platform-specific settings processing
|
||||||
class _PlatformSettings:
|
class _PlatformSettings:
|
||||||
|
tools = None
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.ogllibs = ''
|
self.ogllibs = ''
|
||||||
self.osasmdef = None
|
self.osasmdef = None
|
||||||
self.platform_sources = []
|
self.platform_sources = []
|
||||||
# Settings to apply to mingw32 builds
|
# Settings to apply to mingw32 builds
|
||||||
class Win32PlatformSettings(_PlatformSettings):
|
class Win32PlatformSettings(_PlatformSettings):
|
||||||
|
tools = ['mingw']
|
||||||
def __init__(self,user_settings):
|
def __init__(self,user_settings):
|
||||||
DXXProgram._PlatformSettings.__init__(self)
|
DXXProgram._PlatformSettings.__init__(self)
|
||||||
self.osdef = '_WIN32'
|
self.osdef = '_WIN32'
|
||||||
|
@ -80,6 +102,11 @@ class DXXProgram:
|
||||||
user_settings.asm = 0
|
user_settings.asm = 0
|
||||||
self.lflags = os.environ["LDFLAGS"] if os.environ.has_key('LDFLAGS') else ''
|
self.lflags = os.environ["LDFLAGS"] if os.environ.has_key('LDFLAGS') else ''
|
||||||
def adjust_environment(self,program,env):
|
def adjust_environment(self,program,env):
|
||||||
|
VERSION = str(program.VERSION_MAJOR) + '.' + str(program.VERSION_MINOR)
|
||||||
|
if (program.VERSION_MICRO):
|
||||||
|
VERSION += '.' + str(program.VERSION_MICRO)
|
||||||
|
env['VERSION_NUM'] = VERSION
|
||||||
|
env['VERSION_NAME'] = program.PROGRAM_NAME + ' v' + VERSION
|
||||||
env.Append(CPPDEFINES = ['__unix__'])
|
env.Append(CPPDEFINES = ['__unix__'])
|
||||||
env.Append(CPPPATH = [os.path.join(program.srcdir, '../physfs'), os.path.join(os.getenv("HOME"), 'Library/Frameworks/SDL.framework/Headers'), '/Library/Frameworks/SDL.framework/Headers'])
|
env.Append(CPPPATH = [os.path.join(program.srcdir, '../physfs'), os.path.join(os.getenv("HOME"), 'Library/Frameworks/SDL.framework/Headers'), '/Library/Frameworks/SDL.framework/Headers'])
|
||||||
self.platform_sources = [os.path.join(program.srcdir, f) for f in ['arch/cocoa/SDLMain.m', 'arch/carbon/messagebox.c']]
|
self.platform_sources = [os.path.join(program.srcdir, f) for f in ['arch/cocoa/SDLMain.m', 'arch/carbon/messagebox.c']]
|
||||||
|
@ -107,18 +134,18 @@ class DXXProgram:
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.user_settings = self.UserSettings(self.ARGUMENTS, self.target)
|
self.user_settings = self.UserSettings(self.ARGUMENTS, self.target)
|
||||||
|
self.check_platform()
|
||||||
self.prepare_environment()
|
self.prepare_environment()
|
||||||
self.banner()
|
self.banner()
|
||||||
self.check_endian()
|
self.check_endian()
|
||||||
self.check_platform()
|
|
||||||
self.process_user_settings()
|
self.process_user_settings()
|
||||||
self.register_program()
|
self.register_program()
|
||||||
|
|
||||||
def prepare_environment(self):
|
def prepare_environment(self):
|
||||||
# Acquire environment object...
|
|
||||||
self.env = Environment(ENV = os.environ, tools = ['mingw'])
|
|
||||||
self.VERSION_STRING = ' v' + str(self.VERSION_MAJOR) + '.' + str(self.VERSION_MINOR) + '.' + str(self.VERSION_MICRO)
|
self.VERSION_STRING = ' v' + str(self.VERSION_MAJOR) + '.' + str(self.VERSION_MINOR) + '.' + str(self.VERSION_MICRO)
|
||||||
self.env.Append(CPPDEFINES = [('PROGRAM_NAME', '\\"' + str(self.PROGRAM_NAME) + '\\"'), ('DXX_VERSION_MAJORi', str(self.VERSION_MAJOR)), ('DXX_VERSION_MINORi', str(self.VERSION_MINOR)), ('DXX_VERSION_MICROi', str(self.VERSION_MICRO))])
|
self.env.Append(CPPDEFINES = [('PROGRAM_NAME', '\\"' + str(self.PROGRAM_NAME) + '\\"'), ('DXX_VERSION_MAJORi', str(self.VERSION_MAJOR)), ('DXX_VERSION_MINORi', str(self.VERSION_MINOR)), ('DXX_VERSION_MICROi', str(self.VERSION_MICRO))])
|
||||||
|
if self.user_settings.builddir != '':
|
||||||
|
self.env.VariantDir(self.user_settings.builddir, '.', duplicate=0)
|
||||||
|
|
||||||
# Prettier build messages......
|
# Prettier build messages......
|
||||||
if (self.user_settings.verbosebuild == 0):
|
if (self.user_settings.verbosebuild == 0):
|
||||||
|
@ -149,7 +176,6 @@ class DXXProgram:
|
||||||
print "%s: LittleEndian machine detected" % self.PROGRAM_NAME
|
print "%s: LittleEndian machine detected" % self.PROGRAM_NAME
|
||||||
|
|
||||||
def check_platform(self):
|
def check_platform(self):
|
||||||
env = self.env
|
|
||||||
# windows or *nix?
|
# windows or *nix?
|
||||||
if sys.platform == 'win32':
|
if sys.platform == 'win32':
|
||||||
print "%s: compiling on Windows" % self.PROGRAM_NAME
|
print "%s: compiling on Windows" % self.PROGRAM_NAME
|
||||||
|
@ -157,17 +183,14 @@ class DXXProgram:
|
||||||
elif sys.platform == 'darwin':
|
elif sys.platform == 'darwin':
|
||||||
print "%s: compiling on Mac OS X" % self.PROGRAM_NAME
|
print "%s: compiling on Mac OS X" % self.PROGRAM_NAME
|
||||||
platform = self.DarwinPlatformSettings
|
platform = self.DarwinPlatformSettings
|
||||||
VERSION = str(self.VERSION_MAJOR) + '.' + str(self.VERSION_MINOR)
|
|
||||||
if (self.VERSION_MICRO):
|
|
||||||
VERSION += '.' + str(self.VERSION_MICRO)
|
|
||||||
env['VERSION_NUM'] = VERSION
|
|
||||||
env['VERSION_NAME'] = self.PROGRAM_NAME + ' v' + VERSION
|
|
||||||
else:
|
else:
|
||||||
print "%s: compiling on *NIX" % self.PROGRAM_NAME
|
print "%s: compiling on *NIX" % self.PROGRAM_NAME
|
||||||
platform = self.LinuxPlatformSettings
|
platform = self.LinuxPlatformSettings
|
||||||
self.user_settings.sharepath += '/'
|
self.user_settings.sharepath += '/'
|
||||||
self.platform_settings = platform(self.user_settings)
|
self.platform_settings = platform(self.user_settings)
|
||||||
self.platform_settings.adjust_environment(self, env)
|
# Acquire environment object...
|
||||||
|
self.env = Environment(ENV = os.environ, tools = platform.tools)
|
||||||
|
self.platform_settings.adjust_environment(self, self.env)
|
||||||
self.platform_settings.libs += ['physfs', 'm']
|
self.platform_settings.libs += ['physfs', 'm']
|
||||||
self.common_sources += self.platform_settings.platform_sources
|
self.common_sources += self.platform_settings.platform_sources
|
||||||
|
|
||||||
|
@ -479,13 +502,13 @@ class D1XProgram(DXXProgram):
|
||||||
def register_program(self):
|
def register_program(self):
|
||||||
env = self.env
|
env = self.env
|
||||||
exe_target = os.path.join(self.srcdir, self.target)
|
exe_target = os.path.join(self.srcdir, self.target)
|
||||||
|
objects = [self.env.StaticObject(target='%s%s%s' % (self.user_settings.builddir, os.path.splitext(s)[0], self.env["OBJSUFFIX"]), source=s) for s in self.common_sources]
|
||||||
versid_cppdefines=env['CPPDEFINES'][:]
|
versid_cppdefines=env['CPPDEFINES'][:]
|
||||||
if self.user_settings.extra_version:
|
if self.user_settings.extra_version:
|
||||||
versid_cppdefines.append(('DESCENT_VERSION_EXTRA', '\\"%s\\"' % self.user_settings.extra_version))
|
versid_cppdefines.append(('DESCENT_VERSION_EXTRA', '\\"%s\\"' % self.user_settings.extra_version))
|
||||||
env.Object(source = ['main/vers_id.c'], CPPDEFINES=versid_cppdefines)
|
objects.append(self.env.StaticObject(target='%s%s%s' % (self.user_settings.builddir, 'main/vers_id', self.env["OBJSUFFIX"]), source='main/vers_id.c', CPPDEFINES=versid_cppdefines))
|
||||||
versid_sources = ['main/vers_id%s' % env['OBJSUFFIX']]
|
|
||||||
# finally building program...
|
# finally building program...
|
||||||
env.Program(target=str(exe_target), source = self.common_sources + versid_sources, LIBS = self.platform_settings.libs, LINKFLAGS = str(self.platform_settings.lflags))
|
env.Program(target='%s%s' % (self.user_settings.builddir, str(exe_target)), source = objects, LIBS = self.platform_settings.libs, LINKFLAGS = str(self.platform_settings.lflags))
|
||||||
if (sys.platform != 'darwin'):
|
if (sys.platform != 'darwin'):
|
||||||
env.Install(self.user_settings.BIN_DIR, str(exe_target))
|
env.Install(self.user_settings.BIN_DIR, str(exe_target))
|
||||||
env.Alias('install', self.user_settings.BIN_DIR)
|
env.Alias('install', self.user_settings.BIN_DIR)
|
||||||
|
|
Loading…
Reference in a new issue