OLD | NEW |
---|---|
1 # Copyright 2008 the V8 project authors. All rights reserved. | 1 # Copyright 2008 the V8 project authors. All rights reserved. |
2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without |
3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are |
4 # met: | 4 # met: |
5 # | 5 # |
6 # * Redistributions of source code must retain the above copyright | 6 # * Redistributions of source code must retain the above copyright |
7 # notice, this list of conditions and the following disclaimer. | 7 # notice, this list of conditions and the following disclaimer. |
8 # * Redistributions in binary form must reproduce the above | 8 # * Redistributions in binary form must reproduce the above |
9 # copyright notice, this list of conditions and the following | 9 # copyright notice, this list of conditions and the following |
10 # disclaimer in the documentation and/or other materials provided | 10 # disclaimer in the documentation and/or other materials provided |
(...skipping 490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
501 'help': 'the console to use for the d8 shell' | 501 'help': 'the console to use for the d8 shell' |
502 } | 502 } |
503 } | 503 } |
504 | 504 |
505 | 505 |
506 def GetOptions(): | 506 def GetOptions(): |
507 result = Options() | 507 result = Options() |
508 result.Add('mode', 'compilation mode (debug, release)', 'release') | 508 result.Add('mode', 'compilation mode (debug, release)', 'release') |
509 result.Add('sample', 'build sample (shell, process)', '') | 509 result.Add('sample', 'build sample (shell, process)', '') |
510 result.Add('env', 'override environment settings (NAME1:value1,NAME2:value2)', '') | 510 result.Add('env', 'override environment settings (NAME1:value1,NAME2:value2)', '') |
511 result.Add('importenv', 'import environment settings (NAME1,NAME2)', '') | |
Kevin Millikin (Chromium)
2009/04/02 12:54:11
Might be clearer to have the message string:
'imp
| |
511 for (name, option) in SIMPLE_OPTIONS.iteritems(): | 512 for (name, option) in SIMPLE_OPTIONS.iteritems(): |
512 help = '%s (%s)' % (name, ", ".join(option['values'])) | 513 help = '%s (%s)' % (name, ", ".join(option['values'])) |
513 result.Add(name, help, option.get('default')) | 514 result.Add(name, help, option.get('default')) |
514 return result | 515 return result |
515 | 516 |
516 | 517 |
517 def SplitList(str): | 518 def SplitList(str): |
518 return [ s for s in str.split(",") if len(s) > 0 ] | 519 return [ s for s in str.split(",") if len(s) > 0 ] |
519 | 520 |
520 | 521 |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
619 | 620 |
620 def PostprocessOptions(options): | 621 def PostprocessOptions(options): |
621 # Adjust architecture if the simulator option has been set | 622 # Adjust architecture if the simulator option has been set |
622 if (options['simulator'] != 'none') and (options['arch'] != options['simulator ']): | 623 if (options['simulator'] != 'none') and (options['arch'] != options['simulator ']): |
623 if 'arch' in ARGUMENTS: | 624 if 'arch' in ARGUMENTS: |
624 # Print a warning if arch has explicitly been set | 625 # Print a warning if arch has explicitly been set |
625 print "Warning: forcing architecture to match simulator (%s)" % options['s imulator'] | 626 print "Warning: forcing architecture to match simulator (%s)" % options['s imulator'] |
626 options['arch'] = options['simulator'] | 627 options['arch'] = options['simulator'] |
627 | 628 |
628 | 629 |
629 def ParseEnvOverrides(arg): | 630 def ParseEnvOverrides(arg, imports): |
630 # The environment overrides are in the format NAME1:value1,NAME2:value2 | 631 # The environment overrides are in the format NAME1:value1,NAME2:value2 |
632 # The environment imports are in the format NAME1,NAME2 | |
Kevin Millikin (Chromium)
2009/04/02 12:54:11
Analogously here.
| |
631 overrides = {} | 633 overrides = {} |
634 for var in imports.split(','): | |
635 if var in os.environ: | |
636 overrides[var] = os.environ[var] | |
632 for override in arg.split(','): | 637 for override in arg.split(','): |
633 pos = override.find(':') | 638 pos = override.find(':') |
634 if pos == -1: | 639 if pos == -1: |
635 continue | 640 continue |
636 overrides[override[:pos].strip()] = override[pos+1:].strip() | 641 overrides[override[:pos].strip()] = override[pos+1:].strip() |
637 return overrides | 642 return overrides |
638 | 643 |
639 | 644 |
640 def BuildSpecific(env, mode, env_overrides): | 645 def BuildSpecific(env, mode, env_overrides): |
641 options = {'mode': mode} | 646 options = {'mode': mode} |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
719 context.cctest_targets.append(cctest_program) | 724 context.cctest_targets.append(cctest_program) |
720 | 725 |
721 return context | 726 return context |
722 | 727 |
723 | 728 |
724 def Build(): | 729 def Build(): |
725 opts = GetOptions() | 730 opts = GetOptions() |
726 env = Environment(options=opts) | 731 env = Environment(options=opts) |
727 Help(opts.GenerateHelpText(env)) | 732 Help(opts.GenerateHelpText(env)) |
728 VerifyOptions(env) | 733 VerifyOptions(env) |
729 env_overrides = ParseEnvOverrides(env['env']) | 734 env_overrides = ParseEnvOverrides(env['env'], env['importenv']) |
730 | 735 |
731 SourceSignatures(env['sourcesignatures']) | 736 SourceSignatures(env['sourcesignatures']) |
732 | 737 |
733 libraries = [] | 738 libraries = [] |
734 mksnapshots = [] | 739 mksnapshots = [] |
735 cctests = [] | 740 cctests = [] |
736 samples = [] | 741 samples = [] |
737 d8s = [] | 742 d8s = [] |
738 modes = SplitList(env['mode']) | 743 modes = SplitList(env['mode']) |
739 for mode in modes: | 744 for mode in modes: |
(...skipping 21 matching lines...) Expand all Loading... | |
761 # version of scons. Also, there's a bug in some revisions that | 766 # version of scons. Also, there's a bug in some revisions that |
762 # doesn't allow this flag to be set, so we swallow any exceptions. | 767 # doesn't allow this flag to be set, so we swallow any exceptions. |
763 # Lovely. | 768 # Lovely. |
764 try: | 769 try: |
765 SetOption('warn', 'no-deprecated') | 770 SetOption('warn', 'no-deprecated') |
766 except: | 771 except: |
767 pass | 772 pass |
768 | 773 |
769 | 774 |
770 Build() | 775 Build() |
OLD | NEW |