aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo
Commit message (Collapse)AuthorAgeFilesLines
* Fix taplo test target directories (#36690)Kingsley Yung5 days1-1/+1
| | | | | | | | | | | | | The command `./mach test-tidy` did not check the TOML files in the subdirectories of components/shared/, since the argument for taglo command was written as `components/shared/*.toml`. This patch fixes it to include those TOML files in test-tidy. Testing: It only involves python script for test-tidy. No test is needed. Fixes: #36659 Signed-off-by: Kingsley Yung <kingsley@kkoyung.dev>
* layout: Combine `layout_2020` and `layout_thread_2020` into a crate called ↵Martin Robinson11 days1-1/+1
| | | | | | | | | | | | | | | | | | `layout` (#36613) Now that legacy layout has been removed, the name `layout_2020` doesn't make much sense any longer, also it's 2025 now for better or worse. The split between the "layout thread" and "layout" also doesn't make as much sense since layout doesn't run on it's own thread. There's a possibility that it will in the future, but that should be something that the user of the crate controls rather than layout iself. This is part of the larger layout interface cleanup and optimization that @Looriool and I are doing. Testing: Covered by existing tests as this is just code movement. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* chore: Update wgpu to v25 (#36486)sagudev12 days1-0/+6
| | | | | | | | | | Updates wgpu to v25 and remove some verbose logging from CTS (that also causes OOM). Testing: WebGPU CTS --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* CI: Add `number_of_chunks` (#36584)sagudev12 days1-0/+10
| | | | | | | | | | | This allows changing number of chunks used for WPT testing (sometimes useful for WebGPU). Testing: Manual try runs Fixes: #30062 --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* mach try: Add `wpt` alias for `linux-wpt` (#36416)sagudev2025-04-091-0/+7
| | | | | | | | Add `wpt` alias for `linux-wpt` in try_parser, because that's the what I have in muscle memory. Testing: Tested with new try_parser unit tests. Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* `compositing`: Combine `webrender_traits` and `compositing_traits` (#36372)Martin Robinson2025-04-061-1/+1
| | | | | | | | | | | | | | | These two traits both exposed different parts of the compositing API, but now that the compositor doesn't depend directly on `script` any longer and the `script_traits` crate has been split into the `constellation_traits` crate, this can be finally be cleaned up without causing circular dependencies. In addition, some unit tests for the `IOPCompositor`'s scroll node tree are also moved into `compositing_traits` as well. Testing: This just combines two crates, so no new tests are necessary. Fixes: #35984. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* mach: Fix cross-compiling from windows to non windows (#36070)Jonathan Schwender2025-04-041-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we switched to using `aws-lc-rs` instead of `ring`, cross-compiling on windows (to non-windows) had been broken. Using the default MSVC Generator results in CMake erroneously being configured for the host platform, with failing compiler checks. Switching to Ninja fixes that issue. The CMake build rules of aws-lc-rs also make use of `tr` and assume it is installed, hence we provide a helpful error message suggesting to try using mach from `git bash` which does provide the `tr` command. <!-- 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 cross-compiling servo on windows hosts to non-windows targets - [x] These changes do not require tests because: We don't test cross-compiling from windows hosts in CI. These changes were manually tested by compiling for OpenHarmony on windows. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* Fix broken unit-test of webview (#36238)Shubham Gupta2025-04-021-0/+1
| | | | | | | | | | | This PR fixes the broken unit-test after [#35662](https://github.com/servo/servo/pull/35662) Testing: Verified locally and CI confirms too. Fixes: Migrate the test to use new API cc: @xiaochengh Signed-off-by: Shubham Gupta <shubham13297@gmail.com>
* devtools: Fix id collisions by using incrementing counters (#35971)Delan Azabani2025-04-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Devtools clients need a `browserId`, `browsingContextID`, and `outerWindowID`, which correspond to WebViewId, BrowsingContextId, and PipelineId in Servo. These u32 values were previously derived from our sharded (u32,u32) id values by taking only the `index` (second u32) and ignoring the `namespace_id` (first u32), leading to collisions. This patch fixes that by mapping those Servo ids to sequential u32 values. --- <!-- 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 #35954 <!-- Either: --> - [x] 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. --> --------- Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Devtools parser: reassemble fragmented messages (#36033)Delan Azabani2025-03-291-0/+20
| | | | | | | | | | | | | | | * Devtools parser: reassemble fragmented messages Co-authored-by: Aria Edmonds <8436007+ar1a@users.noreply.github.com> Signed-off-by: Delan Azabani <dazabani@igalia.com> * Enable devtools parser tests on Linux only for now Signed-off-by: Delan Azabani <dazabani@igalia.com> --------- Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: Aria Edmonds <8436007+ar1a@users.noreply.github.com>
* Check for existence of 'sudo' on Linux in ./mach bootstrap (#35739)Tom Overlund2025-03-281-0/+14
| | | | | | | | | | | | | * Check for existence of sudo command in ./mach bootstrap on Linux (#35736) Signed-off-by: Tom Overlund <tomov@dilacero.org> * Remove extraneous semicolon from previous commit (test-tidy fix). Signed-off-by: Tom Overlund <tomov@dilacero.org> --------- Signed-off-by: Tom Overlund <tomov@dilacero.org>
* Install tshark for automated tests in #36033 (#36201)Delan Azabani2025-03-281-7/+8
| | | Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Remove references to 2020 layout in try_parser.py (#36047)MDCODE2472025-03-251-40/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove references to 2020 layout in try_parser.py Signed-off-by: MDCODE247 <ammedabubakard500@gmail.com> * Removed all references to CHANGE Signed-off-by: MDCODE247 <ammedabubakard500@gmail.com> * Updated .yml workflow files Signed-off-by: MDCODE247 <ammedabubakard500@gmail.com> * update more references Signed-off-by: MDCODE247 <ammedabubakard500@gmail.com> * fixed right hand argument Signed-off-by: MDCODE247 <ammedabubakard500@gmail.com> * Fixing more references Signed-off-by: MDCODE247 <ammedabubakard500@gmail.com> * mach: remove unused import in try_parser.py Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * ci: update reference to wpt_layout in try.yml Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> --------- Signed-off-by: MDCODE247 <ammedabubakard500@gmail.com> Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* metrics: Simplify `ProgressiveWebMetrics` (#35985)Martin Robinson2025-03-211-0/+1
| | | | | | | | | | | | | | | | Simply how `ProgressiveWebMetrics` works: 1. Keep only a single struct instead of one in layout and one script that both implement the `ProgressiveWebMetrics` trait. Since layout and script are the same thread these can now just be a single `ProgressiveWebMetrics` struct stored in script. 2. Have the compositor be responsible for informing the Constellation (which informs the ScripThread) about paint metrics. This makes communication flow one way and removes one dependency between the compositor and script (of two). 3. All units tests are moved into the `metrics` crate itself since there is only one struct there now. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* libservo: Notify delegates of send errors in request objects (#35668)Delan Azabani2025-03-191-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | * libservo: Notify delegates of send errors in request objects Signed-off-by: Delan Azabani <dazabani@igalia.com> * Remove webview error sender for simplicity Signed-off-by: Delan Azabani <dazabani@igalia.com> * Remove error sender trait, now that there is only one impl Signed-off-by: Delan Azabani <dazabani@igalia.com> * Address review feedback Signed-off-by: Delan Azabani <dazabani@igalia.com> * Add unit tests Signed-off-by: Delan Azabani <dazabani@igalia.com> --------- Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Remove legacy layout (layout 2013) (#35943)Oriol Brufau2025-03-132-9/+3
| | | | | | We were already not compiling it and not running tests on it by default. So it's simpler to just completely remove it. Signed-off-by: Oriol Brufau <obrufau@igalia.com>
* Use new stylo crate renames (#35898)Nico Burns2025-03-121-1/+1
| | | Signed-off-by: Nico Burns <nico@nicoburns.com>
* mach: Remove the `create-wpt` command (#35895)Martin Robinson2025-03-111-162/+26
| | | | | | | | | | | | | | WPT tests are very specific to the directory in which they are created. In addition, since `create-wpt` takes care of running `update-manifest` it hides the fact that any future changes to tests need this command run again. No other browser has a `create-wpt` command, instead developers are expected to craft their own tests, usually by starting from an example in the directory they create the test in. I think this works fine for Servo. Closes #35726. Closes #8427. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* mach: Install Rust toolchain during bootstrap if needed (#35795)Delan Azabani2025-03-051-0/+9
| | | Signed-off-by: Delan Azabani <dazabani@igalia.com>
* sync cargo-deny version in python/servo/platform/base.py (#35730)Yerkebulan Tulibergenov2025-03-011-2/+2
| | | Signed-off-by: Yerkebulan Tulibergenov <yerkebulan@gmail.com>
* Fix android build on arm macs (#35516)Jonathan Schwender2025-02-181-1/+16
| | | | | | | | | | The prebuilt directory only contains an `darwin-x86_64` toolchain, but that is perfectly fine, since that also works. In General, if there is only one prebuilt toolchain available, it should be a very safe assumption that it is usable on the host platform, especially if the OS matches. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* libservo: Expose an `OffscreenRenderingContext` and use it for servoshell ↵Martin Robinson2025-02-171-1/+1
| | | | | | | | | | | | | | | | | | (#35465) Create a new `RenderingContext` which is used to render to a `SurfmanRenderingContext`-related offscreen buffer. This allows having a temporary place to render Servo and then blitting the results to a subsection of the parent `RenderingContext`. The goal with this change is to remove the details of how servoshell renders from the `Compositor` and prepare for the compositor-per-WebView world. Co-authred-by: Ngo Iok Ui (Wu Yu Wei) <yuweiwu@pm.me> Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* crown: Pass `--cfg crown` to rustc from crown (#35073)Samson2025-01-311-7/+5
| | | | | | | | | | | | | | | | | | | | | | * crown: Pass `--cfg crown` to rustc from crown also includes minor fix in crown for wrapper running based on clippy code Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * fix doc Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Update python/servo/command_base.py Co-authored-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com> --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* CI: temporarily stop running libservo builds by default (#35180)Delan Azabani2025-01-271-11/+8
| | | Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Fix building libservo with `cargo build -p libservo` (#35116)Delan Azabani2025-01-231-5/+22
| | | | | | | | | | | | | | | | | | | * Fix building libservo with `cargo build -p libservo` Signed-off-by: Delan Azabani <dazabani@igalia.com> * Test the libservo build in CI Signed-off-by: Delan Azabani <dazabani@igalia.com> * Work around build issue on macOS (#34517) Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com> --------- Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* feat: Track the binary size for all the different platforms (#34744)DK Liao2025-01-201-52/+87
| | | | | | | | | | | | | | | | | | | * feat: Track the binary size for all the different platforms Signed-off-by: DK Liao <dklassic@gmail.com> * Add target to bencher job name Signed-off-by: DK Liao <dklassic@gmail.com> * Update .github/workflows/bencher.yml Co-authored-by: Martin Robinson <mrobinson@igalia.com> Signed-off-by: DK Liao <dklassic@gmail.com> --------- Signed-off-by: DK Liao <dklassic@gmail.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* script: Feature-gate all crown support. (#35055)Josh Matthews2025-01-181-1/+4
| | | | | | | | | | | | | * script: Feature-gate all crown support. Signed-off-by: Josh Matthews <josh@joshmatthews.net> * script: Use cfg(crown) instead of a cargo feature. Signed-off-by: Josh Matthews <josh@joshmatthews.net> --------- Signed-off-by: Josh Matthews <josh@joshmatthews.net>
* Remove `resources/prefs.json` (#34999)Martin Robinson2025-01-161-28/+0
| | | | | This file is not used any longer. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Fix ./mach test-speedometer runs (#34996)Simon Wülker2025-01-151-1/+1
| | | | | | | | | The python code set a preference that was renamed as part of https://github.com/servo/servo/pull/34966. This fixes MQ runs which currently all fail (https://github.com/servo/servo/actions/runs/12779051326/job/35623343302) Signed-off-by: Simon Wülker <simon.wuelker@arcor.de>
* mach: Report an error instead of running `try` with a dirty working ↵chickenleaf2025-01-141-0/+5
| | | | | | directory (#34349) Signed-off-by: L Ashwin B <lashwinib@gmail.com> Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Reapply "Fix mozjs build on Windows (#34680)" (#34693)Oriol Brufau2024-12-191-0/+4
| | | | | | | | This reverts commit bc0c8366f82ab8b8651c2346fbadcfea900ca789, relanding commit 11424f90b3cb0fe5688fce68139744f919c5be21. Reason: it wasn't the cause behind #34688. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Revert "Fix mozjs build on Windows (#34680)"Oriol Brufau2024-12-181-4/+0
| | | | | This reverts commit 11424f90b3cb0fe5688fce68139744f919c5be21. Reason: suspect for busting unit tests on MacOS (#34688).
* Fix mozjs build on Windows (#34680)Delan Azabani2024-12-181-0/+4
| | | Signed-off-by: Delan Azabani <dazabani@igalia.com>
* mach: adopt `uv` and avoid system python (#34632)Mukilan Thiyagarajan2024-12-163-6/+4
| | | | | | | | | | | | | | | | This allows us to use `uv` for: 1. Installing a pinned Python version 2. Installing the dependency packages using `uv`'s pip compatible interface. 4. Bootstrapping `mach` without a Python installion on the host, using `uv run` This change also introduces a new 'composite' GitHub action to setup python in the different CI workflows. There is no support for externally managed python installations and virtual environments. These could be added in the future. Fixes #34095, #34547 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* tidy: Use more `cargo-deny` features (#34447)Martin Robinson2024-12-131-2/+10
| | | | | | | | | | | | Instead of parsing the `Cargo.lock` file directly in `tidy.py`. Use `cargo-deny`, which we already use to detect unapproved licenses in the dependency chain to detect duplicate and banned crates. In addition, enable all other `cargo-deny` checks and add exceptions where necessary for them. This depends on the latest release of `cargo-deny` which depends on a recent verison of `rust`. Fixes #34393. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Run bencher in try-full (#34556)Samson2024-12-121-11/+16
| | | | | | | | | | | | | | * Run bencher in try-full Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com> * Fix naming Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> --------- Signed-off-by: Samson <16504129+sagudev@users.noreply.github.com> Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
* build: upgrade rustc to 1.81.0 (#34270)Mukilan Thiyagarajan2024-12-121-2/+1
| | | Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Revert "mach: switch to `uv` for managing python venv (#34504)" (#34548)Mukilan Thiyagarajan2024-12-101-2/+3
| | | | | This reverts commit 4103421ba5dc401817128661d759bb18b0aec8f1. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* mach: switch to `uv` for managing python venv (#34504)Mukilan Thiyagarajan2024-12-091-3/+2
| | | | | | | | | | | | | This patch switches servo to use `uv` for both installing a pinned Python version as well as installing the dependency packages using `uv`'s pip compatible interface. It also introduces a new 'composite' GitHub action to setup python in the different CI workflows. There is no support for externally managed python installations and virtual environments. These could be added in the future. Fixes #34095 Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Add linux-pref job (#33261)Samson2024-12-061-0/+12
| | | | | | Job will do some performance benchmarks (Dromeo, Speedometer) and mesure binary size and will report results to bencher.dev Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> Co-authored-by: DK Liao <dklassic@gmail.com>
* Rename 'cargo-clippy' mach command to just 'clippy' (#34481)Nico Burns2024-12-051-2/+2
| | | Signed-off-by: Nico Burns <nico@nicoburns.com>
* Remove etc/shell.nix in favour of shell.nix (#34336)Delan Azabani2024-11-221-1/+1
| | | Signed-off-by: Delan Azabani <dazabani@igalia.com>
* Add `medium` profile for daily work scenario (#34035)Jonathan Schwender2024-11-211-0/+4
| | | | | | | | | | | | - The standard `dev` mode is often too slow for daily work on servo - Increasing the optimization level to 2 improves the performance noticably. - Build time for opt-level = 1 is slightly higher than 2 on my machine - Reducing debug info to `line-tables-only` improves link and build times, while still keeping relevant info for backtraces. Also extend .servobuild to allow setting custom cargo profiles instead of just release and dev. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* mach: Remove `mach rustup` (#34287)Jonathan Schwender2024-11-191-19/+0
| | | | | We don't use the nightly toolchain anymore, so this command can be removed. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* mach: run linux unit tests for 'full' try jobs (#34272)Mukilan Thiyagarajan2024-11-181-4/+12
| | | | | | | Windows and Mac have unit tests enabled when triggered via 'full' alias but they are disabled on Linux which is confusing. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: sagudev <16504129+sagudev@users.noreply.github.com>
* mach: ohos: Print error message when hvigor fails (#34267)Jonathan Schwender2024-11-171-0/+6
| | | | | | | `hvigorw --version` might fail if some required environment variables are not set. In this case we should print the output of the command, so that the user can report what caused `hvigorw --version` to fail. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* ohos: Add basic IME and keyboard support (#34188)Jonathan Schwender2024-11-151-9/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ohos: Add basic IME and keyboard support - Add extremely basic support for keyboard events - Add basic IME support - Showing and hiding the IME - inserting text - deleting characters - very basic configuration of the IME Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Apply suggestions from code review Improve the log message Co-authored-by: Josh Matthews <josh@joshmatthews.net> Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com> * Update ports/servoshell/egl/ohos.rs Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com> Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com> * ohos: Bump the minimum required SDK version to 5.0 Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * ohos: Remove pub from callbacks The callbacks don't need to be public, as we will be registering them. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Rename composition event Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * ohos: clippy in log Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * ohos: address some clippy warnings Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * ohos: Raise Error in mach if unsupported SDK version is used. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> * Add keyboard-types dependency for android Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> --------- Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> Signed-off-by: Jonathan Schwender <55576758+jschwe@users.noreply.github.com> Co-authored-by: Josh Matthews <josh@joshmatthews.net> Co-authored-by: Mukilan Thiyagarajan <mukilanthiagarajan@gmail.com>
* mach bootstrap: Lock cargo-deny to 0.16.1 (#34258)Jonathan Schwender2024-11-151-1/+2
| | | | | | As mentioned in https://github.com/servo/servo/pull/34257 we should also lock the cargo-deny version in mach bootstrap. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* Exclude `crown` from the root Cargo workspace (#34173)Samson2024-11-081-3/+15
| | | | | | | | | | | | | | | * Exclude crown from workspace Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Update shell.nix and remove filterlock Signed-off-by: Delan Azabani <dazabani@igalia.com> --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> Signed-off-by: Delan Azabani <dazabani@igalia.com> Co-authored-by: Delan Azabani <dazabani@igalia.com>
* ohos: Fix mach build on windows hosts (#34113)Jonathan Schwender2024-11-022-21/+22
| | | | | | | | | | | | | | | | | | | | | | | With the latest release (5.0) of the OpenHarmony SDK libclang.dll is now available and we can support building for OpenHarmony from windows hosts. Other changes required for building OH on windows: - We can't use the `<target_triple>-clang` wrappers, since those are bash scripts, which fails on windows when cc-rs tries to directly call them. However, we already pass all the required flags the wrapper script would set, so this is not an issue. - We need to use posix paths, otherwise the sysroot parameter will not be applied correctly (by bindgen). It seems to only cause issues with bindgen in practice, possibly because bindgen interprets the path with [`shlex::split`](https://github.com/rust-lang/rust-bindgen/blob/8a6d851318153b7304b651a7fd8f559938683de3/bindgen/lib.rs#L312C27-L312C40) which presumably causes the issues with windows paths. To be consistent I decided to use posix paths for all paths. - Fix checks for copying dlls. We need to check the target OS, not the host OS when determining what libraries to copy. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>