Index: pylib/gyp/generator/ninja.py |
=================================================================== |
--- pylib/gyp/generator/ninja.py (revision 1718) |
+++ pylib/gyp/generator/ninja.py (working copy) |
@@ -15,6 +15,7 @@ |
import gyp.msvs_emulation |
import gyp.MSVSUtil as MSVSUtil |
import gyp.xcode_emulation |
+from cStringIO import StringIO |
from gyp.common import GetEnvironFallback |
import gyp.ninja_syntax as ninja_syntax |
@@ -2019,13 +2020,20 @@ |
obj += '.' + toolset |
output_file = os.path.join(obj, base_path, name + '.ninja') |
+ ninja_output = StringIO() |
writer = NinjaWriter(qualified_target, target_outputs, base_path, build_dir, |
- OpenOutput(os.path.join(toplevel_build, output_file)), |
+ ninja_output, |
toplevel_build, output_file, |
flavor, toplevel_dir=options.toplevel_dir) |
- master_ninja.subninja(output_file) |
+ target = writer.WriteSpec(spec, config_name, generator_flags) |
- target = writer.WriteSpec(spec, config_name, generator_flags) |
+ if ninja_output.tell() > 0: |
+ # Only create files for ninja files that actually have contents. |
+ with OpenOutput(os.path.join(toplevel_build, output_file)) as ninja_file: |
+ ninja_file.write(ninja_output.getvalue()) |
+ ninja_output.close() |
+ master_ninja.subninja(output_file) |
+ |
if target: |
if name != target.FinalOutput() and spec['toolset'] == 'target': |
target_short_names.setdefault(name, []).append(target) |