scons: Autodetect the default machine.
This commit is contained in:
parent
9a8a5d7c2f
commit
67099cd7b9
27
SConstruct
27
SConstruct
|
@ -4,6 +4,7 @@
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
import sys
|
import sys
|
||||||
|
import platform as _platform
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
@ -32,8 +33,22 @@ platform_map = {
|
||||||
'linux2': 'linux',
|
'linux2': 'linux',
|
||||||
'win32': 'winddk',
|
'win32': 'winddk',
|
||||||
}
|
}
|
||||||
|
default_platform = sys.platform
|
||||||
|
default_platform = platform_map.get(default_platform, default_platform)
|
||||||
|
|
||||||
default_platform = platform_map.get(sys.platform, sys.platform)
|
machine_map = {
|
||||||
|
'x86': 'x86',
|
||||||
|
'i386': 'x86',
|
||||||
|
'i486': 'x86',
|
||||||
|
'i586': 'x86',
|
||||||
|
'i686': 'x86',
|
||||||
|
'x86_64': 'x86_64',
|
||||||
|
}
|
||||||
|
if 'PROCESSOR_ARCHITECTURE' in os.environ:
|
||||||
|
default_machine = os.environ['PROCESSOR_ARCHITECTURE']
|
||||||
|
else:
|
||||||
|
default_machine = _platform.machine()
|
||||||
|
default_machine = machine_map.get(default_machine, 'generic')
|
||||||
|
|
||||||
if default_platform in ('linux', 'freebsd', 'darwin'):
|
if default_platform in ('linux', 'freebsd', 'darwin'):
|
||||||
default_statetrackers = 'mesa'
|
default_statetrackers = 'mesa'
|
||||||
|
@ -53,9 +68,9 @@ else:
|
||||||
|
|
||||||
# TODO: auto-detect defaults
|
# TODO: auto-detect defaults
|
||||||
opts = Options('config.py')
|
opts = Options('config.py')
|
||||||
opts.Add(BoolOption('debug', 'build debug version', False))
|
opts.Add(BoolOption('debug', 'build debug version', 'no'))
|
||||||
opts.Add(EnumOption('machine', 'use machine-specific assembly code', 'x86',
|
opts.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine,
|
||||||
allowed_values=('generic', 'x86', 'x86-64')))
|
allowed_values=('generic', 'x86', 'x86_64')))
|
||||||
opts.Add(EnumOption('platform', 'target platform', default_platform,
|
opts.Add(EnumOption('platform', 'target platform', default_platform,
|
||||||
allowed_values=('linux', 'cell', 'winddk')))
|
allowed_values=('linux', 'cell', 'winddk')))
|
||||||
opts.Add(ListOption('statetrackers', 'state_trackers to build', default_statetrackers,
|
opts.Add(ListOption('statetrackers', 'state_trackers to build', default_statetrackers,
|
||||||
|
@ -296,8 +311,8 @@ if dri:
|
||||||
build_subdir += "-dri"
|
build_subdir += "-dri"
|
||||||
if llvm:
|
if llvm:
|
||||||
build_subdir += "-llvm"
|
build_subdir += "-llvm"
|
||||||
if x86:
|
if env['machine'] != 'generic':
|
||||||
build_subdir += "-x86"
|
build_subdir += '-' + env['machine']
|
||||||
if debug:
|
if debug:
|
||||||
build_subdir += "-debug"
|
build_subdir += "-debug"
|
||||||
build_dir = os.path.join(build_topdir, build_subdir)
|
build_dir = os.path.join(build_topdir, build_subdir)
|
||||||
|
|
Loading…
Reference in New Issue