aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/backends.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-01-28 19:05:54 +0200
committerGitHub <noreply@github.com>2017-01-28 19:05:54 +0200
commit4a08841331cf0bb281ff5fa37ac106b539423140 (patch)
treeb9f14dbee8c924d8910af2b8607dee438f6ee779 /mesonbuild/backend/backends.py
parent6357ad0cd051d56deeb6c029a436b47b1f5216ae (diff)
parent534ee8baa8b807b2adf52937a4672897f1a6d8cb (diff)
downloadmeson-4a08841331cf0bb281ff5fa37ac106b539423140.zip
meson-4a08841331cf0bb281ff5fa37ac106b539423140.tar.gz
meson-4a08841331cf0bb281ff5fa37ac106b539423140.tar.bz2
Merge pull request #1335 from tp-m/test-custom-target-used-in-test-cmd
tests: check custom target output is created before being used in a t…
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r--mesonbuild/backend/backends.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index 4988f28..46f8563 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -544,6 +544,29 @@ class Backend:
newargs.append(arg)
return newargs
+ def get_build_by_default_targets(self):
+ result = {}
+ # Get all build and custom targets that must be built by default
+ for name, t in self.build.get_targets().items():
+ if t.build_by_default or t.install or t.build_always:
+ result[name] = t
+ # Get all targets used as test executables and arguments. These must
+ # also be built by default. XXX: Sometime in the future these should be
+ # built only before running tests.
+ for t in self.build.get_tests():
+ exe = t.exe
+ if hasattr(exe, 'held_object'):
+ exe = exe.held_object
+ if isinstance(exe, (build.CustomTarget, build.BuildTarget)):
+ result[exe.get_id()] = exe
+ for arg in t.cmd_args:
+ if hasattr(arg, 'held_object'):
+ arg = arg.held_object
+ if not isinstance(arg, (build.CustomTarget, build.BuildTarget)):
+ continue
+ result[arg.get_id()] = arg
+ return result
+
def get_custom_target_provided_libraries(self, target):
libs = []
for t in target.get_generated_sources():