• Home
  • Raw
  • Download

Lines Matching full:env

121 def modifiable_flags_handler(env):
122 env['modifiable_flags'] = \
123 'on' if 'mode' in env and env['mode'] == 'debug' else 'off'
126 def symbols_handler(env):
127 env['symbols'] = 'on' if 'mode' in env and env['mode'] == 'debug' else 'off'
129 def Is32BitHost(env):
130 return env['host_arch'] in ['aarch32', 'i386']
132 def IsAArch64Host(env):
133 return env['host_arch'] == 'aarch64'
135 def CanTargetA32(env):
136 return 'a32' in env['target']
138 def CanTargetT32(env):
139 return 't32' in env['target']
141 def CanTargetAArch32(env):
142 return CanTargetA32(env) or CanTargetT32(env)
144 def CanTargetA64(env):
145 return 'a64' in env['target']
147 def CanTargetAArch64(env):
148 return CanTargetA64(env)
153 def simulator_handler(env):
154 if not IsAArch64Host(env) and CanTargetAArch64(env):
155 env['simulator'] = 'aarch64'
157 env['simulator'] = 'none'
162 def code_buffer_allocator_handler(env):
163 directives = util.GetCompilerDirectives(env)
165 env['code_buffer_allocator'] = 'mmap'
167 env['code_buffer_allocator'] = 'malloc'
170 def default_validator(env):
174 def simulator_validator(env):
175 if env['simulator'] == 'aarch64' and not CanTargetAArch64(env):
197 def validator(name, value, env):
209 def validator(name, value, env):
264 def RetrieveEnvironmentVariables(env):
266 if os.getenv(key): env[key] = os.getenv(key)
267 if os.getenv('LD_LIBRARY_PATH'): env['LIBPATH'] = os.getenv('LD_LIBRARY_PATH')
269 env.Append(CCFLAGS = os.getenv('CCFLAGS').split())
271 env.Append(CXXFLAGS = os.getenv('CXXFLAGS').split())
273 env.Append(LINKFLAGS = os.getenv('LINKFLAGS').split())
275 env['ENV']['TERM'] = os.getenv('TERM')
285 def target_handler(env):
287 if Is32BitHost(env):
290 env['target'] = list(set(['a32', 't32']))
292 env['target'] = list(set(['a64', 'a32', 't32']))
295 def target_validator(env):
297 if Is32BitHost(env) and CanTargetAArch64(env):
303 def ProcessTargetOption(env):
304 if env['target'] == []: target_handler(env)
306 if 'a32' in env['target']: env['CCFLAGS'] += ['-DVIXL_INCLUDE_TARGET_A32']
307 if 't32' in env['target']: env['CCFLAGS'] += ['-DVIXL_INCLUDE_TARGET_T32']
308 if 'a64' in env['target']: env['CCFLAGS'] += ['-DVIXL_INCLUDE_TARGET_A64']
310 target_validator(env)
313 def ProcessBuildOptions(env):
317 if var in env and env[var]:
318 env[var] += options['all'][var]
320 env[var] = options['all'][var]
324 ProcessTargetOption(env)
327 env_dict = env.Dictionary()
339 validator(env)
346 env[var] += options[key_val_couple][var]
349 def ConfigureEnvironmentForCompiler(env):
350 if CanTargetA32(env) and CanTargetT32(env):
353 env.Append(CPPFLAGS = ['-Wmissing-noreturn'])
355 compiler = util.CompilerInformation(env)
361 env.Append(CPPFLAGS = ['-Wimplicit-fallthrough', '-Wshorten-64-to-32'])
365 env.Append(CPPFLAGS = ['-Wunreachable-code'])
371 if env['mode'] == 'release':
373 env.Append(CPPFLAGS = ['-Wno-maybe-uninitialized'])
376 if 'std' not in env or env['std'] == 'c++98':
377 env.Append(CPPFLAGS = ['-Wno-long-long'])
379 if 'std' in env and env['std'] in ['c++11', 'c++14']:
381 env.Append(CPPFLAGS = ['-Wsuggest-override'])
383 env.Append(CPPFLAGS = ['-Winconsistent-missing-override'])
386 def ConfigureEnvironment(env):
387 RetrieveEnvironmentVariables(env)
388 env['host_arch'] = util.GetHostArch(env)
389 ProcessBuildOptions(env)
390 if 'std' in env:
391 env.Append(CPPFLAGS = ['-std=' + env['std']])
392 std_path = env['std']
393 ConfigureEnvironmentForCompiler(env)
396 def TargetBuildDir(env):
401 option_value = ''.join(env[option]) if option in env else ''
412 def VIXLLibraryTarget(env):
413 build_dir = TargetBuildDir(env)
422 if CanTargetAArch32(env):
425 if CanTargetAArch64(env):
428 return env.Library(join(build_dir, 'vixl'), sources)
435 env = Environment(variables = vars,
446 ConfigureEnvironment(env)
447 Help(vars.GenerateHelpText(env))
448 libvixl = VIXLLibraryTarget(env)
450 env.Alias('libvixl', libvixl)
455 test_build_dir = PrepareVariantDir('test', TargetBuildDir(env))
456 test_objects = [env.Object(Glob(join(test_build_dir, '*.cc')))]
459 if CanTargetAArch32(env):
462 aarch32_examples_build_dir = PrepareVariantDir('examples/aarch32', TargetBuildDir(env))
465 prog = env.Program(join(aarch32_examples_build_dir, example),
469 env.Alias('aarch32_examples', aarch32_example_targets)
474 aarch32_benchmarks_build_dir = PrepareVariantDir('benchmarks/aarch32', TargetBuildDir(env))
477 prog = env.Program(join(aarch32_benchmarks_build_dir, bench),
481 env.Alias('aarch32_benchmarks', aarch32_benchmark_targets)
485 test_aarch32_build_dir = PrepareVariantDir(join('test', 'aarch32'), TargetBuildDir(env))
486 test_objects.append(env.Object(
488 CPPPATH = env['CPPPATH'] + [config.dir_tests]))
491 if CanTargetAArch64(env):
494 aarch64_benchmarks_build_dir = PrepareVariantDir('benchmarks/aarch64', TargetBuildDir(env))
497 prog = env.Program(join(aarch64_benchmarks_build_dir, bench),
501 env.Alias('aarch64_benchmarks', aarch64_benchmark_targets)
506 aarch64_examples_build_dir = PrepareVariantDir('examples/aarch64', TargetBuildDir(env))
509 prog = env.Program(join(aarch64_examples_build_dir, example),
513 env.Alias('aarch64_examples', aarch64_example_targets)
517 test_aarch64_build_dir = PrepareVariantDir(join('test', 'aarch64'), TargetBuildDir(env))
518 test_objects.append(env.Object(
520 CPPPATH = env['CPPPATH'] + [config.dir_tests]))
524 test_aarch64_examples_vdir = join(TargetBuildDir(env), 'test', 'aarch64', 'test_examples')
526 test_aarch64_examples_obj = env.Object(
529 CCFLAGS = env['CCFLAGS'] + ['-DTEST_EXAMPLES'],
530 CPPPATH = env['CPPPATH'] + [config.dir_aarch64_examples] + [config.dir_tests])
533 test = env.Program(join(test_build_dir, 'test-runner'), test_objects,
535 env.Alias('tests', test)
539 env.Alias('all', top_level_targets.targets)
548 env.Markdown('README.md'),
549 env.Markdown('doc/changelog.md'),
550 env.Markdown('doc/aarch32/getting-started-aarch32.md'),
551 env.Markdown('doc/aarch32/design/code-generation-aarch32.md'),
552 env.Markdown('doc/aarch32/design/literal-pool-aarch32.md'),
553 env.Markdown('doc/aarch64/supported-instructions-aarch64.md'),
554 env.Markdown('doc/aarch64/getting-started-aarch64.md'),
555 env.Markdown('doc/aarch64/topics/ycm.md'),
556 env.Markdown('doc/aarch64/topics/extending-the-disassembler.md'),
557 env.Markdown('doc/aarch64/topics/index.md'),
559 env.Alias('doc', doc)