aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2019-12-30 14:58:41 -0500
committerXavier Claessens <xclaesse@gmail.com>2020-02-05 16:54:01 +0100
commitb3ab02277796cfc79772ecd6100f8d9f58a4bb4d (patch)
treeaf57ee25b27e85773961bfe8bd59863da171c400
parent302b486446ce76b8cfed2b471429ccb34b8f02f4 (diff)
downloadmeson-b3ab02277796cfc79772ecd6100f8d9f58a4bb4d.zip
meson-b3ab02277796cfc79772ecd6100f8d9f58a4bb4d.tar.gz
meson-b3ab02277796cfc79772ecd6100f8d9f58a4bb4d.tar.bz2
pkgconfig: Fix code that make relative path
When subdir is '/foo/bar' and prefix '/foo' it was returning '/bar', which is an absolute path. It was then constructing '-L${prefix}//bar' with bogus double slash. When subdir is '/fooo/bar' and prefix '/foo' it was returning 'o/bar'.
-rw-r--r--mesonbuild/modules/pkgconfig.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py
index 2341bd2..82b335e 100644
--- a/mesonbuild/modules/pkgconfig.py
+++ b/mesonbuild/modules/pkgconfig.py
@@ -256,8 +256,12 @@ class PkgConfigModule(ExtensionModule):
prefix = prefix.as_posix()
if isinstance(subdir, PurePath):
subdir = subdir.as_posix()
- if subdir.startswith(prefix):
- subdir = subdir.replace(prefix, '')
+ try:
+ if os.path.commonpath([prefix, subdir]) == prefix:
+ skip = len(prefix) + 1
+ subdir = subdir[skip:]
+ except ValueError:
+ pass
return subdir
def generate_pkgconfig_file(self, state, deps, subdirs, name, description,