Add `--version` flag
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy --faster` does not report any errors
- [X] These changes fix#11241 (github issue number if applicable).
Either:
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
Not 100% sure of a good way to test this, so I'm submitting as is for feedback. Manually testing it appears to work fine.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11262)
<!-- Reviewable:end -->
Use the same build environment and features for CEF, Servo, Gonk, Geckolib
* Remove unnecessary dependencies and features from top-level Cargo.tomls. The features for each crate will be computed based on the union of features specified in the dependency graph. Specifying the same ones again just adds more ways for them to get out of sync.
* Move all cargo build environment variables into CommandBase
Fixes#11112. r? @metajack
(Not included: CI test to make sure #11112 doesn't regress again.)
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11122)
<!-- Reviewable:end -->
This preserved the fix from #11097 in the situation where `$CARGO_HOME` and
`cargo-home-dir` in `.servobuild` are both present: `.servobuild` should win.
But it changes the behavior when `$CARGO_HOME` is present and `.servobuild` is
not: Then `$CARGO_HOME` should be used.
We now check the following values in order of priority and use the first one
that is found:
1. `cargo-home-dir` in `.servobuild`
2. `CARGO_HOME_DIR` in the enivironment
3. default value (`<servo-repo>/.cargo`)
This use always `cargo-home-dir` in `/.servobuild`
even if you set `CARGO_HOME` in your shell.
If you use [racer][racer] with [rustup (multirust.rs)][rustup],
you may set `CARGO_HOME` env variable.
Then the previous code would be a problem which does not use
`cargo-home-dir` in `/.servobuild`.
[racer]: https://github.com/phildawes/racer
[rustup]: https://github.com/rust-lang-nursery/rustup.rs
The build system needs to disable gold on arm64 slaves. Other configuration is
done through environment variables, and buildbot hosts currently don't use a
.servobuild file at all.
This change adds the `get_env_bool` function to cast an environment variable's
string contents into a Python boolean, and uses it to retrieve the optional
SERVO_RUSTC_WITH_GOLD setting.
Currently if Servo is built using Cygwin, it is incorrectly classified
as "unknown" host, which makes downloading Rust and Cargo fail. This
commit fixes that.
Fix unicode PATH the same way as mozilla-central does it for windows.
Also append extra PATHs instead of prepending, for some reason that broke ./mach run
- Add SERVO_USE_NIGHTLY_RUST env var to use the latest rust/cargo nightly snapshot
- Fix up looking for cargo binary (in cargo/bin/cargo, not bin/cargo)
- Fix up win32 executable checking (use .exe suffix)
- fix up win32 PATH handling (subprocess must use shell=True for PATH change to be honored)