OLD | NEW |
---|---|
1 # Copyright (c) 2012 Google Inc. All rights reserved. | 1 # Copyright (c) 2012 Google Inc. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 from compiler.ast import Const | 5 from compiler.ast import Const |
6 from compiler.ast import Dict | 6 from compiler.ast import Dict |
7 from compiler.ast import Discard | 7 from compiler.ast import Discard |
8 from compiler.ast import List | 8 from compiler.ast import List |
9 from compiler.ast import Module | 9 from compiler.ast import Module |
10 from compiler.ast import Node | 10 from compiler.ast import Node |
(...skipping 2499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2510 # Prepare a key like 'path/to:target_name'. | 2510 # Prepare a key like 'path/to:target_name'. |
2511 key = subdir + ':' + name | 2511 key = subdir + ':' + name |
2512 if key in used: | 2512 if key in used: |
2513 # Complain if this target is already used. | 2513 # Complain if this target is already used. |
2514 raise GypError('Duplicate target name "%s" in directory "%s" used both ' | 2514 raise GypError('Duplicate target name "%s" in directory "%s" used both ' |
2515 'in "%s" and "%s".' % (name, subdir, gyp, used[key])) | 2515 'in "%s" and "%s".' % (name, subdir, gyp, used[key])) |
2516 used[key] = gyp | 2516 used[key] = gyp |
2517 | 2517 |
2518 | 2518 |
2519 def Load(build_files, variables, includes, depth, generator_input_info, check, | 2519 def Load(build_files, variables, includes, depth, generator_input_info, check, |
2520 circular_check, parallel): | 2520 circular_check, allow_duplicates, parallel): |
2521 # Set up path_sections and non_configuration_keys with the default data plus | 2521 # Set up path_sections and non_configuration_keys with the default data plus |
2522 # the generator-specifc data. | 2522 # the generator-specifc data. |
2523 global path_sections | 2523 global path_sections |
2524 path_sections = base_path_sections[:] | 2524 path_sections = base_path_sections[:] |
2525 path_sections.extend(generator_input_info['path_sections']) | 2525 path_sections.extend(generator_input_info['path_sections']) |
2526 | 2526 |
2527 global non_configuration_keys | 2527 global non_configuration_keys |
2528 non_configuration_keys = base_non_configuration_keys[:] | 2528 non_configuration_keys = base_non_configuration_keys[:] |
2529 non_configuration_keys.extend(generator_input_info['non_configuration_keys']) | 2529 non_configuration_keys.extend(generator_input_info['non_configuration_keys']) |
2530 | 2530 |
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2650 target_dict, PHASE_LATELATE, variables, build_file) | 2650 target_dict, PHASE_LATELATE, variables, build_file) |
2651 | 2651 |
2652 # Make sure that the rules make sense, and build up rule_sources lists as | 2652 # Make sure that the rules make sense, and build up rule_sources lists as |
2653 # needed. Not all generators will need to use the rule_sources lists, but | 2653 # needed. Not all generators will need to use the rule_sources lists, but |
2654 # some may, and it seems best to build the list in a common spot. | 2654 # some may, and it seems best to build the list in a common spot. |
2655 # Also validate actions and run_as elements in targets. | 2655 # Also validate actions and run_as elements in targets. |
2656 for target in flat_list: | 2656 for target in flat_list: |
2657 target_dict = targets[target] | 2657 target_dict = targets[target] |
2658 build_file = gyp.common.BuildFile(target) | 2658 build_file = gyp.common.BuildFile(target) |
2659 ValidateTargetType(target, target_dict) | 2659 ValidateTargetType(target, target_dict) |
2660 # TODO(thakis): Get vpx_scale/arm/scalesystemdependent.c to be renamed to | 2660 if not allow_duplicates: |
2661 # scalesystemdependent_arm_additions.c or similar. | 2661 # TODO(thakis): Get vpx_scale/arm/scalesystemdependent.c to be renamed to |
2662 if 'arm' not in variables.get('target_arch', ''): | 2662 # scalesystemdependent_arm_additions.c or similar. |
2663 ValidateSourcesInTarget(target, target_dict, build_file) | 2663 if 'arm' not in variables.get('target_arch', ''): |
Sam Clegg
2013/01/29 18:55:15
Could we have some gyp variable / define that we c
| |
2664 ValidateSourcesInTarget(target, target_dict, build_file) | |
2664 ValidateRulesInTarget(target, target_dict, extra_sources_for_rules) | 2665 ValidateRulesInTarget(target, target_dict, extra_sources_for_rules) |
2665 ValidateRunAsInTarget(target, target_dict, build_file) | 2666 ValidateRunAsInTarget(target, target_dict, build_file) |
2666 ValidateActionsInTarget(target, target_dict, build_file) | 2667 ValidateActionsInTarget(target, target_dict, build_file) |
2667 | 2668 |
2668 # Generators might not expect ints. Turn them into strs. | 2669 # Generators might not expect ints. Turn them into strs. |
2669 TurnIntIntoStrInDict(data) | 2670 TurnIntIntoStrInDict(data) |
2670 | 2671 |
2671 # TODO(mark): Return |data| for now because the generator needs a list of | 2672 # TODO(mark): Return |data| for now because the generator needs a list of |
2672 # build files that came in. In the future, maybe it should just accept | 2673 # build files that came in. In the future, maybe it should just accept |
2673 # a list, and not the whole data dict. | 2674 # a list, and not the whole data dict. |
2674 return [flat_list, targets, data] | 2675 return [flat_list, targets, data] |
OLD | NEW |