diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2015-02-07 14:48:38 +0200 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2015-02-07 14:48:38 +0200 |
commit | bf5466e7ef1d580ba26df16a6018412c7b2e2139 (patch) | |
tree | b5869cd3198adfacbdfeded8b939710ca1754034 | |
parent | 24484412b570f53e447b81017a15ec23b6417106 (diff) | |
download | meson-bf5466e7ef1d580ba26df16a6018412c7b2e2139.zip meson-bf5466e7ef1d580ba26df16a6018412c7b2e2139.tar.gz meson-bf5466e7ef1d580ba26df16a6018412c7b2e2139.tar.bz2 |
An implementation of build_always as slightly modified from the original by Axel Waggershauser.
-rw-r--r-- | authors.txt | 1 | ||||
-rw-r--r-- | build.py | 6 | ||||
-rw-r--r-- | ninjabackend.py | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/authors.txt b/authors.txt index e3652c8..85a4770 100644 --- a/authors.txt +++ b/authors.txt @@ -9,3 +9,4 @@ Peter Koval Masashi Fujita Juhani Simola Robin McCorkell +Axel Waggershauser @@ -667,7 +667,8 @@ class CustomTarget: 'output' : True, 'command' : True, 'install' : True, - 'install_dir' : True} + 'install_dir' : True, + 'build_always' : True} def __init__(self, name, subdir, kwargs): self.name = name self.subdir = subdir @@ -740,6 +741,9 @@ class CustomTarget: raise InvalidArguments('"install_dir" must be a string.') else: self.install = False + self.build_always = kwargs.get('build_always', True) + if not isinstance(self.build_always, bool): + raise InvalidArguments('Argument build_always must be a boolean.') def get_basename(self): return self.name diff --git a/ninjabackend.py b/ninjabackend.py index abb2760..fb7dfae 100644 --- a/ninjabackend.py +++ b/ninjabackend.py @@ -281,6 +281,8 @@ class NinjaBackend(backends.Backend): deps = [os.path.join(i.get_subdir(), self.hackety_hack(i.get_filename())) for i in target.get_dependencies()] srcs = [os.path.join(self.build_to_src, target.subdir, i) for i in target.sources] deps += srcs + if target.build_always: + deps.append('PHONY') elem = NinjaBuildElement(ofilenames, 'CUSTOM_COMMAND', deps) cmd = [] for i in target.command: |