diff options
author | Yang Bo <yb@rslinux.fun> | 2022-09-08 11:29:30 +0000 |
---|---|---|
committer | Eli Schwartz <eschwartz93@gmail.com> | 2022-09-13 02:24:38 -0400 |
commit | 83d18d137dc50437a8263983e8883198c7bc41ed (patch) | |
tree | 0ba5ba3e09dd005fbe516342bb66f679b050099a /mesonbuild/compilers | |
parent | 719dd0d2a04592812194e8588279827ec52fc92e (diff) | |
download | meson-83d18d137dc50437a8263983e8883198c7bc41ed.zip meson-83d18d137dc50437a8263983e8883198c7bc41ed.tar.gz meson-83d18d137dc50437a8263983e8883198c7bc41ed.tar.bz2 |
Use os.path.realpath for default include paths testing in -isystem.
This ensures correct removal of default include paths in -isystem
options when symbolic links are involved.
A test for this is also added.
Diffstat (limited to 'mesonbuild/compilers')
-rw-r--r-- | mesonbuild/compilers/mixins/clike.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/mesonbuild/compilers/mixins/clike.py b/mesonbuild/compilers/mixins/clike.py index 696d01c..b1792eb 100644 --- a/mesonbuild/compilers/mixins/clike.py +++ b/mesonbuild/compilers/mixins/clike.py @@ -100,6 +100,7 @@ class CLikeCompilerArgs(arglist.CompilerArgs): # Remove system/default include paths added with -isystem default_dirs = self.compiler.get_default_include_dirs() if default_dirs: + real_default_dirs = [os.path.realpath(i) for i in default_dirs] bad_idx_list = [] # type: T.List[int] for i, each in enumerate(new): if not each.startswith('-isystem'): @@ -108,11 +109,11 @@ class CLikeCompilerArgs(arglist.CompilerArgs): # Remove the -isystem and the path if the path is a default path if (each == '-isystem' and i < (len(new) - 1) and - new[i + 1] in default_dirs): + os.path.realpath(new[i + 1]) in real_default_dirs): bad_idx_list += [i, i + 1] - elif each.startswith('-isystem=') and each[9:] in default_dirs: + elif each.startswith('-isystem=') and os.path.realpath(each[9:]) in real_default_dirs: bad_idx_list += [i] - elif each[8:] in default_dirs: + elif os.path.realpath(each[8:]) in real_default_dirs: bad_idx_list += [i] for i in reversed(bad_idx_list): new.pop(i) |