summaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
authorNicolas Despres <nicolas.despres@gmail.com>2016-02-06 08:37:51 (GMT)
committerNicolas Despres <nicolas.despres@gmail.com>2016-02-06 08:37:51 (GMT)
commitd3c7da58930fd5985712e4410b271086eef02b37 (patch)
tree82d34384689a9ef1eb2b49948c1fe081ee4e4048 /misc
parentbc4f7bf75271601d7fcec04109bf1e4af4c66ad5 (diff)
downloadNinja-d3c7da58930fd5985712e4410b271086eef02b37.zip
Ninja-d3c7da58930fd5985712e4410b271086eef02b37.tar.gz
Ninja-d3c7da58930fd5985712e4410b271086eef02b37.tar.bz2
Add support for implicit outputs in ninja_syntax.py.
Diffstat (limited to 'misc')
-rw-r--r--misc/ninja_syntax.py7
-rwxr-xr-xmisc/ninja_syntax_test.py7
2 files changed, 13 insertions, 1 deletions
diff --git a/misc/ninja_syntax.py b/misc/ninja_syntax.py
index 73d2209..5c52ea2 100644
--- a/misc/ninja_syntax.py
+++ b/misc/ninja_syntax.py
@@ -60,7 +60,7 @@ class Writer(object):
self.variable('deps', deps, indent=1)
def build(self, outputs, rule, inputs=None, implicit=None, order_only=None,
- variables=None):
+ variables=None, implicit_outputs=None):
outputs = as_list(outputs)
out_outputs = [escape_path(x) for x in outputs]
all_inputs = [escape_path(x) for x in as_list(inputs)]
@@ -73,6 +73,11 @@ class Writer(object):
order_only = [escape_path(x) for x in as_list(order_only)]
all_inputs.append('||')
all_inputs.extend(order_only)
+ if implicit_outputs:
+ implicit_outputs = [escape_path(x)
+ for x in as_list(implicit_outputs)]
+ out_outputs.append('|')
+ out_outputs.extend(implicit_outputs)
self._line('build %s: %s' % (' '.join(out_outputs),
' '.join([rule] + all_inputs)))
diff --git a/misc/ninja_syntax_test.py b/misc/ninja_syntax_test.py
index c9755b8..07e3ed3 100755
--- a/misc/ninja_syntax_test.py
+++ b/misc/ninja_syntax_test.py
@@ -154,6 +154,13 @@ build out: cc in
''',
self.out.getvalue())
+ def test_implicit_outputs(self):
+ self.n.build('o', 'cc', 'i', implicit_outputs='io')
+ self.assertEqual('''\
+build o | io: cc i
+''',
+ self.out.getvalue())
+
class TestExpand(unittest.TestCase):
def test_basic(self):
vars = {'x': 'X'}