diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-16 21:14:04 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2013-02-16 21:14:04 +0200 |
commit | b0da1037290d555e80620c89e42a1cbc380aacbd (patch) | |
tree | 338a021b4b71fb765340cae76e39ee20e4652512 /generators.py | |
parent | d95510a71fb55ffefcae8f1d772304f1af29f954 (diff) | |
download | meson-b0da1037290d555e80620c89e42a1cbc380aacbd.zip meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.gz meson-b0da1037290d555e80620c89e42a1cbc380aacbd.tar.bz2 |
Regenerate build info if definition files change.
Diffstat (limited to 'generators.py')
-rwxr-xr-x | generators.py | 13 |
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): |