summaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
authorEvan Martin <martine@danga.com>2014-11-14 18:53:33 (GMT)
committerEvan Martin <martine@danga.com>2014-11-18 16:15:37 (GMT)
commitdcd41dcef3020e5c2cbe5c29b5b1d71e581de029 (patch)
tree2c06a6a2a1dc38270586ba8e5cd5546396f1ed12 /misc
parent76a95e45bba61b617dfac14e83cb6229a4e4e897 (diff)
downloadNinja-dcd41dcef3020e5c2cbe5c29b5b1d71e581de029.zip
Ninja-dcd41dcef3020e5c2cbe5c29b5b1d71e581de029.tar.gz
Ninja-dcd41dcef3020e5c2cbe5c29b5b1d71e581de029.tar.bz2
add a --bootstrap mode for configure.py
Instead of bootstrapping through a separate script, instead make configure.py able to either generate a build.ninja *or* just execute all the computed commands to build a ninja binary.
Diffstat (limited to 'misc')
-rw-r--r--misc/ninja_syntax.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/misc/ninja_syntax.py b/misc/ninja_syntax.py
index e200514..8673518 100644
--- a/misc/ninja_syntax.py
+++ b/misc/ninja_syntax.py
@@ -60,16 +60,16 @@ class Writer(object):
def build(self, outputs, rule, inputs=None, implicit=None, order_only=None,
variables=None):
- outputs = self._as_list(outputs)
+ outputs = as_list(outputs)
out_outputs = [escape_path(x) for x in outputs]
- all_inputs = [escape_path(x) for x in self._as_list(inputs)]
+ all_inputs = [escape_path(x) for x in as_list(inputs)]
if implicit:
- implicit = [escape_path(x) for x in self._as_list(implicit)]
+ implicit = [escape_path(x) for x in as_list(implicit)]
all_inputs.append('|')
all_inputs.extend(implicit)
if order_only:
- order_only = [escape_path(x) for x in self._as_list(order_only)]
+ order_only = [escape_path(x) for x in as_list(order_only)]
all_inputs.append('||')
all_inputs.extend(order_only)
@@ -94,7 +94,7 @@ class Writer(object):
self._line('subninja %s' % path)
def default(self, paths):
- self._line('default %s' % ' '.join(self._as_list(paths)))
+ self._line('default %s' % ' '.join(as_list(paths)))
def _count_dollars_before_index(self, s, i):
"""Returns the number of '$' characters right in front of s[i]."""
@@ -141,12 +141,16 @@ class Writer(object):
self.output.write(leading_space + text + '\n')
- def _as_list(self, input):
- if input is None:
- return []
- if isinstance(input, list):
- return input
- return [input]
+ def close(self):
+ self.output.close()
+
+
+def as_list(input):
+ if input is None:
+ return []
+ if isinstance(input, list):
+ return input
+ return [input]
def escape(string):