Uh oh!
There was an error while loading. Please reload this page.
[wasm] Add support for native relinking after Build, and AOT after publish - #57556
[wasm] Add support for native relinking after Build, and AOT after publish#57556radical wants to merge 24 commits into
Conversation
ghost
commented
Aug 17, 2021
I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label. |
ghost
commented
Aug 17, 2021
Tagging subscribers to 'arch-wasm': @lewing Issue Details!!WIP!! Based on the incremental build PR
|
radical
commented
Aug 19, 2021
/azp run runtime,runtime-staging |
|
Azure Pipelines successfully started running 2 pipeline(s). |
ghost
commented
Aug 23, 2021
Tagging subscribers to this area: @directhex Issue Details!!WIP!! Based on the incremental build PR
|
f606f4d to
6d54813Compare[This PR](dotnet/runtime#57556) adds support for relinking the native wasm files during the build (instead of only during publish). This required changes to the targets available, and how they can be used, and thus require changes in the blazor targets to work with that. The new setup is explained in https://github.com/radical/runtime/blob/wasm-build/src/mono/wasm/build/README.md .
radical
commented
Sep 8, 2021
1 failing test on wasm/windows is #58812 |
Uh oh!
There was an error while loading. Please reload this page.
radical
commented
Sep 9, 2021
/backport to release/6.0 |
Started backporting to release/6.0: https://github.com/dotnet/runtime/actions/runs/1219117683 |
@radical backporting to release/6.0 failed, the patch most likely resulted in conflicts: $ git am --3way --ignore-whitespace --keep-non-patch changes.patch
Applying: rebased
Applying: disable non-wasm builds
Applying: Fix helix work item name
Applying: fix test
Applying: get all the assemblies from the publishdir
Applying: AOTCompiler: Expand the paths used with MONO_PATH
Applying: Implement support for skipping assemblies for AOT
Applying: Update blazorwasm targets file with a locally patched copy
Applying: Cleanup
Applying: fix path for copying blazorwasm targets file
Applying: Fix tests on emsdk
Applying: Don't fixup runtime pack paths when not using workloadsApplying: update platform-matrixerror: sha1 information is lacking or useless (eng/pipelines/common/platform-matrix.yml).error: could not build fake ancestorhint: Use 'git am --show-current-patch=diff' to see the failed patchPatch failed at 0013 update platform-matrixWhen you have resolved this problem, run "git am --continue".If you prefer to skip this patch, run "git am --skip" instead.To restore the original branch and stop patching, run "git am --abort".Error: The process '/usr/bin/git' failed with exit code 128Please backport manually! |
[This PR](dotnet/runtime#57556) adds support for relinking the native wasm files during the build (instead of only during publish). This required changes to the targets available, and how they can be used, and thus require changes in the blazor targets to work with that. The new setup is explained in https://github.com/radical/runtime/blob/wasm-build/src/mono/wasm/build/README.md .
[This PR](dotnet/runtime#57556) adds support for relinking the native wasm files during the build (instead of only during publish). This required changes to the targets available, and how they can be used, and thus require changes in the blazor targets to work with that. The new setup is explained in https://github.com/radical/runtime/blob/wasm-build/src/mono/wasm/build/README.md .
radical
commented
Sep 10, 2021
radical
commented
Sep 16, 2021
Merged in #58913 . |
[This PR](dotnet/runtime#57556) adds support for relinking the native wasm files during the build (instead of only during publish). This required changes to the targets available, and how they can be used, and thus require changes in the blazor targets to work with that. The new setup is explained in https://github.com/radical/runtime/blob/wasm-build/src/mono/wasm/build/README.md . Forward ports the changes from release/6.0.1xx
Wasm app build can run in two scenarios:
dotnet build foo.csprojA dotnet wasm app has some native wasm files (
dotnet.wasm, anddotnet.js). How these files are obtained, or generated:Build
Publish
RunAOTCompilation=true, then the relinking includes AOT'ed assembliesBuildImplementation:
Target
WasmBuildAppruns after
Buildby default$(DisableAutoWasmBuildApp)$(WasmBuildAppAfterThisTarget)To run a custom target
$(WasmBuildAppDependsOn), and prepend your target name to thatAfterTargets="WasmBuildApp"on that targetAvoid depending on this target, because it is available only when the workload is installed. Use
$(WasmNativeWorkload)to check if it is installed.PublishImplementation:
This part runs as a nested build using a
MSBuildtask, which means that the project gets reevaluated. So, if there were any changes made to items/properties in targets before this, then they won't be visible in the nested build.By default
WasmTriggerPublishAppruns after thePublishtarget, and that triggers the nested buildWasmNestedPublishApp, which causesBuild, andPublishtargets to be runBuildto be run again, if you have any targets that get triggered by that, then they will be running twice.$(WasmBuildingForPublish)WasmTriggerPublishAppessentially just invokes the nested publishThis runs after
Publish$(DisableAutoWasmPublishApp)$(WasmTriggerPublishAppAfterThisTarget)To influence the wasm build for publish, use
WasmNestedPublishApp$(WasmNestedPublishAppDependsOn)AfterTargets="WasmNestedPublishApp"If you want to dependsOn on this, then use
DependsOnTargets="WasmTriggerPublishApp"Fixes#56783, and #53612