summaryrefslogtreecommitdiff
path: root/mesonbuild/coredata.py
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2020-01-27 09:18:31 -0800
committerXavier Claessens <xclaesse@gmail.com>2020-02-21 14:34:20 -0500
commitedb52e90037bac0233e680e2d0a7c5847aac93ae (patch)
tree63059dbbc5048603781c9e0414f4408fdbe07079 /mesonbuild/coredata.py
parent33fbc548ab74e79280d2f57b2cd499d14c1f1e91 (diff)
downloadmeson-edb52e90037bac0233e680e2d0a7c5847aac93ae.tar.gz
coredata: Warn on reconfigure if PKG_CONFIG_PATH has changed
Fixes #6520 Fixes #5223
Diffstat (limited to 'mesonbuild/coredata.py')
-rw-r--r--mesonbuild/coredata.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/mesonbuild/coredata.py b/mesonbuild/coredata.py
index 11b8deb0d..8f709ddbd 100644
--- a/mesonbuild/coredata.py
+++ b/mesonbuild/coredata.py
@@ -19,7 +19,7 @@ from itertools import chain
from pathlib import PurePath
from collections import OrderedDict
from .mesonlib import (
- MesonException, MachineChoice, PerMachine,
+ MesonException, MachineChoice, PerMachine, OrderedSet,
default_libdir, default_libexecdir, default_prefix, split_args
)
from .wrap import WrapMode
@@ -746,16 +746,20 @@ class CoreData:
# Some options default to environment variables if they are
# unset, set those now. These will either be overwritten
# below, or they won't. These should only be set on the first run.
- if env.first_invocation:
- p_env = os.environ.get('PKG_CONFIG_PATH')
- if p_env:
- # PKG_CONFIG_PATH may contain duplicates, which must be
- # removed, else a duplicates-in-array-option warning arises.
- pkg_config_paths = []
- for k in p_env.split(':'):
- if k not in pkg_config_paths:
- pkg_config_paths.append(k)
- options['pkg_config_path'] = pkg_config_paths
+ p_env = os.environ.get('PKG_CONFIG_PATH')
+ if p_env:
+ # PKG_CONFIG_PATH may contain duplicates, which must be
+ # removed, else a duplicates-in-array-option warning arises.
+ p_list = list(OrderedSet(p_env.split(':')))
+ if env.first_invocation:
+ options['pkg_config_path'] = p_list
+ elif options.get('pkg_config_path', []) != p_list:
+ mlog.warning(
+ 'PKG_CONFIG_PATH environment variable has changed '
+ 'between configurations, meson ignores this. '
+ 'Use -Dpkg_config_path to change pkg-config search '
+ 'path instead.'
+ )
for k, v in env.cmd_line_options.items():
if subproject: