1 #######################################################################
9 import platform
as _platform
11 import SCons
.Script
.SConscript
14 #######################################################################
17 host_platform
= _platform
.system().lower()
18 if host_platform
.startswith('cygwin'):
19 host_platform
= 'cygwin'
21 # Search sys.argv[] for a "platform=foo" argument since we don't have
22 # an 'env' variable at this point.
23 if 'platform' in SCons
.Script
.ARGUMENTS
:
24 target_platform
= SCons
.Script
.ARGUMENTS
['platform']
26 target_platform
= host_platform
40 # find host_machine value
41 if 'PROCESSOR_ARCHITECTURE' in os
.environ
:
42 host_machine
= os
.environ
['PROCESSOR_ARCHITECTURE']
44 host_machine
= _platform
.machine()
45 host_machine
= _machine_map
.get(host_machine
, 'generic')
47 default_machine
= host_machine
48 default_toolchain
= 'default'
50 if target_platform
== 'windows' and host_platform
!= 'windows':
51 default_machine
= 'x86'
52 default_toolchain
= 'crossmingw'
55 # find default_llvm value
56 if 'LLVM' in os
.environ
:
61 if target_platform
!= 'windows' and \
62 subprocess
.call(['llvm-config', '--version'], stdout
=subprocess
.PIPE
) == 0:
68 #######################################################################
73 from SCons
.Variables
.BoolVariable
import BoolVariable
as BoolOption
75 from SCons
.Options
.BoolOption
import BoolOption
77 from SCons
.Variables
.EnumVariable
import EnumVariable
as EnumOption
79 from SCons
.Options
.EnumOption
import EnumOption
80 opts
.Add(EnumOption('build', 'build type', 'debug',
81 allowed_values
=('debug', 'checked', 'profile', 'release')))
82 opts
.Add(BoolOption('verbose', 'verbose output', 'no'))
83 opts
.Add(EnumOption('machine', 'use machine-specific assembly code', default_machine
,
84 allowed_values
=('generic', 'ppc', 'x86', 'x86_64')))
85 opts
.Add(EnumOption('platform', 'target platform', host_platform
,
86 allowed_values
=('linux', 'windows', 'darwin', 'cygwin', 'sunos', 'freebsd8')))
87 opts
.Add(BoolOption('embedded', 'embedded build', 'no'))
88 opts
.Add('toolchain', 'compiler toolchain', default_toolchain
)
89 opts
.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support', 'no'))
90 opts
.Add(BoolOption('llvm', 'use LLVM', default_llvm
))
91 opts
.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)', 'no'))
92 opts
.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
93 opts
.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
94 opts
.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
95 if host_platform
== 'windows':
96 opts
.Add(EnumOption('MSVS_VERSION', 'MS Visual C++ version', None, allowed_values
=('7.1', '8.0', '9.0')))