It's impossible to conditionally use a crate based only on cargo features, so
temporarily disable the backend on all Windows builds while we sort out how
to get the UWP builds working again.
Make Windows arm64 easy
* Add a ServoApp project configuration
* Add a `--win-arm64` build flag (now `python mach build -r --win-arm64 --uwp`)
* Automatically set up GStreamer LIB environment
* Yell if the cross-compilation environment isn't set up correctly
* Automatically find the Visual C++ installation for DLL packaging, rather than relying on an environment variable
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#23793 and fix#23795
- [x] There are tests for these changes
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23841)
<!-- Reviewable:end -->
Unbreak angle
This updates our ANGLE integration to a working version that allows nightly builds to run with `--angle` once more.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#23656
- [x] There are tests for these changes
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23768)
<!-- Reviewable:end -->
Adjust gstreamer plugins for UWP.
This excludes a set of plugins and dependencies that are currently built with MinGW and will therefore cause WACK errors. The resulting set of plugins loaded by the UWP app are still not UWP-clean, but this makes it much easier to switch over to UWP-clean binaries in the future.
These changes also allow the HoloLens 2 app to start and load again after #23712.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#23757
- [x] These changes do not require tests because no tests for windows or UWP.
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23764)
<!-- Reviewable:end -->
Upgrade WebRender
This is against an old Servo because I can't build current Servo due to compile errors in RNG crates. I verified that it starts up.
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#23516
- [x] There are tests for these changes
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23516)
<!-- Reviewable:end -->
Support WebAudio on Windows
These changes improve the GStreamer experience on Windows in several ways:
* we package the set of plugins and their dependencies that Servo requires for media support
* we explicitly load those plugins when starting the media engine rather than relying on an existing gstreamer installation
These changes do not affect the experience on non-Windows platforms, but the path is clear to do so in order to fix problems like #23519. With these changes I can successfully hear a tone when loading https://joshmatthews.net/osc.html in both a desktop build and a UWP build.
---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix#23631 and fix#23698
- [x] These changes do not require tests because no tests on windows ;_;
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23712)
<!-- Reviewable:end -->
updated rustup requirement
<!-- Please describe your changes on the following line: -->
Rustup changed their argparsing, which resulted in `./mach test-unit --nocapture` not working. Servo now requires a higher rustup version to ensure that mach commands work
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20885)
<!-- Reviewable:end -->
Add UWP port - bis
This is #23658 with some fixes:
- removed nspr from DLL dependencies (was breaking VS build)
- exclude symbols from header file (was breaking VS build)
- rebased
Before merging:
- please check the rebased commit that introduces the `--uwp` option (things moved around since 7c85dc09b5)
- should we wait until the WR fix lands upstream?
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23696)
<!-- Reviewable:end -->
Not all cargo subcommands take `--manifest-path`.
Use plain `cargo` instead (rustup reads the `rust-toolchain` file)
or consider adding new mach sub-commands.
build: Cleanup some path-munging code.
I was looking at this today, and this seems better than the pre-existing code,
generally pre-pending to these paths isn't great...
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23628)
<!-- Reviewable:end -->
Include missing dependency requirements
Running `servo-tidy` in a virtualenv where all you've done is `pip install servo-tidy==0.3.0` doesn't actually work because of missing dependencies. PyYAML and voluptuous are required as well. I don't know anything about python package management but declaring these missing dependencies seems like an appropriate thing to do. Patch itself is untested because I don't know how, although with these dependencies installed in my virtualenv running `servo-tidy` works.
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #___ (GitHub issue number if applicable)
<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because ___
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23400)
<!-- Reviewable:end -->
Use raqote for 2D canvas rendering
<!-- Please describe your changes on the following line: -->
---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `___` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix (part of) #23431 and #23466
<!-- Either: -->
<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->
<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/23451)
<!-- Reviewable:end -->