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
46 # find host_machine value
47 if 'PROCESSOR_ARCHITECTURE' in os
.environ
:
48 host_machine
= os
.environ
['PROCESSOR_ARCHITECTURE']
50 host_machine
= _platform
.machine()
51 host_machine
= _machine_map
.get(host_machine
, 'generic')
53 default_machine
= host_machine
54 default_toolchain
= 'default'
56 if target_platform
== 'windows' and host_platform
!= 'windows':
57 default_machine
= 'x86'
58 default_toolchain
= 'crossmingw'
61 # find default_llvm value
62 if 'LLVM' in os
.environ
:
67 if target_platform
!= 'windows' and \
68 subprocess
.call(['llvm-config', '--version'],
69 stdout
=subprocess
.PIPE
) == 0:
75 #######################################################################
80 from SCons
.Variables
.BoolVariable
import BoolVariable
as BoolOption
82 from SCons
.Options
.BoolOption
import BoolOption
84 from SCons
.Variables
.EnumVariable
import EnumVariable
as EnumOption
86 from SCons
.Options
.EnumOption
import EnumOption
87 opts
.Add(EnumOption('build', 'build type', 'debug',
88 allowed_values
=('debug', 'checked', 'profile',
90 opts
.Add(BoolOption('verbose', 'verbose output', 'no'))
91 opts
.Add(EnumOption('machine', 'use machine-specific assembly code',
93 allowed_values
=('generic', 'ppc', 'x86', 'x86_64')))
94 opts
.Add(EnumOption('platform', 'target platform', host_platform
,
95 allowed_values
=('cygwin', 'darwin', 'freebsd', 'haiku',
96 'linux', 'sunos', 'windows')))
97 opts
.Add(BoolOption('embedded', 'embedded build', 'no'))
98 opts
.Add(BoolOption('analyze',
99 'enable static code analysis where available', 'no'))
100 opts
.Add(BoolOption('asan', 'enable Address Sanitizer', 'no'))
101 opts
.Add('toolchain', 'compiler toolchain', default_toolchain
)
102 opts
.Add(BoolOption('gles', 'EXPERIMENTAL: enable OpenGL ES support',
104 opts
.Add(BoolOption('llvm', 'use LLVM', default_llvm
))
105 opts
.Add(BoolOption('openmp', 'EXPERIMENTAL: compile with openmp (swrast)',
107 opts
.Add(BoolOption('debug', 'DEPRECATED: debug build', 'yes'))
108 opts
.Add(BoolOption('profile', 'DEPRECATED: profile build', 'no'))
109 opts
.Add(BoolOption('quiet', 'DEPRECATED: profile build', 'yes'))
110 opts
.Add(BoolOption('texture_float',
111 'enable floating-point textures and renderbuffers',
113 if host_platform
== 'windows':
114 opts
.Add('MSVC_VERSION', 'Microsoft Visual C/C++ version')