-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Naturally use env vars a bit more to match Autoconf
PR #6363 made it so our interpretation of env vars no longer clashed with Autoconf's: if both Meson and Autoconf would read and env var, both would do the same things with the value they read. However, there were still cases that autoconf would read an env var when meson wouldn't: - Autoconf would use `CC` in cross builds too - Autoconf would use `CC_FOR_BUILD` in native builds too. There's no reason Meson can't also do this--if native cross files overwrite rather than replace env vars, cross files can also overwrite rather than replace env vars. Because variables like `CC` are so ubiquitous, and because ignoring them in cross builds just makes those builds liable to break (and things more complicated in general), we bring Meson's behavior in line with Autoconf's. (cherry picked from commit 097dfc0) PR #6806 was accidentally merged, then reverted.
- Loading branch information
1 parent
3d41fa9
commit 52f1107
Showing
4 changed files
with
37 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
## Read standard environment variables in more cases | ||
|
||
Make variables like `CC` and `CC_FOR_BUILD` never be ignored, regardless of | ||
whether the overall build is native of cross. [Config files, which one should | ||
greatly prefer over environment variables, still take precedence, however.] | ||
|
||
As of version 0.54, variables like `CC` controls the host platform options (if | ||
not set by a config file) in native builds, while variables like `CC_FOR_BUILD` | ||
does it for the build platform in cross builds. The intent was to limit the use | ||
of environment variables to a bare minimum and encourage putting everything in | ||
config files. | ||
|
||
However, the special-casing of cross vs native means infrastructure around | ||
meson packages like distro packages is harder to test, and cross builds in | ||
particular are more likely to bit-rot if native builds are exclusively tested, | ||
as is often the case. | ||
|
||
By making `CC` always control the host platform, and `CC_FOR_BUILD` for build | ||
the native platform, we remove much special casing. We do leave in place that | ||
variables like `CC` also affect the build platform in native builds if | ||
`CC_FOR_BUILD` is not set, as this is the standard. | ||
|
||
As an added bonus, this change, including the `build = host` fallback rules | ||
just described, brings us in full conformance with how Autoconf reads | ||
environment variables. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters