aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/backend/backends.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2019-04-01 01:29:51 +0300
committerGitHub <noreply@github.com>2019-04-01 01:29:51 +0300
commit5905533fcd7fb9663023e6cf98d95667620d2f12 (patch)
tree49ed83ebd7c34cfe1a676ac9607c609283349db3 /mesonbuild/backend/backends.py
parente3e83e2acdec877c527b36542fc64867c5943f77 (diff)
parent2259db2683d9e60c727ce847d1da7a759b190006 (diff)
downloadmeson-5905533fcd7fb9663023e6cf98d95667620d2f12.zip
meson-5905533fcd7fb9663023e6cf98d95667620d2f12.tar.gz
meson-5905533fcd7fb9663023e6cf98d95667620d2f12.tar.bz2
Merge pull request #5103 from mesonbuild/linkcustom
Can link against custom targets
Diffstat (limited to 'mesonbuild/backend/backends.py')
-rw-r--r--mesonbuild/backend/backends.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/mesonbuild/backend/backends.py b/mesonbuild/backend/backends.py
index d69091b..d752ac4 100644
--- a/mesonbuild/backend/backends.py
+++ b/mesonbuild/backend/backends.py
@@ -211,6 +211,10 @@ class Backend:
return os.path.join(self.get_target_dir(target), link_lib)
elif isinstance(target, build.StaticLibrary):
return os.path.join(self.get_target_dir(target), target.get_filename())
+ elif isinstance(target, build.CustomTarget):
+ if not target.is_linkable_target():
+ raise MesonException('Tried to link against custom target "%s", which is not linkable.' % target.name)
+ return os.path.join(self.get_target_dir(target), target.get_filename())
elif isinstance(target, build.Executable):
if target.import_filename:
return os.path.join(self.get_target_dir(target), target.get_import_filename())
@@ -961,6 +965,12 @@ class Backend:
raise MesonException(msg)
dfilename = os.path.join(outdir, target.depfile)
i = i.replace('@DEPFILE@', dfilename)
+ elif '@PRIVATE_DIR@' in i:
+ if target.absolute_paths:
+ pdir = self.get_target_private_dir_abs(target)
+ else:
+ pdir = self.get_target_private_dir(target)
+ i = i.replace('@PRIVATE_DIR@', pdir)
elif '@PRIVATE_OUTDIR_' in i:
match = re.search(r'@PRIVATE_OUTDIR_(ABS_)?([^/\s*]*)@', i)
if not match: