aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2020-12-07 11:40:20 -0500
committerJussi Pakkanen <jpakkane@gmail.com>2020-12-10 00:28:34 +0200
commit0efcb0be5f1aa834f6dcfcaba1d3a1ce487a6982 (patch)
tree5913d7dfa9efbb67143cd4cf8fb48c717b0a4d03
parent6b328ef7c4dbc0e4a1079f9fe7aa885c66c85d2a (diff)
downloadmeson-0efcb0be5f1aa834f6dcfcaba1d3a1ce487a6982.zip
meson-0efcb0be5f1aa834f6dcfcaba1d3a1ce487a6982.tar.gz
meson-0efcb0be5f1aa834f6dcfcaba1d3a1ce487a6982.tar.bz2
pkgconfig: Respect variable ordering when passed as list
This fix a regression introduced in Meson 0.56.0 when using python 3.5. Also mention in documentation that using a meson dict does not guarantee ordering. Fixes: #8074.
-rw-r--r--docs/markdown/Pkgconfig-module.md3
-rw-r--r--mesonbuild/interpreter.py2
2 files changed, 3 insertions, 2 deletions
diff --git a/docs/markdown/Pkgconfig-module.md b/docs/markdown/Pkgconfig-module.md
index e9aa4a2..53c23fa 100644
--- a/docs/markdown/Pkgconfig-module.md
+++ b/docs/markdown/Pkgconfig-module.md
@@ -50,7 +50,8 @@ keyword arguments.
reference other pkgconfig variables,
e.g. `datadir=${prefix}/share`. The names `prefix`, `libdir` and
`includedir` are reserved and may not be used. *Since 0.56.0* it can also be a
- dictionary.
+ dictionary but ordering of Meson dictionaries are not guaranteed, which could
+ cause issues when some variables reference other variables.
- `version` a string describing the version of this library, used to set the
`Version:` field. (*since 0.46.0*) Defaults to the project version if unspecified.
- `d_module_versions` a list of module version flags used when compiling
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index 83acc01..59e29be 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -2708,7 +2708,7 @@ class Interpreter(InterpreterBase):
varlist = mesonlib.stringlistify(variables)
if list_new:
FeatureNew.single_use('variables as list of strings', '0.56.0', self.subproject)
- variables = {}
+ variables = collections.OrderedDict()
for v in varlist:
try:
(key, value) = v.split('=', 1)