aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2015-02-07 14:48:38 +0200
committerJussi Pakkanen <jpakkane@gmail.com>2015-02-07 14:48:38 +0200
commitbf5466e7ef1d580ba26df16a6018412c7b2e2139 (patch)
treeb5869cd3198adfacbdfeded8b939710ca1754034
parent24484412b570f53e447b81017a15ec23b6417106 (diff)
downloadmeson-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.txt1
-rw-r--r--build.py6
-rw-r--r--ninjabackend.py2
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
diff --git a/build.py b/build.py
index d60c503..a4fd63f 100644
--- a/build.py
+++ b/build.py
@@ -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: