diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2021-03-26 10:41:38 -0400 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2021-03-26 23:41:03 +0200 |
commit | 47633330da1011f9c526bab8950c8265ef9ed7d4 (patch) | |
tree | 7904dd8383d406486e572f4595911de9b0adc7fe /mesonbuild/modules/pkgconfig.py | |
parent | df4314c7b88998aa9e7a497b1da04efb77110f60 (diff) | |
download | meson-47633330da1011f9c526bab8950c8265ef9ed7d4.zip meson-47633330da1011f9c526bab8950c8265ef9ed7d4.tar.gz meson-47633330da1011f9c526bab8950c8265ef9ed7d4.tar.bz2 |
pkgconfig: Allow setting prefix in dataonly pc file
Some variables are reserved because meson set them automatically. But we
are not setting them for dataonly pc files, so there is no reason to
reserve them.
Fixes: #8583.
Diffstat (limited to 'mesonbuild/modules/pkgconfig.py')
-rw-r--r-- | mesonbuild/modules/pkgconfig.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/mesonbuild/modules/pkgconfig.py b/mesonbuild/modules/pkgconfig.py index fd2c24a..c9af5bf 100644 --- a/mesonbuild/modules/pkgconfig.py +++ b/mesonbuild/modules/pkgconfig.py @@ -469,10 +469,12 @@ class PkgConfigModule(ExtensionModule): raise mesonlib.MesonException('Too many positional arguments passed to Pkgconfig_gen.') dataonly = kwargs.get('dataonly', False) + if not isinstance(dataonly, bool): + raise mesonlib.MesonException('dataonly must be boolean.') if dataonly: default_subdirs = [] blocked_vars = ['libraries', 'libraries_private', 'require_private', 'extra_cflags', 'subdirs'] - if len(set(kwargs) & set(blocked_vars)) > 0: + if any(k in kwargs for k in blocked_vars): raise mesonlib.MesonException(f'Cannot combine dataonly with any of {blocked_vars}') subdirs = mesonlib.stringlistify(kwargs.get('subdirs', default_subdirs)) @@ -519,7 +521,7 @@ class PkgConfigModule(ExtensionModule): reserved = ['prefix', 'libdir', 'includedir'] variables = [] for name, value in vardict.items(): - if name in reserved: + if not dataonly and name in reserved: raise mesonlib.MesonException(f'Variable "{name}" is reserved') variables.append((name, value)) return variables |