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'.
@@ -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,
