@@ -1206,7 +1206,7 @@ def _add_dependency_variables(self, names=None, cpp=None, ld=None):
12061206 # and only use the configured option
12071207 # (our RPATH wrappers rely on LIBRARY_PATH so we need an exception for that)
12081208 if env_var != 'LIBRARY_PATH' :
1209- self .variables .append (env_var , '' )
1209+ self .variables .setdefault (env_var , append_empty = True )
12101210 for var in SEARCH_PATH [search_path_var ][self .search_path [search_path_var ]]:
12111211 self .variables .append_subdirs (var , '' , subdirs = paths_list )
12121212
@@ -1240,6 +1240,14 @@ def _add_dependency_cpp_headers(self, dep_root, extra_dirs=None):
12401240 header_dirs = unique_ordered_extend (header_dirs , extra_dirs )
12411241
12421242 self .log .info (f"Adding header paths to toolchain variable '{ env_var } ': { dep_root } (subdirs: { header_dirs } )" )
1243+ # it may already exist, in which case we remove it to add it back with higher priority
1244+ for header_dir in header_dirs :
1245+ self .log .debug (f"Existing variables are { self .variables .keys ()} " )
1246+ if env_var in self .variables .keys ():
1247+ header_path = os .path .join (dep_root , header_dir )
1248+ self .log .debug (f"Attempting to remove any previous instance of { header_path } from { env_var } list: { self .variables [env_var ]} " )
1249+ self .variables [env_var ].try_remove ([header_path ])
1250+ self .log .debug (f"New value of { env_var } list: { self .variables [env_var ]} " )
12431251 self .variables .append_subdirs (env_var , dep_root , subdirs = header_dirs )
12441252
12451253 def _add_dependency_linker_paths (self , dep_root , extra_dirs = None ):
0 commit comments