1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-12 02:30:29 +09:00

[wasm] Modify workload to pick threading runtime packs (#72412)

* [wasm] Modify workload to pick threading runtime packs

This change adds the 2 wasm threading runtime packs to the wasm workload. In order for a threading runtime pack to be chosen, WorkloadManifest.targets is also modified to override the runtime pack name when the following props are set:

WasmEnableThreads - full threading support and will load Microsoft.NETCore.App.Runtime.multithread.Mono.browser-wasm

WasmEnablePerfTrace - runtime only threading support and will load Microsoft.NETCore.App.Runtime.perftrace.Mono.browser-wasm

* Add error condition when both WasmEnableThreading and WasmEnablePerfTrace are true

* [wasm] Set default value for MonoWasmBuildVariant, for runtime pack nuget

* [wasm] Wasm.Build.Tests: build runtime pack nugets with different names

- The earlier approach of simply making copies of the existing runtime
pack nuget with different names doesn't work, and `dotnet workload
install` rejects it.

```
  Installing pack Microsoft.NETCore.App.Runtime.Mono.multithread.browser-wasm version 7.0.0-ci...
  Workload installation failed. Rolling back installed packs...
```

Instead, now we build the missing nugets from the project with different
values for `$(MonoWasmBuildVariant)`.

- this handles local builds, and incremental builds also
- To skip building the missing nugets, for example, when you have all of
them available, then set `WasmSkipMissingRuntimePackBuild=true`.

* fix comment

Co-authored-by: Steve Pfister <steve.pfister@microsoft.com>
Co-authored-by: Ankit Jain <radical@gmail.com>
This commit is contained in:
Steve Pfister 2022-07-27 09:08:59 -07:00 committed by GitHub
parent 97f5a04928
commit d7d0e421d7
Signed by: github
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 114 additions and 20 deletions

View file

@ -23,6 +23,17 @@ Example for wasm:
- Currently, this is used only by `src/tests/BuildWasmApps/Wasm.Build.Tests`
## Multiple runtime packs
The workload depends on three runtime packs - single threaded, multithreaded, and for perf tracing. If you have a local
runtime build, for say multithreaded, then the workload install will fail because of missing runtime pack nugets for
the other two variants.
For non-CI builds, we build the same runtime pack nuget but with the different expected names. So, essentially you get all
the expected nugets, but they are all the same except for the name.
If you have all the nugets available, and want to avoid the above behavior then set `WasmSkipMissingRuntimeBuild=true`.
## Limitations:
- The cross compiler package is built manually from the `InstallWorkloadUsingArtifacts` target