OLD | NEW |
1 #!/usr/bin/python2.4 | 1 #!/usr/bin/python2.4 |
2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. | 2 # Copyright (c) 2011 The Native Client Authors. All rights reserved. |
3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
5 # | 5 # |
6 # Redistribution and use in source and binary forms, with or without | 6 # Redistribution and use in source and binary forms, with or without |
7 # modification, are permitted provided that the following conditions are | 7 # modification, are permitted provided that the following conditions are |
8 # met: | 8 # met: |
9 # | 9 # |
10 # * Redistributions of source code must retain the above copyright | 10 # * Redistributions of source code must retain the above copyright |
(...skipping 481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
492 # always linked in by the toolchain, i.e. startup files and -lc and such. | 492 # always linked in by the toolchain, i.e. startup files and -lc and such. |
493 if 'IMPLICIT_LIBS' in env: | 493 if 'IMPLICIT_LIBS' in env: |
494 env.Depends(out_nodes, env['IMPLICIT_LIBS']) | 494 env.Depends(out_nodes, env['IMPLICIT_LIBS']) |
495 | 495 |
496 # Publish output | 496 # Publish output |
497 env.Publish(prog_name, 'run', out_nodes[0]) | 497 env.Publish(prog_name, 'run', out_nodes[0]) |
498 env.Publish(prog_name, 'debug', out_nodes[1:]) | 498 env.Publish(prog_name, 'debug', out_nodes[1:]) |
499 | 499 |
500 # Add an alias to build the program to the right groups | 500 # Add an alias to build the program to the right groups |
501 a = env.Alias(prog_name, out_nodes) | 501 a = env.Alias(prog_name, out_nodes) |
502 for group in env['COMPONENT_PROGRAM_GROUPS']: | 502 env.ComponentProgramAlias(a) |
503 SCons.Script.Alias(group, a) | |
504 | 503 |
505 # Store list of components for this program | 504 # Store list of components for this program |
506 env._StoreComponents(prog_name) | 505 env._StoreComponents(prog_name) |
507 | 506 |
508 # Let component_targets know this target is available in the current mode | 507 # Let component_targets know this target is available in the current mode |
509 env.SetTargetProperty(prog_name, TARGET_PATH=out_nodes[0]) | 508 env.SetTargetProperty(prog_name, TARGET_PATH=out_nodes[0]) |
510 | 509 |
511 # Set up deferred call to replicate resources | 510 # Set up deferred call to replicate resources |
512 env.Defer(ComponentProgramDeferred) | 511 env.Defer(ComponentProgramDeferred) |
513 | 512 |
514 # Return the executable | 513 # Return the executable |
515 return out_nodes[0] | 514 return out_nodes[0] |
516 | 515 |
| 516 def ComponentProgramAlias(self, program): |
| 517 for group in self['COMPONENT_PROGRAM_GROUPS']: |
| 518 SCons.Script.Alias(group, program) |
| 519 |
517 #------------------------------------------------------------------------------ | 520 #------------------------------------------------------------------------------ |
518 | 521 |
519 | 522 |
520 def ComponentTestOutput(self, test_name, nodes, **kwargs): | 523 def ComponentTestOutput(self, test_name, nodes, **kwargs): |
521 """Pseudo-builder for test output. | 524 """Pseudo-builder for test output. |
522 | 525 |
523 Args: | 526 Args: |
524 self: Environment in which we were called. | 527 self: Environment in which we were called. |
525 test_name: Test name. | 528 test_name: Test name. |
526 nodes: List of files/Nodes output by the test. | 529 nodes: List of files/Nodes output by the test. |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
632 # Defer per-environment initialization, but do before building SConscripts | 635 # Defer per-environment initialization, but do before building SConscripts |
633 env.Defer(_InitializeComponentBuilders) | 636 env.Defer(_InitializeComponentBuilders) |
634 env.Defer('BuildEnvironmentSConscripts', after=_InitializeComponentBuilders) | 637 env.Defer('BuildEnvironmentSConscripts', after=_InitializeComponentBuilders) |
635 | 638 |
636 # Add our pseudo-builder methods | 639 # Add our pseudo-builder methods |
637 env.AddMethod(_StoreComponents) | 640 env.AddMethod(_StoreComponents) |
638 env.AddMethod(ComponentPackage) | 641 env.AddMethod(ComponentPackage) |
639 env.AddMethod(ComponentObject) | 642 env.AddMethod(ComponentObject) |
640 env.AddMethod(ComponentLibrary) | 643 env.AddMethod(ComponentLibrary) |
641 env.AddMethod(ComponentProgram) | 644 env.AddMethod(ComponentProgram) |
| 645 env.AddMethod(ComponentProgramAlias) |
642 env.AddMethod(ComponentTestProgram) | 646 env.AddMethod(ComponentTestProgram) |
643 env.AddMethod(ComponentTestOutput) | 647 env.AddMethod(ComponentTestOutput) |
644 | 648 |
645 # Add our target groups | 649 # Add our target groups |
646 AddTargetGroup('all_libraries', 'libraries can be built') | 650 AddTargetGroup('all_libraries', 'libraries can be built') |
647 AddTargetGroup('all_programs', 'programs can be built') | 651 AddTargetGroup('all_programs', 'programs can be built') |
648 AddTargetGroup('all_test_programs', 'tests can be built') | 652 AddTargetGroup('all_test_programs', 'tests can be built') |
649 AddTargetGroup('all_packages', 'packages can be built') | 653 AddTargetGroup('all_packages', 'packages can be built') |
650 AddTargetGroup('run_all_tests', 'tests can be run') | 654 AddTargetGroup('run_all_tests', 'tests can be run') |
651 AddTargetGroup('run_disabled_tests', 'tests are disabled') | 655 AddTargetGroup('run_disabled_tests', 'tests are disabled') |
652 AddTargetGroup('run_small_tests', 'small tests can be run') | 656 AddTargetGroup('run_small_tests', 'small tests can be run') |
653 AddTargetGroup('run_medium_tests', 'medium tests can be run') | 657 AddTargetGroup('run_medium_tests', 'medium tests can be run') |
654 AddTargetGroup('run_large_tests', 'large tests can be run') | 658 AddTargetGroup('run_large_tests', 'large tests can be run') |
OLD | NEW |