diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2021-04-17 09:47:31 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-04-18 22:17:21 +0300 |
commit | 8f6ad8e52e7ad7663b7737f32cb6c624971830fe (patch) | |
tree | 44045978a521ef5dac39081db04d5596068efd2a | |
parent | 68dda2a2419f6741c6585dad29bdce7f41464ec0 (diff) | |
download | meson-8f6ad8e52e7ad7663b7737f32cb6c624971830fe.zip meson-8f6ad8e52e7ad7663b7737f32cb6c624971830fe.tar.gz meson-8f6ad8e52e7ad7663b7737f32cb6c624971830fe.tar.bz2 |
pkgconfig: Fix broken paths in -uninstalled.pc on Windows
Fixes: #8668
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index c9af5bf..3f06ed0 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -307,17 +307,12 @@ class PkgConfigModule(ExtensionModule): return value.replace(' ', r'\ ') def _make_relative(self, prefix, subdir): - if isinstance(prefix, PurePath): - prefix = prefix.as_posix() - if isinstance(subdir, PurePath): - subdir = subdir.as_posix() + prefix = PurePath(prefix) + subdir = PurePath(subdir) try: - if os.path.commonpath([prefix, subdir]) == prefix: - skip = len(prefix) + 1 - subdir = subdir[skip:] + return subdir.relative_to(prefix).as_posix() except ValueError: - pass - return subdir + return subdir.as_posix() def generate_pkgconfig_file(self, state, deps, subdirs, name, description, url, version, pcfile, conflicts, variables, @@ -417,8 +412,8 @@ class PkgConfigModule(ExtensionModule): def generate_uninstalled_cflags(libs): for d in get_uninstalled_include_dirs(libs): for basedir in ['${prefix}', '${srcdir}']: - path = os.path.join(basedir, d) - yield '-I%s' % self._escape(path) + path = PurePath(basedir, d) + yield '-I%s' % self._escape(path.as_posix()) if len(deps.pub_libs) > 0: ofile.write('Libs: {}\n'.format(' '.join(generate_libs_flags(deps.pub_libs)))) |