diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2019-12-30 14:58:41 -0500 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2020-02-05 16:54:01 +0100 |
commit | b3ab02277796cfc79772ecd6100f8d9f58a4bb4d (patch) | |
tree | af57ee25b27e85773961bfe8bd59863da171c400 /mesonbuild/modules/pkgconfig.py | |
parent | 302b486446ce76b8cfed2b471429ccb34b8f02f4 (diff) | |
download | meson-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'.
Diffstat (limited to 'mesonbuild/modules/pkgconfig.py')
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 8 |
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, |