diff --git a/eng/AcquireWasiSdk.targets b/eng/AcquireWasiSdk.targets
new file mode 100644
index 00000000000000..03f07c94e27841
--- /dev/null
+++ b/eng/AcquireWasiSdk.targets
@@ -0,0 +1,62 @@
+
+
+
+ <_WasiSdkVersion>25.0
+ <_RuntimeLocalWasiSdkPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'wasi-sdk'))
+
+
+
+
+
+ <_ActualWasiSdkVersion Condition="'$(WASI_SDK_PATH)' != '' and Exists('$(WASI_SDK_PATH)/VERSION')">$([System.IO.File]::ReadAllText('$(WASI_SDK_PATH)/VERSION').Split()[0])
+ <_UseRuntimeLocalWasiSdk Condition="'$(_WasiSdkVersion)' != '$(_ActualWasiSdkVersion)'">true
+
+
+
+
+
+
+
+
+
+ <_WasiSdkMajorVersion>$(_WasiSdkVersion.Split('.')[0])
+ <_WasiSdkUrl>https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$(_WasiSdkMajorVersion)/wasi-sdk-$(_WasiSdkVersion)-x86_64-linux.tar.gz
+ <_WasiSdkUrl Condition="'$(HostOS)' == 'osx'" >https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$(_WasiSdkMajorVersion)/wasi-sdk-$(_WasiSdkVersion)-x86_64-macos.tar.gz
+ <_WasiSdkUrl Condition="'$(HostOS)' == 'windows'" >https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$(_WasiSdkMajorVersion)/wasi-sdk-$(_WasiSdkVersion)-x86_64-windows.tar.gz
+
+
+
+
+
+
+
+
+
+
+
+
+ $([MSBuild]::NormalizeDirectory('$(WASI_SDK_PATH)'))
+ $(_RuntimeLocalWasiSdkPath)
+
+
+
+
+
diff --git a/src/mono/wasi/provision.ps1 b/eng/download-wasi-sdk.ps1
similarity index 56%
rename from src/mono/wasi/provision.ps1
rename to eng/download-wasi-sdk.ps1
index 9f7d8368216dcd..23aed3a6af227f 100644
--- a/src/mono/wasi/provision.ps1
+++ b/eng/download-wasi-sdk.ps1
@@ -4,17 +4,13 @@ param(
[Parameter()]
[string]$WasiSdkVersion,
[Parameter()]
- [string]$WasiSdkPath,
- [Parameter()]
- [string]$WasiLocalPath
+ [string]$WasiSdkPath
)
Set-StrictMode -version 2.0
$ErrorActionPreference='Stop'
$ProgressPreference = 'SilentlyContinue'
-New-Item -Path $WasiSdkPath -ItemType "directory"
Invoke-WebRequest -Uri $WasiSdkUrl -OutFile ./wasi-sdk-$WasiSdkVersion-x86_64-windows.tar.gz
-tar --strip-components=1 -xzf ./wasi-sdk-$WasiSdkVersion-x86_64-windows.tar.gz -C $WasiSdkPath
-Copy-Item $WasiLocalPath/wasi-sdk-version.txt $WasiSdkPath/wasi-sdk-version.txt
+tar --strip-components=1 -xzmf ./wasi-sdk-$WasiSdkVersion-x86_64-windows.tar.gz -C $WasiSdkPath
Remove-Item ./wasi-sdk-$WasiSdkVersion-x86_64-windows.tar.gz -fo
diff --git a/eng/native/gen-buildsys.cmd b/eng/native/gen-buildsys.cmd
index d48996ac579dbe..317cd0830843d0 100644
--- a/eng/native/gen-buildsys.cmd
+++ b/eng/native/gen-buildsys.cmd
@@ -59,12 +59,12 @@ if /i "%__Arch%" == "wasm" (
)
if /i "%__Os%" == "wasi" (
if "%WASI_SDK_PATH%" == "" (
- if not exist "%__repoRoot%\src\mono\wasi\wasi-sdk" (
+ if not exist "%__repoRoot%\artifacts\wasi-sdk" (
echo Error: Should set WASI_SDK_PATH environment variable pointing to WASI SDK root.
exit /B 1
)
- set "WASI_SDK_PATH=%__repoRoot%\src\mono\wasi\wasi-sdk"
+ set "WASI_SDK_PATH=%__repoRoot%\artifacts\wasi-sdk"
)
set __CmakeGenerator=Ninja
set __ExtraCmakeParams=%__ExtraCmakeParams% -DCLR_CMAKE_TARGET_OS=wasi "-DCMAKE_TOOLCHAIN_FILE=!WASI_SDK_PATH!/share/cmake/wasi-sdk-p2.cmake" "-DCMAKE_CROSSCOMPILING_EMULATOR=node --experimental-wasm-bigint --experimental-wasi-unstable-preview1"
diff --git a/eng/native/gen-buildsys.sh b/eng/native/gen-buildsys.sh
index 588a1cc6509799..1d52c232b84572 100755
--- a/eng/native/gen-buildsys.sh
+++ b/eng/native/gen-buildsys.sh
@@ -109,8 +109,8 @@ if [[ "$host_arch" == "wasm" ]]; then
cmake_command="emcmake $cmake_command"
elif [[ "$target_os" == "wasi" ]]; then
if [[ -z "$WASI_SDK_PATH" ]]; then
- if [[ -d "$reporoot"/src/mono/wasi/wasi-sdk ]]; then
- export WASI_SDK_PATH="$reporoot"/src/mono/wasi/wasi-sdk
+ if [[ -d "$reporoot"/artifacts/wasi-sdk ]]; then
+ export WASI_SDK_PATH="$reporoot"/artifacts/wasi-sdk
else
echo "Error: You need to set the WASI_SDK_PATH environment variable pointing to the WASI SDK root."
exit 1
diff --git a/eng/testing/tests.wasi.targets b/eng/testing/tests.wasi.targets
index 066c4391ad4503..0bcc1835881460 100644
--- a/eng/testing/tests.wasi.targets
+++ b/eng/testing/tests.wasi.targets
@@ -13,8 +13,6 @@
>true
- $([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasi', 'wasi-sdk'))
- $([MSBuild]::EnsureTrailingSlash('$(WASI_SDK_PATH)').Replace('\', '/'))
<_BundleAOTTestWasmAppForHelixDependsOn>$(_BundleAOTTestWasmAppForHelixDependsOn);PrepareForWasiBuildApp;_PrepareForAOTOnHelix
diff --git a/src/libraries/sendtohelix-wasi.targets b/src/libraries/sendtohelix-wasi.targets
index 0a22d5f70136e0..ccb4e68c2db60c 100644
--- a/src/libraries/sendtohelix-wasi.targets
+++ b/src/libraries/sendtohelix-wasi.targets
@@ -46,8 +46,6 @@
false
false
- $([MSBuild]::NormalizeDirectory($(RepoRoot), 'src', 'mono', 'wasi', 'wasi-sdk'))
- $([MSBuild]::EnsureTrailingSlash('$(WASI_SDK_PATH)').Replace('\', '/'))
$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src', 'mono', 'wasi', 'build'))
$(HelixDependenciesStagingPath)$(WorkItemPrefix)wasi-sdk
$(HelixDependenciesStagingPath)$(WorkItemPrefix)wasmtime
@@ -63,11 +61,6 @@
dotnet-none
-
-
-
-
-
@@ -104,7 +97,20 @@
false
+
+
+
+
+
+
+
+
+
+
+
SetStressModes_$(Scenario).sh
-
- <__HelixDependenciesToStageThatDontExist Include="@(HelixDependenciesToStage)" />
- <__HelixDependenciesToStageThatDontExist Remove="@(HelixDependenciesToStage->Exists())" />
-
-
@@ -362,7 +357,12 @@
`WASI_SDK_PATH=/usr/local/wasi-sdk`
.. then we need to stage that before passing the path to helix like under `artifacts/obj/helix-staging`
-->
-
+
+
+ <__HelixDependenciesToStageThatDontExist Include="@(HelixDependenciesToStage)" Condition="!Exists('%(Identity)')" />
+
+
diff --git a/src/mono/Directory.Build.props b/src/mono/Directory.Build.props
index 6b6a4f6aa77bfe..84059d36ca6234 100644
--- a/src/mono/Directory.Build.props
+++ b/src/mono/Directory.Build.props
@@ -32,13 +32,6 @@
$(ProvisionEmscriptenDir.Replace('\', '/'))
-
-
- $([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory), 'wasi', 'wasi-sdk'))
- $([MSBuild]::EnsureTrailingSlash('$(WASI_SDK_PATH)').Replace('\', '/'))
- true
-
-
$(TargetOS).$(Platform).$(Configuration)
$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'mono', '$(TargetOS).$(Platform).$(Configuration)'))
diff --git a/src/mono/browser/README.md b/src/mono/browser/README.md
index 99db810abc6de7..baf2fe1785e678 100644
--- a/src/mono/browser/README.md
+++ b/src/mono/browser/README.md
@@ -393,7 +393,7 @@ Tests are run with V8, Chrome, node, and wasmtime for the various jobs.
- V8: the version used is from `eng/testing/BrowserVersions.props`. This is used for all the library tests, and WBT, but *not* runtime tests.
- Chrome: Same as V8.
- Node: fixed version from emsdk
-- wasmtime - fixed version in `src/mono/wasi/wasi-sdk-version.txt`.
+- wasmtime - fixed version in `src/mono/wasi/wasmtime-version.txt`.
### `eng/testing/BrowserVersions.props`
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 7f79cb409cd3fb..fcc63ac9a14a0a 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -130,7 +130,6 @@
-
@@ -306,51 +305,6 @@ JS_ENGINES = [NODE_JS]
-
-
-
-
-
-
-
- $([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)', 'wasi'))
- %(_VersionLines.Identity)
- $(WasiSdkVersion.Split('.')[0])
- https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$(WasiSdkMajorVersion)/wasi-sdk-$(WasiSdkVersion)-x86_64-linux.tar.gz
- https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$(WasiSdkMajorVersion)/wasi-sdk-$(WasiSdkVersion)-x86_64-macos.tar.gz
- https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-$(WasiSdkMajorVersion)/wasi-sdk-$(WasiSdkVersion)-x86_64-windows.tar.gz
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(_ActualVersionLines.Identity)
- %(_ExpectedVersionLines.Identity)
-
-
-
-
@@ -737,7 +691,7 @@ JS_ENGINES = [NODE_JS]
<_MonoCMakeConfigureCommand>cmake @(_MonoCMakeArgs, ' ') $(MonoCMakeExtraArgs) "$(MonoProjectRoot.TrimEnd('\/'))"
<_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' != 'true' and '$(TargetsWasi)' != 'true' and '$(_MonoSkipInitCompiler)' != 'true' and '$(HostOS)' != 'windows'">sh -c 'build_arch="$(_CompilerTargetArch)" compiler="$(MonoCCompiler)" . "$(RepositoryEngineeringCommonDir)native/init-compiler.sh" && @(_MonoBuildEnv, ' ') $(_MonoCMakeConfigureCommand)'
<_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' != 'true' and '$(TargetsWasi)' != 'true' and '$(_MonoSkipInitCompiler)' == 'true' and '$(HostOS)' != 'windows'">$(_MonoCCOption) $(_MonoCXXOption) @(_MonoBuildEnv, ' ') $(_MonoCMakeConfigureCommand)
- <_MonoCMakeConfigureCommand Condition="'$(TargetsWasi)' == 'true'">$(_MonoCMakeConfigureCommand) -DWASI_SDK_PREFIX=$(WASI_SDK_PATH) -DCMAKE_SYSROOT=$(WASI_SDK_PATH)share/wasi-sysroot -DCMAKE_TOOLCHAIN_FILE=$(WASI_SDK_PATH)/share/cmake/wasi-sdk-p2.cmake -DCMAKE_CXX_FLAGS="--sysroot=$(WASI_SDK_PATH)share/wasi-sysroot"
+ <_MonoCMakeConfigureCommand Condition="'$(TargetsWasi)' == 'true'">$(_MonoCMakeConfigureCommand) -DCMAKE_TOOLCHAIN_FILE=$(RuntimeBuildWasiSdkPath)share/cmake/wasi-sdk-p2.cmake
<_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' != 'true' and '$(TargetsWasi)' != 'true' and '$(HostOS)' == 'windows'">call "$(RepositoryEngineeringDir)native\init-vs-env.cmd" $(_CompilerTargetArch) && cd /D "$(MonoObjDir)" && @(_MonoBuildEnv, ' ') $(_MonoCMakeConfigureCommand)
<_MonoCMakeConfigureCommand Condition="'$(TargetsBrowser)' == 'true' and '$(HostOS)' != 'windows'">bash -c 'source $(_EmsdkEnvScriptPath) 2>&1 && emcmake $(_MonoCMakeConfigureCommand)'
@@ -930,7 +884,7 @@ JS_ENGINES = [NODE_JS]
-
+
CheckEnv;GetXcodeDir;GenerateRuntimeVersionFile;GenerateNativeSourcelinkFile;BuildMonoRuntime;BuildMonoCross
ProvisionEmscripten;$(MonoDependsOnTargets)
- ProvisionWasiSdk;ValidateWasiSdk;$(MonoDependsOnTargets)
+ AcquireWasiSdk;$(MonoDependsOnTargets)
diff --git a/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj b/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj
index dcb5b6882e53fb..54dc01747f7d07 100644
--- a/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj
+++ b/src/mono/nuget/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk/Microsoft.NET.Runtime.WebAssembly.Wasi.Sdk.pkgproj
@@ -18,8 +18,6 @@
-
-
diff --git a/src/mono/wasi/Makefile b/src/mono/wasi/Makefile
index d533be06d0793d..a040d9d14a9e5b 100644
--- a/src/mono/wasi/Makefile
+++ b/src/mono/wasi/Makefile
@@ -10,7 +10,6 @@ endif
DOTNET=$(TOP)/dotnet.sh
-WASI_SDK_PATH?=$(TOP)/src/mono/wasi/wasi-sdk
CONFIG?=Release
BINDIR?=$(TOP)/artifacts/bin
OBJDIR?=$(TOP)/artifacts/obj
@@ -56,7 +55,7 @@ build-tasks:
build-packages:
rm -f $(TOP)/artifacts/packages/$(CONFIG)/Shipping/*.nupkg
- WASI_SDK_PATH=$(WASI_SDK_PATH) $(TOP)/build.sh mono.packages+mono.manifests+packs.product -os wasi -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
+ $(TOP)/build.sh mono.packages+mono.manifests+packs.product -os wasi -c $(CONFIG) --binaryLog /p:ContinueOnError=false /p:StopOnFirstFailure=true $(MSBUILD_ARGS)
clean:
$(RM) -rf $(BUILDS_OBJ_DIR)
@@ -65,12 +64,12 @@ run-tests-%:
$(DOTNET) build $(TOP)/src/libraries/$*/tests/ /t:Test $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
run-build-tests:
- WASI_SDK_PATH=$(WASI_SDK_PATH) $(DOTNET) build $(TOP)/src/mono/wasi//Wasi.Build.Tests/ /t:Test /bl $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
+ $(DOTNET) build $(TOP)/src/mono/wasi//Wasi.Build.Tests/ /t:Test /bl $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS)
submit-wbt-helix:
PATH="$(JSVU):$(PATH)" \
$(DOTNET) build $(TOP)/src/mono/wasi/Wasi.Build.Tests/ /v:m /p:ArchiveTests=true /t:ArchiveTests $(_MSBUILD_WASM_BUILD_ARGS) $(MSBUILD_ARGS) && \
- WASI_SDK_PATH=$(WASI_SDK_PATH) BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
+ BUILD_REASON=wasm-test SYSTEM_TEAMPROJECT=public BUILD_REPOSITORY_NAME=dotnet/runtime BUILD_SOURCEBRANCH=main \
$(TOP)/eng/common/msbuild.sh --ci -restore $(TOP)/src/libraries/sendtohelix.proj \
/p:TestRunNamePrefixSuffix=WasiBuildTests /p:HelixBuild=`date "+%Y%m%d.%H%M"` /p:Creator=`whoami` \
/bl:$(TOP)/artifacts/log/$(CONFIG)/SendToHelix.binlog -v:m -p:HelixTargetQueue=$(HELIX_TARGET_QUEUE) \
diff --git a/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj b/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj
index 358c42abcd32ab..eb0a15f451fc50 100644
--- a/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj
+++ b/src/mono/wasi/Wasi.Build.Tests/Wasi.Build.Tests.csproj
@@ -31,6 +31,7 @@
+
RunScriptTemplate.cmd
@@ -48,7 +49,7 @@
-
+
@@ -112,6 +113,9 @@
+
+
+
diff --git a/src/mono/wasi/build/WasiApp.InTree.targets b/src/mono/wasi/build/WasiApp.InTree.targets
index 6d67a76da98035..52eac2e3cef8bc 100644
--- a/src/mono/wasi/build/WasiApp.InTree.targets
+++ b/src/mono/wasi/build/WasiApp.InTree.targets
@@ -6,8 +6,18 @@
+
+
+
+
+ $(RuntimeBuildWasiSdkPath)
+
+
+
diff --git a/src/mono/wasi/build/WasiApp.targets b/src/mono/wasi/build/WasiApp.targets
index 491e41208c6634..f5301b87fe7085 100644
--- a/src/mono/wasi/build/WasiApp.targets
+++ b/src/mono/wasi/build/WasiApp.targets
@@ -139,9 +139,12 @@
/>
-
+ $(WASI_SDK_PATH)bin/clang
+ $(WasiClang).exe
+ $([MSBuild]::NormalizeDirectory($(WASI_SDK_PATH), 'bin'))
+
<_ToolchainMissingPaths Condition="'$(_ToolchainMissingPaths)' == '' and ('$(WasiClang)' == '' or !Exists('$(WasiClang)'))">%24(WasiClang)=$(WasiClang)
@@ -157,8 +160,10 @@
<_IsToolchainMissing Condition="'$(_ToolchainMissingErrorMessage)' != ''">true
+
+
+
- $([MSBuild]::NormalizeDirectory($(WasiSdkBinPath)))
<_WasmLLVMPathForAOT>$(WasiSdkBinPath)
@@ -387,10 +392,7 @@
<_WasmNativeFileForLinking Condition="'$(_WasmSIMDLib)' != ''" Include="$(MicrosoftNetCoreAppRuntimePackRidNativeDir)$(_WasmSIMDLib)" />
<_WasmNativeFileForLinking Remove="$(MicrosoftNetCoreAppRuntimePackRidNativeDir)$(_WasmEHLibToExclude)" />
<_WasmNativeFileForLinking Remove="$(MicrosoftNetCoreAppRuntimePackRidNativeDir)$(_WasmSIMDLibToExclude)" />
-
- <_WasmNativeFileForLinking Include="$(WasiSysRoot)\lib\wasm32-wasip2\libc++.a" />
- <_WasmNativeFileForLinking Include="$(WasiSysRoot)\lib\wasm32-wasip2\libc++abi.a" />
-
+ <_WasmNativeFileForLinking Include="-lstdc++" />
<_WasmNativeFileForLinking Include="@(NativeFileReference)" />
diff --git a/src/mono/wasi/build/WasiSdk.Defaults.props b/src/mono/wasi/build/WasiSdk.Defaults.props
deleted file mode 100644
index 217cf5726cdcf4..00000000000000
--- a/src/mono/wasi/build/WasiSdk.Defaults.props
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
- $([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory), '..', 'wasi-sdk'))
- $([MSBuild]::EnsureTrailingSlash('$(WASI_SDK_PATH)').Replace('\', '/'))
- $([MSBuild]::NormalizeDirectory($(WASI_SDK_PATH), 'share', 'wasi-sysroot'))
- $(WASI_SDK_PATH)bin/clang
- $(WasiClang).exe
-
- $([MSBuild]::NormalizeDirectory($(WASI_SDK_PATH), 'bin'))
-
-
-
-
-
diff --git a/src/mono/wasi/runtime/CMakeLists.txt b/src/mono/wasi/runtime/CMakeLists.txt
index 38928bf19fbfb1..c13a5c959f1fd4 100644
--- a/src/mono/wasi/runtime/CMakeLists.txt
+++ b/src/mono/wasi/runtime/CMakeLists.txt
@@ -14,8 +14,7 @@ set_target_properties(dotnet PROPERTIES COMPILE_FLAGS ${CONFIGURATION_WASICC_FLA
target_link_libraries(dotnet
PRIVATE
- ${CMAKE_SYSROOT}/lib/wasm32-wasip2/libc++.a
- ${CMAKE_SYSROOT}/lib/wasm32-wasip2/libc++abi.a
+ stdc++
${ICU_LIB_DIR}/libicudata.a
${ICU_LIB_DIR}/libicuuc.a
${ICU_LIB_DIR}/libicui18n.a
diff --git a/src/mono/wasi/wasi-sdk-version.txt b/src/mono/wasi/wasi-sdk-version.txt
deleted file mode 100644
index be8e64f5a38cfe..00000000000000
--- a/src/mono/wasi/wasi-sdk-version.txt
+++ /dev/null
@@ -1 +0,0 @@
-25.0
diff --git a/src/mono/wasi/wasi.proj b/src/mono/wasi/wasi.proj
index 219737950f9ad1..0dba67c01bca10 100644
--- a/src/mono/wasi/wasi.proj
+++ b/src/mono/wasi/wasi.proj
@@ -18,18 +18,13 @@
<_WasiCompileRspPath>$(NativeBinDir)src\wasi-compile.rsp
<_WasiLinkRspPath>$(NativeBinDir)src\wasi-link.rsp
false
- $([MSBuild]::NormalizeDirectory($(MSBuildThisFileDirectory), 'wasi-sdk'))
- $([MSBuild]::EnsureTrailingSlash('$(WASI_SDK_PATH)').Replace('\', '/'))
- $(WASI_SDK_PATH)bin/clang
- $(WasiClang).exe
- $(WASI_SDK_PATH)bin/llvm-ar
- $(WasiLLVMAr).exe
+
+
-
@@ -37,7 +32,6 @@
-
@@ -72,8 +66,14 @@
-
+
+ $(RuntimeBuildWasiSdkPath)bin/clang
+ $(WasiClang).exe
+ $(RuntimeBuildWasiSdkPath)bin/llvm-ar
+ $(WasiLLVMAr).exe
+
<_WasmTimezonesPath>$([MSBuild]::NormalizePath('$(PkgSystem_Runtime_TimeZoneData)', 'contentFiles', 'any', 'any', 'data'))
<_WasmTimezonesBundleObjectFile>wasm-bundled-timezones.o
<_WasmTimezonesBundleArchive>$(WasiObjDir)\wasm-bundled-timezones.a
@@ -122,14 +122,6 @@
-
-
-
-
@@ -198,7 +190,7 @@
+ DependsOnTargets="AcquireWasiSdk;GenerateWasiPropsAndRspFiles;GenerateManagedToNative;GenerateTimezonesArchive">
cmake -G Ninja $(MSBuildThisFileDirectory)runtime
- $(CMakeBuildRuntimeConfigureCmd) --no-warn-unused-cli -DCMAKE_TOOLCHAIN_FILE="$([MSBuild]::NormalizePath('$(WASI_SDK_PATH)', 'share/cmake/wasi-sdk-p2.cmake'))"
- $(CMakeBuildRuntimeConfigureCmd) -DWASI_SDK_PREFIX=$(WASI_SDK_PATH)
- $(CMakeBuildRuntimeConfigureCmd) -DCMAKE_SYSROOT=$(WASI_SDK_PATH)share/wasi-sysroot
- $(CMakeBuildRuntimeConfigureCmd) -DCMAKE_CXX_FLAGS="--sysroot=$(WASI_SDK_PATH)share/wasi-sysroot"
-
+ $(CMakeBuildRuntimeConfigureCmd) --no-warn-unused-cli -DCMAKE_TOOLCHAIN_FILE="$([MSBuild]::NormalizePath('$(RuntimeBuildWasiSdkPath)', 'share/cmake/wasi-sdk-p2.cmake'))"
$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_WASICC_FLAGS="$(CMakeConfigurationWasiFlags)"
$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_LINK_FLAGS="$(CMakeConfigurationLinkFlags)"
$(CMakeBuildRuntimeConfigureCmd) -DCONFIGURATION_WASM_OPT_FLAGS="@(WasmOptConfigurationFlags, ';')"
diff --git a/src/mono/wasm/build/WasmApp.LocalBuild.props b/src/mono/wasm/build/WasmApp.LocalBuild.props
index a12d0a40af0f94..2a313c41979029 100644
--- a/src/mono/wasm/build/WasmApp.LocalBuild.props
+++ b/src/mono/wasm/build/WasmApp.LocalBuild.props
@@ -30,8 +30,7 @@
$(RuntimeSrcDir)\artifacts\bin\
$(RuntimeSrcDir)\src\mono\browser\emsdk\
- $([MSBuild]::NormalizeDirectory($(RuntimeSrcDir), 'src', 'mono', 'wasi', 'wasi-sdk'))
- $([MSBuild]::EnsureTrailingSlash('$(WASI_SDK_PATH)').Replace('\', '/'))
+ $([MSBuild]::NormalizeDirectory($(RuntimeSrcDir), 'artifacts', 'wasi-sdk'))
$([MSBuild]::NormalizeDirectory($(ArtifactsBinDir), 'microsoft.netcore.app.runtime.$(RuntimeIdentifier)', $(RuntimeConfig)))
@@ -47,6 +46,8 @@
$(WasmBuildSupportDir)\
+ $([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'emsdk'))
+ $([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'wasi-sdk'))
$([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'microsoft.netcore.app.runtime.$(RuntimeIdentifier)'))
$([MSBuild]::NormalizeDirectory($(BuildBaseDir), 'MonoAOTCompiler'))
diff --git a/src/mono/wasm/build/WasmApp.LocalBuild.targets b/src/mono/wasm/build/WasmApp.LocalBuild.targets
index 31dcd68be03259..bedbba30750c07 100644
--- a/src/mono/wasm/build/WasmApp.LocalBuild.targets
+++ b/src/mono/wasm/build/WasmApp.LocalBuild.targets
@@ -24,6 +24,7 @@
+
true
diff --git a/src/mono/wasm/data/aot-tests/Directory.Build.props b/src/mono/wasm/data/aot-tests/Directory.Build.props
index 3728136a63d1e9..e58f1854e28fd0 100644
--- a/src/mono/wasm/data/aot-tests/Directory.Build.props
+++ b/src/mono/wasm/data/aot-tests/Directory.Build.props
@@ -9,8 +9,6 @@
$(HELIX_CORRELATION_PAYLOAD)\build\
<_WasmTargetsDir>$(WasmBuildSupportDir)\wasm\
<_WasmSharedDir>$(WasmBuildSupportDir)\wasm-shared\
- $(WasmBuildSupportDir)\emsdk\
- $(WasmBuildSupportDir)/wasi-sdk/
diff --git a/src/native/libs/build-native.proj b/src/native/libs/build-native.proj
index 4bb1f0164d9e83..62cd41efcd579f 100644
--- a/src/native/libs/build-native.proj
+++ b/src/native/libs/build-native.proj
@@ -26,18 +26,21 @@
-
- $([MSBuild]::NormalizeDirectory($(RepoRoot), 'src', 'mono', 'wasi', 'wasi-sdk'))
- $([MSBuild]::EnsureTrailingSlash('$(WASI_SDK_PATH)').Replace('\', '/'))
- <_BuildNativeEnvironmentVariables>$(_BuildNativeEnvironmentVariables);WASI_SDK_PATH=$(WASI_SDK_PATH)
-
-
+
+
+
+
+ <_BuildNativeEnvironmentVariables>WASI_SDK_PATH=$(RuntimeBuildWasiSdkPath)
+
+
+
@@ -92,7 +95,7 @@