aboutsummaryrefslogtreecommitdiff
path: root/generators.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-02-16 21:14:04 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2013-02-16 21:14:04 +0200
commitb0da1037290d555e80620c89e42a1cbc380aacbd (patch)
tree338a021b4b71fb765340cae76e39ee20e4652512 /generators.py
parentd95510a71fb55ffefcae8f1d772304f1af29f954 (diff)
downloadmeson-b0da1037290d555e80620c89e42a1cbc380aacbd.zip
meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.gz
meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.bz2
Regenerate build info if definition files change.
Diffstat (limited to 'generators.py')
-rwxr-xr-xgenerators.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/generators.py b/generators.py
index 05f5666..2da5d68 100755
--- a/generators.py
+++ b/generators.py
@@ -253,7 +253,6 @@ class NinjaGenerator(Generator):
datafile.write(self.get_target_filename(t.get_exe()) + '\n')
datafile.close()
-
def generate_rules(self, outfile):
outfile.write('# Rules for compiling.\n\n')
self.generate_compile_rules(outfile)
@@ -264,6 +263,11 @@ class NinjaGenerator(Generator):
outfile.write('rule CUSTOM_COMMAND\n')
outfile.write(' command = $COMMAND\n')
outfile.write(' restat = 1\n\n')
+ outfile.write('rule REGENERATE_BUILD\n')
+ c = (ninja_quote(self.environment.get_builder_command()),
+ ninja_quote(self.environment.get_source_dir()),
+ ninja_quote(self.environment.get_build_dir()))
+ outfile.write(" command = '%s' '%s' '%s' -G ninja\n\n" % c)
def generate_static_link_rules(self, outfile):
static_linker = self.build.static_linker
@@ -415,6 +419,13 @@ class NinjaGenerator(Generator):
default = 'default all\n\n'
outfile.write(build)
outfile.write(default)
+ deps = [ ninja_quote(os.path.join(self.build_to_src, df)) \
+ for df in self.interpreter.get_build_def_files()]
+ depstr = ' '.join(deps)
+ buildregen = 'build build.ninja: REGENERATE_BUILD | %s\n\n' % depstr
+ ignore_missing = 'build %s: phony\n\n' % depstr
+ outfile.write(buildregen)
+ outfile.write(ignore_missing)
class ShellGenerator(Generator):
def __init__(self, build, interp):