diff --git a/cibuildwheel/environment.py b/cibuildwheel/environment.py index d7727ae4..e4018b91 100644 --- a/cibuildwheel/environment.py +++ b/cibuildwheel/environment.py @@ -124,8 +124,12 @@ class ParsedEnvironment: return environment - def add(self, name: str, value: str) -> None: - self.assignments.append(EnvironmentAssignmentRaw(name=name, value=value)) + def add(self, name: str, value: str, prepend: bool = False) -> None: + assignment = EnvironmentAssignmentRaw(name=name, value=value) + if prepend: + self.assignments.insert(0, assignment) + else: + self.assignments.append(assignment) def __repr__(self) -> str: return f"{self.__class__.__name__}({[repr(a) for a in self.assignments]!r})" diff --git a/cibuildwheel/options.py b/cibuildwheel/options.py index 581e576b..89924052 100644 --- a/cibuildwheel/options.py +++ b/cibuildwheel/options.py @@ -530,9 +530,9 @@ class Options: # Pass through environment variables if self.platform == "linux": - for env_var_name in environment_pass: + for env_var_name in reversed(environment_pass): with contextlib.suppress(KeyError): - environment.add(env_var_name, self.env[env_var_name]) + environment.add(env_var_name, self.env[env_var_name], prepend=True) if dependency_versions == "pinned": dependency_constraints: None | (