Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 # Copyright (c) 2014 Google Inc. All rights reserved. | 1 # Copyright (c) 2014 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 """ | 5 """ |
| 6 This script is intended for use as a GYP_GENERATOR. It takes as input (by way of | 6 This script is intended for use as a GYP_GENERATOR. It takes as input (by way of |
| 7 the generator flag config_path) the path of a json file that dictates the files | 7 the generator flag config_path) the path of a json file that dictates the files |
| 8 and targets to search for. The following keys are supported: | 8 and targets to search for. The following keys are supported: |
| 9 files: list of paths (relative) of the files to search for. | 9 files: list of paths (relative) of the files to search for. |
| 10 targets: list of targets to search for. The target names are unqualified. | 10 targets: list of targets to search for. The target names are unqualified. |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 105 directories in |base_path|. Additionally each source may contain variables. | 105 directories in |base_path|. Additionally each source may contain variables. |
| 106 Such sources are ignored as it is assumed dependencies on them are expressed | 106 Such sources are ignored as it is assumed dependencies on them are expressed |
| 107 and tracked in some other means.""" | 107 and tracked in some other means.""" |
| 108 # NOTE: gyp paths are always posix style. | 108 # NOTE: gyp paths are always posix style. |
| 109 for source in sources: | 109 for source in sources: |
| 110 if not len(source) or source.startswith('!!!') or source.startswith('$'): | 110 if not len(source) or source.startswith('!!!') or source.startswith('$'): |
| 111 continue | 111 continue |
| 112 # variable expansion may lead to //. | 112 # variable expansion may lead to //. |
| 113 org_source = source | 113 org_source = source |
| 114 source = source[0] + source[1:].replace('//', '/') | 114 source = source[0] + source[1:].replace('//', '/') |
| 115 if source.startswith('../'): | 115 if source.startswith('../'): |
|
sky
2015/04/27 15:05:52
I wonder if we should special case ./ here?
| |
| 116 source = _ResolveParent(source, base_path_components) | 116 source = _ResolveParent(source, base_path_components) |
| 117 if len(source): | 117 if len(source): |
| 118 result.append(source) | 118 result.append(source) |
| 119 continue | 119 continue |
| 120 result.append(base_path + source) | 120 result.append(base_path + source) |
| 121 if debug: | 121 if debug: |
| 122 print 'AddSource', org_source, result[len(result) - 1] | 122 print 'AddSource', org_source, result[len(result) - 1] |
| 123 | 123 |
| 124 | 124 |
| 125 def _ExtractSourcesFromAction(action, base_path, base_path_components, | 125 def _ExtractSourcesFromAction(action, base_path, base_path_components, |
| (...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 322 # If a build file (or any of its included files) is modified we assume all | 322 # If a build file (or any of its included files) is modified we assume all |
| 323 # targets in the file are modified. | 323 # targets in the file are modified. |
| 324 if build_file_in_files[build_file]: | 324 if build_file_in_files[build_file]: |
| 325 print 'matching target from modified build file', target_name | 325 print 'matching target from modified build file', target_name |
| 326 target.match_status = MATCH_STATUS_MATCHES | 326 target.match_status = MATCH_STATUS_MATCHES |
| 327 matching_targets.append(target) | 327 matching_targets.append(target) |
| 328 else: | 328 else: |
| 329 sources = _ExtractSources(target_name, target_dicts[target_name], | 329 sources = _ExtractSources(target_name, target_dicts[target_name], |
| 330 toplevel_dir) | 330 toplevel_dir) |
| 331 for source in sources: | 331 for source in sources: |
| 332 if source in files: | 332 if os.path.normpath(source) in files: |
| 333 print 'target', target_name, 'matches', source | 333 print 'target', target_name, 'matches', source |
| 334 target.match_status = MATCH_STATUS_MATCHES | 334 target.match_status = MATCH_STATUS_MATCHES |
| 335 matching_targets.append(target) | 335 matching_targets.append(target) |
| 336 break | 336 break |
| 337 | 337 |
| 338 # Add dependencies to visit as well as updating back pointers for deps. | 338 # Add dependencies to visit as well as updating back pointers for deps. |
| 339 for dep in target_dicts[target_name].get('dependencies', []): | 339 for dep in target_dicts[target_name].get('dependencies', []): |
| 340 targets_to_visit.append(dep) | 340 targets_to_visit.append(dep) |
| 341 | 341 |
| 342 created_dep_target, dep_target = _GetOrCreateTargetByName(targets, dep) | 342 created_dep_target, dep_target = _GetOrCreateTargetByName(targets, dep) |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 560 result_dict = { 'targets': matched_search_targets, | 560 result_dict = { 'targets': matched_search_targets, |
| 561 'status': found_dependency_string if matching_targets else | 561 'status': found_dependency_string if matching_targets else |
| 562 no_dependency_string, | 562 no_dependency_string, |
| 563 'build_targets': build_targets} | 563 'build_targets': build_targets} |
| 564 if invalid_targets: | 564 if invalid_targets: |
| 565 result_dict['invalid_targets'] = invalid_targets | 565 result_dict['invalid_targets'] = invalid_targets |
| 566 _WriteOutput(params, **result_dict) | 566 _WriteOutput(params, **result_dict) |
| 567 | 567 |
| 568 except Exception as e: | 568 except Exception as e: |
| 569 _WriteOutput(params, error=str(e)) | 569 _WriteOutput(params, error=str(e)) |
| OLD | NEW |