aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAxel Waggershauser <awagger@gmail.com>2015-02-05 23:35:49 +0100
committerAxel Waggershauser <awagger@gmail.com>2015-02-05 23:35:49 +0100
commit963892a7c339ffa3d5b15a13e98b170f6ca85427 (patch)
treeea7767ce4e4a07faf1760352484a3d05c3c1b1ad
parent67ddeb8a01d094f6826d967ea8f2c9f9c35e745e (diff)
downloadmeson-963892a7c339ffa3d5b15a13e98b170f6ca85427.zip
meson-963892a7c339ffa3d5b15a13e98b170f6ca85427.tar.gz
meson-963892a7c339ffa3d5b15a13e98b170f6ca85427.tar.bz2
basic support for 'build_always' feature of custom targets
-rw-r--r--build.py4
-rw-r--r--ninjabackend.py2
2 files changed, 5 insertions, 1 deletions
diff --git a/build.py b/build.py
index d60c503..7b05f19 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,7 @@ class CustomTarget:
raise InvalidArguments('"install_dir" must be a string.')
else:
self.install = False
+ self.build_always = kwargs.get('build_always', False)
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: