-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build emsdk from source #343
Conversation
<PropertyGroup> | ||
|
||
<__ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</__ProjectDir> | ||
<ProjectDir>$(__ProjectDir)\</ProjectDir> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for reference, if it helps: https://learn.microsoft.com/en-us/visualstudio/msbuild/property-functions?view=vs-2022#msbuild-ensuretrailingslash
<RootRepoDir>$(ProjectDir)</RootRepoDir> | ||
<ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</ProjectDir> | ||
|
||
<BaseIntermediateOutputPath>$(RootRepoDir)artifacts\obj\$(PlatformConfigPathPart)\</BaseIntermediateOutputPath> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for future reference really: $([MSBuild]::NormalizeDirectory(..))
- this will use the correct slash, and ensure the trailing slash.
As a potential follow up, it would be useful to run WBT from
I think this should be enough. |
I was planning on throwing this into General Testing in the morning, to do a test PR in runtime
|
Btw I meant adding a CI job here. |
hopefully https://github.com/dotnet/runtime/pull/88687/checks runs and does something meaningful |
FFS, the required test branch was skipped. What do I have to do to get wasm-build-tests.yml to run in CI? |
What do you need? Run just for testing? It is run based on path changes. but you can force it for testing if you want. - template: /eng/pipelines/common/templates/wasm-build-tests.yml
parameters:
platforms:
- browser_wasm
- browser_wasm_win
alwaysRun: ${{ variables.isRollingBuild }}
extraBuildArgs: /p:AotHostArchitecture=x64 /p:AotHostOS=$(_hostedOS) .. in |
Also, |
Okay. Good. Great! Looks like https://dev.azure.com/dnceng-public/public/_build/results?buildId=336983&view=logs&j=1fa93050-f528-55d3-a351-f8bf9ce5adbf&t=d9dc6d3d-3442-5b70-1296-5b62e29ea209 is the one we're talking about. And it's explicitly installing my manifest from General Testing:
So the results on Helix on here: https://dev.azure.com/dnceng-public/public/_build/results?buildId=336983&view=logs&j=1fa93050-f528-55d3-a351-f8bf9ce5adbf&t=a9f1a437-3b59-5900-1137-ec6cae9a530c will be using my self-built emsdk? That'll be it? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome 🎆 🚀
Since dotnet/emsdk#343, we are now able to support native linux-arm64 on wasm. This change adds linux-arm64 to wasm-tools and wasi-experimental workloads.
Since dotnet/emsdk#343, we are now able to support native linux-arm64 on wasm. This change adds linux-arm64 to wasm-tools and wasi-experimental workloads.
Previously, our emsdk packages have effectively just wrapped the emsdk binaries downloaded by the
emsdk.py
script in the repository, built by upstream at some time and shipped out to users. This PR replaces all those pieces with files built on Microsoft infrastructure and shipped in via transport packages from those repositories. As part of this, we are no longer constrained by the architecture limitations of upstream and can ship native ARM64 builds for Mac, Linux and Windows.By uncoupling ourselves from upstream, it enables us to diverge from them on how we build things, which versions are included, etc. As of now, the headline differences are:
linux-x64
result, may vary by platform)Note that downloaded components are not 101% eliminated - Python is built using binary versions of OpenSSL which we are not building ourselves. This can be resolved later.
Closes: dotnet/runtime#75613