| OLD | NEW | 
|---|
| 1 # Copyright (c) 2013 Google Inc. All rights reserved. | 1 # Copyright (c) 2013 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 import copy | 5 import copy | 
| 6 import hashlib | 6 import hashlib | 
| 7 import multiprocessing | 7 import multiprocessing | 
| 8 import os.path | 8 import os.path | 
| 9 import re | 9 import re | 
| 10 import signal | 10 import signal | 
| 11 import subprocess | 11 import subprocess | 
| 12 import sys | 12 import sys | 
| 13 import gyp | 13 import gyp | 
| 14 import gyp.common | 14 import gyp.common | 
| 15 import gyp.msvs_emulation | 15 import gyp.msvs_emulation | 
| 16 import gyp.MSVSUtil as MSVSUtil | 16 import gyp.MSVSUtil as MSVSUtil | 
| 17 import gyp.xcode_emulation | 17 import gyp.xcode_emulation | 
|  | 18 from cStringIO import StringIO | 
| 18 | 19 | 
| 19 from gyp.common import GetEnvironFallback | 20 from gyp.common import GetEnvironFallback | 
| 20 import gyp.ninja_syntax as ninja_syntax | 21 import gyp.ninja_syntax as ninja_syntax | 
| 21 | 22 | 
| 22 generator_default_variables = { | 23 generator_default_variables = { | 
| 23   'EXECUTABLE_PREFIX': '', | 24   'EXECUTABLE_PREFIX': '', | 
| 24   'EXECUTABLE_SUFFIX': '', | 25   'EXECUTABLE_SUFFIX': '', | 
| 25   'STATIC_LIB_PREFIX': 'lib', | 26   'STATIC_LIB_PREFIX': 'lib', | 
| 26   'STATIC_LIB_SUFFIX': '.a', | 27   'STATIC_LIB_SUFFIX': '.a', | 
| 27   'SHARED_LIB_PREFIX': 'lib', | 28   'SHARED_LIB_PREFIX': 'lib', | 
| (...skipping 1984 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2012       gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec) | 2013       gyp.xcode_emulation.MergeGlobalXcodeSettingsToSpec(data[build_file], spec) | 
| 2013 | 2014 | 
| 2014     build_file = gyp.common.RelativePath(build_file, options.toplevel_dir) | 2015     build_file = gyp.common.RelativePath(build_file, options.toplevel_dir) | 
| 2015 | 2016 | 
| 2016     base_path = os.path.dirname(build_file) | 2017     base_path = os.path.dirname(build_file) | 
| 2017     obj = 'obj' | 2018     obj = 'obj' | 
| 2018     if toolset != 'target': | 2019     if toolset != 'target': | 
| 2019       obj += '.' + toolset | 2020       obj += '.' + toolset | 
| 2020     output_file = os.path.join(obj, base_path, name + '.ninja') | 2021     output_file = os.path.join(obj, base_path, name + '.ninja') | 
| 2021 | 2022 | 
|  | 2023     ninja_output = StringIO() | 
| 2022     writer = NinjaWriter(qualified_target, target_outputs, base_path, build_dir, | 2024     writer = NinjaWriter(qualified_target, target_outputs, base_path, build_dir, | 
| 2023                          OpenOutput(os.path.join(toplevel_build, output_file)), | 2025                          ninja_output, | 
| 2024                          toplevel_build, output_file, | 2026                          toplevel_build, output_file, | 
| 2025                          flavor, toplevel_dir=options.toplevel_dir) | 2027                          flavor, toplevel_dir=options.toplevel_dir) | 
| 2026     master_ninja.subninja(output_file) | 2028     target = writer.WriteSpec(spec, config_name, generator_flags) | 
| 2027 | 2029 | 
| 2028     target = writer.WriteSpec(spec, config_name, generator_flags) | 2030     if ninja_output.tell() > 0: | 
|  | 2031       # Only create files for ninja files that actually have contents. | 
|  | 2032       with OpenOutput(os.path.join(toplevel_build, output_file)) as ninja_file: | 
|  | 2033         ninja_file.write(ninja_output.getvalue()) | 
|  | 2034       ninja_output.close() | 
|  | 2035       master_ninja.subninja(output_file) | 
|  | 2036 | 
| 2029     if target: | 2037     if target: | 
| 2030       if name != target.FinalOutput() and spec['toolset'] == 'target': | 2038       if name != target.FinalOutput() and spec['toolset'] == 'target': | 
| 2031         target_short_names.setdefault(name, []).append(target) | 2039         target_short_names.setdefault(name, []).append(target) | 
| 2032       target_outputs[qualified_target] = target | 2040       target_outputs[qualified_target] = target | 
| 2033       if qualified_target in all_targets: | 2041       if qualified_target in all_targets: | 
| 2034         all_outputs.add(target.FinalOutput()) | 2042         all_outputs.add(target.FinalOutput()) | 
| 2035 | 2043 | 
| 2036   if target_short_names: | 2044   if target_short_names: | 
| 2037     # Write a short name to build this target.  This benefits both the | 2045     # Write a short name to build this target.  This benefits both the | 
| 2038     # "build chrome" case as well as the gyp tests, which expect to be | 2046     # "build chrome" case as well as the gyp tests, which expect to be | 
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 2087           arglists.append( | 2095           arglists.append( | 
| 2088               (target_list, target_dicts, data, params, config_name)) | 2096               (target_list, target_dicts, data, params, config_name)) | 
| 2089         pool.map(CallGenerateOutputForConfig, arglists) | 2097         pool.map(CallGenerateOutputForConfig, arglists) | 
| 2090       except KeyboardInterrupt, e: | 2098       except KeyboardInterrupt, e: | 
| 2091         pool.terminate() | 2099         pool.terminate() | 
| 2092         raise e | 2100         raise e | 
| 2093     else: | 2101     else: | 
| 2094       for config_name in config_names: | 2102       for config_name in config_names: | 
| 2095         GenerateOutputForConfig(target_list, target_dicts, data, params, | 2103         GenerateOutputForConfig(target_list, target_dicts, data, params, | 
| 2096                                 config_name) | 2104                                 config_name) | 
| OLD | NEW | 
|---|