aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/modules/pkgconfig.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
index 52f3a50..f963323 100644
--- a/mesonbuild/modules/pkgconfig.py
+++ b/mesonbuild/modules/pkgconfig.py
@@ -55,6 +55,15 @@ class PkgConfigModule(ExtensionModule):
value = value.as_posix()
return value.replace(' ', '\ ')
+ def _make_relative(self, prefix, subdir):
+ if isinstance(prefix, PurePath):
+ prefix = prefix.as_posix()
+ if isinstance(subdir, PurePath):
+ subdir = subdir.as_posix()
+ if subdir.startswith(prefix):
+ subdir = subdir.replace(prefix, '')
+ return subdir
+
def generate_pkgconfig_file(self, state, libraries, subdirs, name, description,
url, version, pcfile, pub_reqs, priv_reqs,
conflicts, priv_libs, extra_cflags, variables):
@@ -98,7 +107,7 @@ class PkgConfigModule(ExtensionModule):
if install_dir is False:
continue
if isinstance(install_dir, str):
- yield '-L${prefix}/%s ' % self._escape(install_dir)
+ yield '-L${prefix}/%s ' % self._escape(self._make_relative(prefix, install_dir))
else: # install_dir is True
yield '-L${libdir}'
lname = self._get_lname(l, msg, pcfile)