mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-11 02:13:38 +09:00

Like https://github.com/dotnet/runtime/pull/83833 but also includes wasi jobs. See https://github.com/dotnet/runtime/issues/80619
342 lines
23 KiB
XML
342 lines
23 KiB
XML
<Project TreatAsLocalProperty="ArchiveTests">
|
|
<PropertyGroup>
|
|
<_UseWasmSymbolicator Condition="'$(TestTrimming)' != 'true'">true</_UseWasmSymbolicator>
|
|
</PropertyGroup>
|
|
|
|
<Import Project="tests.wasm.targets" />
|
|
<!-- We need to set this in order to get extensibility on xunit category traits and other arguments we pass down to xunit via MSBuild properties -->
|
|
<PropertyGroup>
|
|
<IsBrowserWasmProject Condition="'$(IsBrowserWasmProject)' == ''">true</IsBrowserWasmProject>
|
|
|
|
<!-- set this when provisioning emsdk on CI -->
|
|
<EMSDK_PATH Condition="'$(EMSDK_PATH)' == '' and '$(ContinuousIntegrationBuild)' == 'true' and '$(MonoProjectRoot)' != ''">$([MSBuild]::NormalizeDirectory($(MonoProjectRoot), 'wasm', 'emsdk'))</EMSDK_PATH>
|
|
|
|
<!--
|
|
- For regular library tests, it will use the symbols file from the runtime pack.
|
|
- for AOT library tests, we use WasmNativeStrip=false, so we already have symbols
|
|
-->
|
|
<WasmNativeStrip Condition="'$(WasmNativeStrip)' == ''">false</WasmNativeStrip>
|
|
<WasmEmitSymbolMap Condition="'$(WasmEmitSymbolMap)' == ''">true</WasmEmitSymbolMap>
|
|
|
|
<_WasmMainJSFileName Condition="'$(WasmMainJSPath)' != ''">$([System.IO.Path]::GetFileName('$(WasmMainJSPath)'))</_WasmMainJSFileName>
|
|
<_WasmStrictVersionMatch Condition="'$(ContinuousIntegrationBuild)' == 'true'">true</_WasmStrictVersionMatch>
|
|
<WasmIgnoreNet6WorkloadInstallErrors Condition="'$(WasmIgnoreNet6WorkloadInstallErrors)' == ''">true</WasmIgnoreNet6WorkloadInstallErrors>
|
|
<WasmIgnoreNet6WorkloadInstallErrors Condition="'$(WasmIgnoreNet6WorkloadInstallErrors)' != 'true'">false</WasmIgnoreNet6WorkloadInstallErrors>
|
|
<!--<InstallWorkloadUsingArtifactsDependsOn>_GetWorkloadsToInstall;$(InstallWorkloadUsingArtifactsDependsOn)</InstallWorkloadUsingArtifactsDependsOn>-->
|
|
<GetWorkloadInputsDependsOn>_GetWorkloadsToInstall;$(GetWorkloadInputsDependsOn)</GetWorkloadInputsDependsOn>
|
|
<InstallChromeForTests Condition="'$(InstallChromeForTests)' == '' and
|
|
('$(ContinuousIntegrationBuild)' != 'true' or Exists('/.dockerenv')) and
|
|
'$(Scenario)' == 'WasmTestOnBrowser'">true</InstallChromeForTests>
|
|
|
|
<GetNuGetsToBuildForWorkloadTestingDependsOn>_GetRuntimePackNuGetsToBuild;_GetNugetsForAOT;$(GetNuGetsToBuildForWorkloadTestingDependsOn)</GetNuGetsToBuildForWorkloadTestingDependsOn>
|
|
<_BundleAOTTestWasmAppForHelixDependsOn>$(_BundleAOTTestWasmAppForHelixDependsOn);PrepareForWasmBuildApp;_PrepareForAOTOnHelix</_BundleAOTTestWasmAppForHelixDependsOn>
|
|
<WasmEnableLegacyJsInterop Condition="'$(WasmEnableLegacyJsInterop)' == ''">true</WasmEnableLegacyJsInterop>
|
|
</PropertyGroup>
|
|
|
|
<!-- We expect WASM users to indicate they would like to have bigger download size by adding WasmIncludeFullIcuData, -->
|
|
<!-- by default we make their icu small by sharding. -->
|
|
<!-- Trimming test InvariantGlobalizationFalse requires full ICU data. -->
|
|
<!-- ToDo: edit after https://github.com/dotnet/runtime/issues/82819 is merged -->
|
|
<PropertyGroup Condition="'$(TestTrimming)' == 'true'">
|
|
<WasmIncludeFullIcuData>true</WasmIncludeFullIcuData>
|
|
</PropertyGroup>
|
|
|
|
<!-- On CI this is installed as part of pretest, but it should still be installed
|
|
for WBT, and debugger tests -->
|
|
<Import Project="$(MSBuildThisFileDirectory)wasm-provisioning.targets"
|
|
Condition="'$(InstallChromeForTests)' == 'true' and ('$(ContinuousIntegrationBuild)' != 'true' or '$(IsBrowserWasmProject)' != 'true')" />
|
|
|
|
<PropertyGroup>
|
|
<_WasmBrowserPathForTests Condition="'$(BROWSER_PATH_FOR_TESTS)' != ''">$(BROWSER_PATH_FOR_TESTS)</_WasmBrowserPathForTests>
|
|
<_WasmBrowserPathForTests Condition="'$(_WasmBrowserPathForTests)' == '' and '$(InstallChromeForTests)' == 'true'">$(ChromeBinaryPath)</_WasmBrowserPathForTests>
|
|
</PropertyGroup>
|
|
|
|
<!--
|
|
This is running during compile time and therefore $(Scenario) is empty, unless the specific project sets it.
|
|
Any settings in the project file could be replaced on Helix.
|
|
See also eng\testing\WasmRunnerTemplate.sh
|
|
-->
|
|
<ItemGroup Condition="'$(OS)' != 'Windows_NT'">
|
|
<SetScriptCommands Condition="'$(Scenario)' != '' and '$(ContinuousIntegrationBuild)' != 'true'" Include="export SCENARIO=$(Scenario)" />
|
|
<SetScriptCommands Condition="'$(JSEngine)' != ''" Include="export JS_ENGINE=--engine=$(JSEngine)" />
|
|
<SetScriptCommands Condition="'$(JSEngineArgs)' != ''" Include="export JS_ENGINE_ARGS=$(JSEngineArgs)" />
|
|
<SetScriptCommands Condition="'$(_WasmMainJSFileName)' != ''" Include="export MAIN_JS=--js-file=$(_WasmMainJSFileName)" />
|
|
<!-- Workaround for https://github.com/dotnet/runtime/issues/74328 -->
|
|
<SetScriptCommands Condition="'$(BuildAOTTestsOnHelix)' == 'true'" Include="export DOTNET_CLI_DO_NOT_USE_MSBUILD_SERVER=1" />
|
|
</ItemGroup>
|
|
<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
|
|
<SetScriptCommands Condition="'$(Scenario)' != '' and '$(ContinuousIntegrationBuild)' != 'true'" Include="set "SCENARIO=$(Scenario)"" />
|
|
<SetScriptCommands Condition="'$(JSEngine)' != ''" Include="set "JS_ENGINE=--engine^=$(JSEngine)"" />
|
|
<SetScriptCommands Condition="'$(JSEngineArgs)' != ''" Include="set "JS_ENGINE_ARGS=$(JSEngineArgs)"" />
|
|
<SetScriptCommands Condition="'$(_WasmMainJSFileName)' != ''" Include="set "MAIN_JS=--js-file^=$(_WasmMainJSFileName)"" />
|
|
<!-- Workaround for https://github.com/dotnet/runtime/issues/74328 -->
|
|
<SetScriptCommands Condition="'$(BuildAOTTestsOnHelix)' == 'true'" Include="set DOTNET_CLI_DO_NOT_USE_MSBUILD_SERVER=1" />
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup>
|
|
<_AppArgs Condition="'$(IsFunctionalTest)' != 'true' and '$(Scenario)' != 'BuildWasmApps' and '$(WasmMainAssemblyFileName)' == ''">--run WasmTestRunner.dll $(AssemblyName).dll</_AppArgs>
|
|
<_AppArgs Condition="'$(IsFunctionalTest)' != 'true' and '$(WasmMainAssemblyFileName)' != ''">--run $(WasmMainAssemblyFileName)</_AppArgs>
|
|
<_AppArgs Condition="'$(IsFunctionalTest)' == 'true'">--run $(AssemblyName).dll</_AppArgs>
|
|
|
|
<_AppArgs Condition="'$(WasmTestAppArgs)' != ''">$(_AppArgs) $(WasmTestAppArgs)</_AppArgs>
|
|
|
|
<WasmXHarnessMonoArgs Condition="'$(XunitShowProgress)' == 'true'">$(WasmXHarnessMonoArgs) --setenv=XHARNESS_LOG_TEST_START=1</WasmXHarnessMonoArgs>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(RunScriptCommand)' == ''">
|
|
<_XHarnessArgs Condition="'$(OS)' != 'Windows_NT'">wasm $XHARNESS_COMMAND --app=. --output-directory=$XHARNESS_OUT</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="'$(OS)' == 'Windows_NT'">wasm %XHARNESS_COMMAND% --app=. --output-directory=%XHARNESS_OUT%</_XHarnessArgs>
|
|
|
|
<_XHarnessArgs Condition="'$(IsFunctionalTest)' == 'true'" >$(_XHarnessArgs) --expected-exit-code=$(ExpectedExitCode)</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="'$(WasmXHarnessArgs)' != ''" >$(_XHarnessArgs) $(WasmXHarnessArgs)</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="('$(WasmEnableThreads)' == 'true' or '$(WasmEnablePerfTracing)' == 'true') and '$(_XHarnessArs.Contains("--web-server-use-cop")' != 'true'">$(_XHarnessArgs) --web-server-use-cop</_XHarnessArgs>
|
|
<_XHarnessArgs >$(_XHarnessArgs) -s dotnet.js.symbols</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="'$(_UseWasmSymbolicator)' == 'true'" >$(_XHarnessArgs) --symbol-patterns wasm-symbol-patterns.txt</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="'$(_UseWasmSymbolicator)' == 'true'" >$(_XHarnessArgs) --symbolicator WasmSymbolicator.dll,Microsoft.WebAssembly.Internal.SymbolicatorWrapperForXHarness</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="'$(_WasmBrowserPathForTests)' != ''" >$(_XHarnessArgs) "--browser-path=$(_WasmBrowserPathForTests)"</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="'$(_XHarnessTestsTimeout)' != '' " >$(_XHarnessArgs) "--timeout=$(_XHarnessTestsTimeout)"</_XHarnessArgs>
|
|
<_XHarnessArgs Condition="'$(WasmXHarnessArgsCli)' != ''" >$(_XHarnessArgs) $(WasmXHarnessArgsCli)</_XHarnessArgs>
|
|
|
|
<!-- There two flavors of WasmXHarnessArgs and WasmXHarnessMonoArgs, one is MSBuild property and the other is environment variable -->
|
|
<RunScriptCommand Condition="'$(OS)' != 'Windows_NT'">$HARNESS_RUNNER $(_XHarnessArgs) %24XHARNESS_ARGS %24WasmXHarnessArgs -- $(WasmXHarnessMonoArgs) %24WasmXHarnessMonoArgs $(_AppArgs) %24WasmTestAppArgs</RunScriptCommand>
|
|
<RunScriptCommand Condition="'$(OS)' == 'Windows_NT'">%HARNESS_RUNNER% $(_XHarnessArgs) %XHARNESS_ARGS% %WasmXHarnessArgs% -- $(WasmXHarnessMonoArgs) %WasmXHarnessMonoArgs% $(_AppArgs) %WasmTestAppArgs%</RunScriptCommand>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(BuildAOTTestsOnHelix)' == 'true'">
|
|
<_AOTBuildCommand Condition="'$(BrowserHost)' != 'windows'">_buildAOTFunc publish/ProxyProjectForAOTOnHelix.proj $XHARNESS_OUT/AOTBuild.binlog</_AOTBuildCommand>
|
|
<_AOTBuildCommand Condition="'$(BrowserHost)' == 'windows'">dotnet msbuild publish/ProxyProjectForAOTOnHelix.proj /bl:%XHARNESS_OUT%/AOTBuild.binlog</_AOTBuildCommand>
|
|
|
|
<!-- running aot-helix tests locally, so we can test with the same project file as CI -->
|
|
<_AOTBuildCommand Condition="'$(ContinuousIntegrationBuild)' != 'true'">$(_AOTBuildCommand) /p:RuntimeSrcDir=$(RepoRoot) /p:RuntimeConfig=$(Configuration)</_AOTBuildCommand>
|
|
|
|
<_AOTBuildCommand>$(_AOTBuildCommand) /p:RunAOTCompilation=$(RunAOTCompilation)</_AOTBuildCommand>
|
|
<_AOTBuildCommand>$(_AOTBuildCommand) $(_ShellCommandSeparator) cd wasm_build/AppBundle</_AOTBuildCommand>
|
|
|
|
<RunScriptCommand Condition="'$(RunScriptCommand)' == ''">$(_AOTBuildCommand)</RunScriptCommand>
|
|
<RunScriptCommand Condition="'$(RunScriptCommand)' != ''">$(_AOTBuildCommand) $(_ShellCommandSeparator) $(RunScriptCommand)</RunScriptCommand>
|
|
</PropertyGroup>
|
|
|
|
<!-- Don't include InTree.props here, because the test projects themselves can set the target* properties -->
|
|
<Import Project="$(MonoProjectRoot)\wasm\build\WasmApp.props"
|
|
Condition="'$(BuildAOTTestsOn)' == 'local'" />
|
|
<Import Project="$(MonoProjectRoot)\wasm\build\WasmApp.InTree.targets"
|
|
Condition="'$(BuildAOTTestsOn)' == 'local'" />
|
|
|
|
<PropertyGroup Condition="'$(BuildAOTTestsOnHelix)' == 'true'">
|
|
<!-- wasm targets are not imported at all, in this case, because we run the wasm build on helix -->
|
|
</PropertyGroup>
|
|
<ItemGroup Condition="'$(BuildAOTTestsOn)' == 'helix'">
|
|
<TrimmerRootDescriptor
|
|
Condition="'$(WasmEnableLegacyJsInterop)' == 'true'"
|
|
Include="$(MonoProjectRoot)\wasm\build\ILLink.Descriptors.LegacyJsInterop.xml" />
|
|
</ItemGroup>
|
|
|
|
<PropertyGroup Condition="'$(IsWasmProject)' == 'true' and '$(BuildAOTTestsOnHelix)' != 'true'">
|
|
<WasmBuildOnlyAfterPublish>true</WasmBuildOnlyAfterPublish>
|
|
|
|
<!-- wasm's publish targets will trigger publish, so we shouldn't do that -->
|
|
<PublishTestAsSelfContainedDependsOn />
|
|
<WasmNestedPublishAppDependsOn>PrepareForWasmBuildApp;$(WasmNestedPublishAppDependsOn)</WasmNestedPublishAppDependsOn>
|
|
</PropertyGroup>
|
|
|
|
<Target Name="PrepareForWasmBuildApp">
|
|
<PropertyGroup>
|
|
<WasmAppDir>$(BundleDir)</WasmAppDir>
|
|
<WasmMainAssemblyFileName Condition="'$(WasmMainAssemblyFileName)' == ''">WasmTestRunner.dll</WasmMainAssemblyFileName>
|
|
<WasmMainJSPath Condition="'$(WasmMainJSPath)' == ''">$(MonoProjectRoot)\wasm\test-main.js</WasmMainJSPath>
|
|
<WasmMainJSFileName>$([System.IO.Path]::GetFileName('$(WasmMainJSPath)'))</WasmMainJSFileName>
|
|
<WasmMainHtmlPath>$(PublishDir)index.html</WasmMainHtmlPath>
|
|
<WasmInvariantGlobalization>$(InvariantGlobalization)</WasmInvariantGlobalization>
|
|
<WasmGenerateRunV8Script>true</WasmGenerateRunV8Script>
|
|
|
|
<WasmNativeDebugSymbols Condition="'$(DebuggerSupport)' == 'true' and '$(WasmNativeDebugSymbols)' == ''">true</WasmNativeDebugSymbols>
|
|
<WasmDebugLevel Condition="'$(DebuggerSupport)' == 'true' and '$(WasmDebugLevel)' == ''">-1</WasmDebugLevel>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup Condition="'$(IncludeSatelliteAssembliesInVFS)' == 'true' and '$(BuildAOTTestsOnHelix)' != 'true'">
|
|
<_SatelliteAssemblies Include="$(PublishDir)*\*.resources.dll" />
|
|
<_SatelliteAssemblies CultureName="$([System.IO.Directory]::GetParent('%(Identity)').Name)" />
|
|
<_SatelliteAssemblies TargetPath="%(CultureName)\%(FileName)%(Extension)" />
|
|
|
|
<WasmFilesToIncludeInFileSystem Include="@(_SatelliteAssemblies)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<WasmExtraFilesToDeploy Include="$(WasmMainJSPath)" />
|
|
<WasmExtraFilesToDeploy Include="$(WasmMainHtmlPath)" />
|
|
|
|
<WasmAssembliesToBundle Include="$(PublishDir)\**\*.dll" Condition="'$(BuildAOTTestsOnHelix)' == 'true'" />
|
|
<WasmFilesToIncludeInFileSystem Include="@(ContentWithTargetPath)" />
|
|
|
|
<_CopyLocalPaths
|
|
Include="@(PublishItemsOutputGroupOutputs)"
|
|
Condition="'%(PublishItemsOutputGroupOutputs.BuildReference)' == 'true' and
|
|
!$([System.String]::new('%(PublishItemsOutputGroupOutputs.Identity)').EndsWith('.resources.dll'))" />
|
|
|
|
<_CopyLocalPaths TargetPath="%(_CopyLocalPaths.RelativePath)" Condition="'%(_CopyLocalPaths.RelativePath)' != ''" />
|
|
<_CopyLocalPaths TargetPath="%(FileName)%(Extension)" Condition="'%(_CopyLocalPaths.RelativePath)' == ''" />
|
|
<WasmFilesToIncludeInFileSystem Include="@(_CopyLocalPaths)" />
|
|
|
|
<!-- Include files specified by test projects from publish dir -->
|
|
<WasmFilesToIncludeInFileSystem
|
|
Include="$(PublishDir)%(WasmFilesToIncludeFromPublishDir.Identity)"
|
|
TargetPath="%(WasmFilesToIncludeFromPublishDir.Identity)"
|
|
Condition="'%(WasmFilesToIncludeFromPublishDir.Identity)' != ''" />
|
|
</ItemGroup>
|
|
|
|
<WriteLinesToFile File="$(WasmMainHtmlPath)" Lines="<html><body><script type='module' src='$(WasmMainJSFileName)'></script></body></html>" Overwrite="True" Condition="!Exists('$(WasmMainHtmlPath)')"/>
|
|
</Target>
|
|
|
|
<Target Name="_PrepareForAOTOnHelix">
|
|
<PropertyGroup Condition="'$(IsHighAotMemoryUsageTest)' == 'true' and '$(ContinuousIntegrationBuild)' == 'true'">
|
|
<DisableParallelEmccCompile Condition="'$(DisableParallelEmccCompile)' == ''">true</DisableParallelEmccCompile>
|
|
<EmccLinkOptimizationFlag Condition="'$(EmccLinkOptimizationFlag)' == ''">-O2</EmccLinkOptimizationFlag>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup>
|
|
<EmccLinkOptimizationFlag Condition="'$(EmccLinkOptimizationFlag)' == ''">-Oz -Wl,-O0 -Wl,--lto-O0</EmccLinkOptimizationFlag>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<BundleFiles Include="$(WasmMainJSPath)" TargetDir="publish" />
|
|
|
|
<_WasmPropertyNames Include="DisableParallelEmccCompile" />
|
|
<_WasmPropertyNames Include="EmccCompileOptimizationFlag" />
|
|
<_WasmPropertyNames Include="EmccLinkOptimizationFlag" />
|
|
<_WasmPropertyNames Include="WasmIncludeFullIcuData" />
|
|
<_WasmPropertyNames Include="WasmIcuDataFileName" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="_WasmAddToRunScript" BeforeTargets="GenerateRunScript">
|
|
<!-- Combine optional alias on all NodeNpmModule and trim separator where alias is empty -->
|
|
<ItemGroup>
|
|
<_NodeNpmModuleString Include="%(NodeNpmModule.Identity):%(NodeNpmModule.Alias)" />
|
|
<_NodeNpmModuleStringTrimmed Include="@(_NodeNpmModuleString->Trim(':'))" />
|
|
</ItemGroup>
|
|
<PropertyGroup>
|
|
<NodeNpmModuleString>@(_NodeNpmModuleStringTrimmed, ',')</NodeNpmModuleString>
|
|
</PropertyGroup>
|
|
|
|
<!-- Restore NPM packages -->
|
|
<ItemGroup Condition="'$(OS)' != 'Windows_NT'">
|
|
<SetScriptCommands Include="if [[ "$SCENARIO" == "WasmTestOnNodeJS" || "$SCENARIO" == "wasmtestonnodejs" ]]; then export WasmXHarnessMonoArgs="$WasmXHarnessMonoArgs --setenv=NPM_MODULES=$(NodeNpmModuleString)"; fi" />
|
|
<RunScriptCommands Include="if [[ "$SCENARIO" == "WasmTestOnNodeJS" || "$SCENARIO" == "wasmtestonnodejs" ]]; then npm ci; fi" />
|
|
|
|
<SetScriptCommands Condition="'$(InstallChromeForTests)' == 'true' and '$(ChromeDriverBinaryPath)' != ''" Include="export PREPEND_PATH=$([System.IO.Path]::GetDirectoryName($(ChromeDriverBinaryPath)))" />
|
|
</ItemGroup>
|
|
<ItemGroup Condition="'$(OS)' == 'Windows_NT'">
|
|
<SetScriptCommands Include="if /I [%SCENARIO%]==[WasmTestOnNodeJS] ( set "WasmXHarnessMonoArgs=%WasmXHarnessMonoArgs% --setenv=NPM_MODULES^=$(NodeNpmModuleString)" )" />
|
|
<RunScriptCommands Include="if /I [%SCENARIO%]==[WasmTestOnNodeJS] ( call npm ci )" />
|
|
|
|
<SetScriptCommands Condition="'$(InstallChromeForTests)' == 'true' and '$(ChromeDriverBinaryPath)' != ''" Include="set PREPEND_PATH=$([System.IO.Path]::GetDirectoryName($(ChromeDriverBinaryPath)))" />
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<Target Name="_GetWorkloadsToInstall" DependsOnTargets="_SetPackageVersionForWorkloadsTesting" Returns="@(WorkloadIdForTesting);@(WorkloadCombinationsToInstall)">
|
|
<ItemGroup>
|
|
<WorkloadIdForTesting Include="wasm-tools;wasm-experimental"
|
|
ManifestName="Microsoft.NET.Workload.Mono.ToolChain.Current"
|
|
Variant="latest"
|
|
Version="$(PackageVersionForWorkloadManifests)" />
|
|
|
|
<WorkloadIdForTesting Include="wasm-tools-net7;wasm-experimental-net7"
|
|
ManifestName="Microsoft.NET.Workload.Mono.ToolChain.net7"
|
|
Variant="net7"
|
|
Version="$(PackageVersionForWorkloadManifests)"
|
|
Condition="'$(WorkloadsTestPreviousVersions)' == 'true'" />
|
|
|
|
<WorkloadIdForTesting Include="wasm-tools-net6"
|
|
ManifestName="Microsoft.NET.Workload.Mono.ToolChain.net6"
|
|
Variant="net6"
|
|
Version="$(PackageVersionForWorkloadManifests)"
|
|
IgnoreErrors="$(WasmIgnoreNet6WorkloadInstallErrors)"
|
|
Condition="'$(WorkloadsTestPreviousVersions)' == 'true'" />
|
|
|
|
<WorkloadCombinationsToInstall Include="latest" Variants="latest" />
|
|
<WorkloadCombinationsToInstall Include="net7" Variants="net7" Condition="'$(WorkloadsTestPreviousVersions)' == 'true'" />
|
|
<WorkloadCombinationsToInstall Include="net7+latest" Variants="net7;latest" Condition="'$(WorkloadsTestPreviousVersions)' == 'true'" />
|
|
<!--<WorkloadCombinationsToInstall Include="net6" Variants="net6" />-->
|
|
<!--<WorkloadCombinationsToInstall Include="net6+7" Variants="net6;net7" />-->
|
|
<!--<WorkloadCombinationsToInstall Include="none" />-->
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
<!-- For local builds, only one of the 3 required runtime packs might be available. In that case,
|
|
build the other nugets with the *same runtime* but different names.
|
|
-->
|
|
<Target Name="_GetRuntimePackNuGetsToBuild" Condition="'$(WasmSkipMissingRuntimePackBuild)' != 'true'" Returns="@(_NuGetsToBuild)">
|
|
<PropertyGroup>
|
|
<_DefaultBuildVariant Condition="'$(MonoWasmBuildVariant)' == 'multithread'">.multithread.</_DefaultBuildVariant>
|
|
<_DefaultBuildVariant Condition="'$(MonoWasmBuildVariant)' == 'perftrace'">.perftrace.</_DefaultBuildVariant>
|
|
<_DefaultBuildVariant Condition="'$(_DefaultBuildVariant)' == ''">.</_DefaultBuildVariant>
|
|
|
|
<_DefaultRuntimePackNuGetPath>$(LibrariesShippingPackagesDir)Microsoft.NETCore.App.Runtime.Mono$(_DefaultBuildVariant)$(RuntimeIdentifier).$(PackageVersionForWorkloadManifests).nupkg</_DefaultRuntimePackNuGetPath>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<_RuntimePackNugetAvailable Include="$(LibrariesShippingPackagesDir)Microsoft.NETCore.App.Runtime.Mono.$(RuntimeIdentifier).*$(PackageVersionForWorkloadManifests).nupkg" />
|
|
<_RuntimePackNugetAvailable Remove="@(_RuntimePackNugetAvailable)" Condition="$([System.String]::new('%(_RuntimePackNugetAvailable.FileName)').EndsWith('.symbols'))" />
|
|
</ItemGroup>
|
|
|
|
<Error Condition="@(_RuntimePackNugetAvailable -> Count()) != 3 and @(_RuntimePackNugetAvailable -> Count()) != 1"
|
|
Text="Expected to find either one or three in $(LibrariesShippingPackagesDir): @(_RuntimePackNugetAvailable->'%(FileName)%(Extension)')" />
|
|
|
|
<ItemGroup>
|
|
<_BuildVariants Include="multithread" Condition="'$(_DefaultBuildVariant)' != '.multithread.'" />
|
|
<_BuildVariants Include="perftrace" Condition="'$(_DefaultBuildVariant)' != '.perftrace.'" />
|
|
|
|
<_NuGetsToBuild Include="$(LibrariesShippingPackagesDir)Microsoft.NETCore.App.Runtime.Mono.%(_BuildVariants.Identity).$(RuntimeIdentifier).$(PackageVersionForWorkloadManifests).nupkg"
|
|
Project="$(InstallerProjectRoot)pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj"
|
|
Dependencies="$(_DefaultRuntimePackNuGetPath)"
|
|
Properties="@(_DefaultPropsForNuGetBuild, ';');MonoWasmBuildVariant=%(_BuildVariants.Identity)"
|
|
Descriptor="runtime pack for %(_BuildVariants.Identity)" />
|
|
|
|
<!-- add for non-threaded runtime also -->
|
|
<_NuGetsToBuild Include="$(LibrariesShippingPackagesDir)Microsoft.NETCore.App.Runtime.Mono.$(RuntimeIdentifier).$(PackageVersionForWorkloadManifests).nupkg"
|
|
Project="$(InstallerProjectRoot)pkg/sfx/Microsoft.NETCore.App/Microsoft.NETCore.App.Runtime.sfxproj"
|
|
Properties="@(_DefaultPropsForNuGetBuild, ';');MonoWasmBuildVariant="
|
|
Dependencies="$(_DefaultRuntimePackNuGetPath)"
|
|
Descriptor="single threaded runtime pack"
|
|
Condition="'$(_DefaultBuildVariant)' != '.'" />
|
|
</ItemGroup>
|
|
|
|
<Message
|
|
Condition="@(_RuntimePackNugetAvailable -> Count()) == 1"
|
|
Importance="High"
|
|
Text="
|
|
********************
|
|
|
|
Note: Could not find the expected three runtime packs in $(LibrariesShippingPackagesDir). Found @(_RuntimePackNugetAvailable->'%(FileName)%(Extension)', ', ') .
|
|
To support local builds, the same runtime pack will be built with the other variant names.
|
|
To disable this behavior, pass `-p:WasmSkipMissingRuntimePackBuild=true` .
|
|
|
|
*******************" />
|
|
</Target>
|
|
|
|
<Target Name="_GetNugetsForAOT" Returns="@(_NuGetsToBuild)">
|
|
<PropertyGroup>
|
|
<!-- Eg. Microsoft.NETCore.App.Runtime.AOT.osx-x64.Cross.browser-wasm.6.0.0-dev.nupkg -->
|
|
<_AOTCrossNuGetPath>$(LibrariesShippingPackagesDir)Microsoft.NETCore.App.Runtime.AOT.$(NETCoreSdkRuntimeIdentifier).Cross.$(RuntimeIdentifier).$(PackageVersionForWorkloadManifests).nupkg</_AOTCrossNuGetPath>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<_NuGetsToBuild Include="$(LibrariesShippingPackagesDir)Microsoft.NETCore.App.Ref.$(PackageVersionForWorkloadManifests).nupkg"
|
|
Project="$(InstallerProjectRoot)pkg/sfx/Microsoft.NETCore.App\Microsoft.NETCore.App.Ref.sfxproj"
|
|
Properties="@(_DefaultPropsForNuGetBuild, ';')"
|
|
Descriptor="Ref pack"/>
|
|
|
|
<!-- AOT Cross compiler -->
|
|
<_PropsForAOTCrossBuild Include="@(_DefaultPropsForNuGetBuild)" />
|
|
<_PropsForAOTCrossBuild Include="TestingWorkloads=true" />
|
|
<_PropsForAOTCrossBuild Include="RuntimeIdentifier=$(NETCoreSdkRuntimeIdentifier)" />
|
|
<_PropsForAOTCrossBuild Include="TargetCrossRid=$(RuntimeIdentifier)" />
|
|
<_PropsForAOTCrossBuild Include="DisableSourceLink=true" />
|
|
|
|
<_NuGetsToBuild Include="$(_AOTCrossNuGetPath)"
|
|
Project="$(InstallerProjectRoot)pkg/sfx/Microsoft.NETCore.App\Microsoft.NETCore.App.MonoCrossAOT.sfxproj"
|
|
Properties="@(_PropsForAOTCrossBuild,';')"
|
|
Descriptor="AOT Cross compiler"/>
|
|
</ItemGroup>
|
|
</Target>
|
|
</Project>
|