aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/backend/backends.py5
-rw-r--r--test cases/unit/65 alias target/meson.build2
-rw-r--r--test cases/unit/65 alias target/subdir/meson.build6
-rw-r--r--unittests/allplatformstests.py2
4 files changed, 14 insertions, 1 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index b119377..f8ccdbe 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -358,7 +358,10 @@ class Backend:
@lru_cache(maxsize=None)
def get_target_dir(self, target: T.Union[build.Target, build.CustomTargetIndex]) -> str:
- if self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
+ if isinstance(target, build.RunTarget):
+ # this produces no output, only a dummy top-level name
+ dirname = ''
+ elif self.environment.coredata.get_option(OptionKey('layout')) == 'mirror':
dirname = target.get_subdir()
else:
dirname = 'meson-out'
diff --git a/test cases/unit/65 alias target/meson.build b/test cases/unit/65 alias target/meson.build
index 6934cc7..bcd4005 100644
--- a/test cases/unit/65 alias target/meson.build
+++ b/test cases/unit/65 alias target/meson.build
@@ -13,3 +13,5 @@ custom_target = custom_target('custom-target',
)
alias_target('build-all', [exe_target, custom_target])
+
+subdir('subdir')
diff --git a/test cases/unit/65 alias target/subdir/meson.build b/test cases/unit/65 alias target/subdir/meson.build
new file mode 100644
index 0000000..b3f5480
--- /dev/null
+++ b/test cases/unit/65 alias target/subdir/meson.build
@@ -0,0 +1,6 @@
+r = run_target('run-target',
+ command: [python3, '-c', 'print("a run target was here")']
+)
+
+alias_target('aliased-run', r)
+
diff --git a/unittests/allplatformstests.py b/unittests/allplatformstests.py
index 828ca58..fd88a27 100644
--- a/unittests/allplatformstests.py
+++ b/unittests/allplatformstests.py
@@ -3076,6 +3076,8 @@ class AllPlatformTests(BasePlatformTests):
self.run_target('build-all')
self.assertPathExists(os.path.join(self.builddir, 'prog' + exe_suffix))
self.assertPathExists(os.path.join(self.builddir, 'hello.txt'))
+ out = self.run_target('aliased-run')
+ self.assertIn('a run target was here', out)
def test_configure(self):
testdir = os.path.join(self.common_test_dir, '2 cpp')