| 
51 | 51 |     <_NativeAotSupportedArch Condition="'$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm' or '$(TargetArchitecture)' == 'loongarch64' or '$(TargetArchitecture)' == 'riscv64' or ('$(TargetOS)' == 'windows' and '$(TargetArchitecture)' == 'x86')">true</_NativeAotSupportedArch>  | 
52 | 52 |     <NativeAotSupported Condition="'$(_NativeAotSupportedOS)' == 'true' and '$(_NativeAotSupportedArch)' == 'true'">true</NativeAotSupported>  | 
53 | 53 | 
 
  | 
54 |  | -    <!-- Determine if AOT tools can run on the specified target -->  | 
55 |  | -    <_AotToolsSupportedOS Condition="'$(TargetsMobile)' != 'true' and '$(TargetsLinuxBionic)' != 'true' and '$(StageOneBuild)' != 'true'">true</_AotToolsSupportedOS>  | 
56 |  | -    <_AotToolsSupportedArch Condition="'$(TargetArchitecture)' != 'armel'">true</_AotToolsSupportedArch>  | 
57 |  | -    <AotToolsSupported Condition="'$(_AotToolsSupportedOS)' == 'true' and '$(_AotToolsSupportedArch)' == 'true'">true</AotToolsSupported>  | 
 | 54 | +    <!-- Determine if we support running the .NET SDK on the target platform -->  | 
 | 55 | +    <_SdkToolsSupportedOS Condition="'$(TargetsMobile)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">true</_SdkToolsSupportedOS>  | 
 | 56 | +    <_SdkToolsSupportedArch Condition="'$(TargetArchitecture)' != 'armel'">true</_SdkToolsSupportedArch>  | 
 | 57 | +    <SdkToolsSupported Condition="'$(_SdkToolsSupportedOS)' == 'true' and '$(_SdkToolsSupportedArch)' == 'true'">true</SdkToolsSupported>  | 
 | 58 | + | 
 | 59 | +    <_UseNativeAotForComponentsCrossOS Condition="'$(CrossBuild)' == 'true' and '$(_hostArchitecture)' == '$(_targetArchitecture)' and '$(_hostOS)' != 'windows'">true</_UseNativeAotForComponentsCrossOS>  | 
 | 60 | +    <UseNativeAotForComponents Condition="'$(NativeAotSupported)' == 'true' and ('$(TargetOS)' == '$(HostOS)' or '$(_UseNativeAotForComponentsCrossOS)' == 'true') and '$(TargetsLinuxBionic)' != 'true'">true</UseNativeAotForComponents>  | 
58 | 61 |   </PropertyGroup>  | 
59 | 62 | 
 
  | 
60 | 63 |   <PropertyGroup>  | 
 | 
149 | 152 |     <DefaultPacksSubsets Condition="'$(DotNetBuildSourceOnly)' != 'true'">$(DefaultPacksSubsets)+packs.installers</DefaultPacksSubsets>  | 
150 | 153 |     <DefaultPacksSubsets Condition="'$(BuildMonoAOTCrossCompilerOnly)' != 'true' and '$(DotNetBuildSourceOnly)' != 'true'">$(DefaultPacksSubsets)+packs.tests</DefaultPacksSubsets>  | 
151 | 154 |     <DefaultPacksSubsets Condition="'$(RuntimeFlavor)' != 'Mono' and '$(ForceBuildMobileManifests)' == 'true'">$(DefaultPacksSubsets)+mono.manifests</DefaultPacksSubsets>  | 
 | 155 | + | 
 | 156 | +    <BootstrapSubsets>host.native+libs.sfx+libs.pretest</BootstrapSubsets>  | 
 | 157 | +    <BootstrapSubsets Condition="'$(UseNativeAotForComponents)' != 'true'">$(BootstrapSubsets)+clr.runtime+clr.corelib</BootstrapSubsets>  | 
 | 158 | +    <BootstrapSubsets Condition="'$(UseNativeAotForComponents)' == 'true'">$(BootstrapSubsets)+clr.nativeaotlibs+clr.nativeaotruntime+libs.native</BootstrapSubsets>  | 
 | 159 | + | 
 | 160 | +    <SwapNativeForIL Condition="$(_subset.Contains('+bootstrap+')) and '$(RuntimeFlavor)' == 'CoreCLR'">true</SwapNativeForIL>  | 
152 | 161 |   </PropertyGroup>  | 
153 | 162 | 
 
  | 
154 | 163 |   <PropertyGroup>  | 
 | 
160 | 169 |     <_subset>$(_subset.Replace('+tools+', '+$(DefaultToolsSubsets)+'))</_subset>  | 
161 | 170 |     <_subset>$(_subset.Replace('+host+', '+$(DefaultHostSubsets)+'))</_subset>  | 
162 | 171 |     <_subset>$(_subset.Replace('+packs+', '+$(DefaultPacksSubsets)+'))</_subset>  | 
 | 172 | +    <_subset>$(_subset.Replace('+bootstrap+', '+bootstrap+$(BootstrapSubsets)+'))</_subset>  | 
163 | 173 |     <_subset Condition="'$(TargetOS)' == 'browser'">$(_subset.Replace('+clr.runtime+', '+mono.emsdk+clr.runtime+'))</_subset>  | 
164 | 174 | 
 
  | 
165 | 175 |     <!-- Surround _subset in dashes to simplify checks below -->  | 
 | 
170 | 180 |   </PropertyGroup>  | 
171 | 181 | 
 
  | 
172 | 182 |   <PropertyGroup>  | 
173 |  | -    <_IsCommunityCrossArchitecture Condition="'$(CrossBuild)' == 'true' and ('$(TargetArchitecture)' == 'loongarch64' or '$(TargetArchitecture)' == 'riscv64')">true</_IsCommunityCrossArchitecture>  | 
174 |  | -    <UseNativeAotForComponents Condition="'$(NativeAotSupported)' == 'true' and '$(TargetOS)' == '$(HostOS)' and '$(TargetsLinuxBionic)' != 'true' and '$(_IsCommunityCrossArchitecture)' != 'true'">true</UseNativeAotForComponents>  | 
175 | 183 |     <!-- If we're building clr.nativeaotlibs and not building the CLR runtime, compile libraries against NativeAOT CoreLib -->  | 
176 | 184 |     <UseNativeAotCoreLib Condition="'$(TestNativeAot)' == 'true' or ($(_subset.Contains('+clr.nativeaotlibs+')) and !$(_subset.Contains('+clr.native+')) and !$(_subset.Contains('+clr.runtime+')) and !$(_subset.Contains('+clr.corelib+')))">true</UseNativeAotCoreLib>  | 
177 | 185 |   </PropertyGroup>  | 
 | 
259 | 267 |     <SubsetName Include="RegenerateDownloadTable" OnDemand="true" Description="Regenerates the nightly build download table" />  | 
260 | 268 |     <SubsetName Include="RegenerateThirdPartyNotices" OnDemand="true" Description="Regenerates the THIRD-PARTY-NOTICES.TXT file based on other repos' TPN files." />  | 
261 | 269 |     <SubsetName Include="tasks" OnDemand="true" Description="Build the repo local task projects." />  | 
 | 270 | +    <SubsetName Include="bootstrap" OnDemand="true" Description="Build the projects needed to build shipping assets in the repo against live assets." />  | 
262 | 271 | 
 
  | 
263 | 272 |   </ItemGroup>  | 
264 | 273 | 
 
  | 
 | 
441 | 450 |                              $(CoreClrProjectRoot)tools\PdbChecker\PdbChecker.csproj;  | 
442 | 451 |                              $(CoreClrProjectRoot)tools\AssemblyChecker\AssemblyChecker.csproj;  | 
443 | 452 |                              $(ToolsProjectRoot)StressLogAnalyzer\src\StressLogAnalyzer.csproj" Category="clr" Condition="'$(DotNetBuildSourceOnly)' != 'true'"/>  | 
444 |  | -    <!-- We may use these targets with the in-build ILCompiler or with the shipping ILCompiler. Produce them whenever we may use them. -->  | 
445 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)nativeaot\BuildIntegration\BuildIntegration.proj" Category="clr" Condition="'$(AotToolsSupported)' == 'true' or '$(NativeAotSupported)' == 'true'" />  | 
446 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler.Build.Tasks\ILCompiler.Build.Tasks.csproj" Category="clr" Condition="'$(AotToolsSupported)' == 'true' or '$(NativeAotSupported)' == 'true'" />  | 
447 |  | -    <!-- skip the architectures that don't have LKG runtime packs -->  | 
448 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\crossgen2\crossgen2_publish.csproj" Condition="'$(AotToolsSupported)' == 'true'" Category="clr" />  | 
449 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler\ILCompiler_publish.csproj" Category="clr" Condition="'$(AotToolsSupported)' == 'true'" />  | 
450 |  | - | 
451 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler\ILCompiler.csproj" Condition="'$(AotToolsSupported)' == 'true'" Category="clr" />  | 
452 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\crossgen2\crossgen2.csproj" Condition="'$(AotToolsSupported)' == 'true'" Category="clr" />  | 
453 |  | - | 
454 | 453 |     <!--  | 
455 | 454 |       Always build the in-build variants of these tools. They run on the host machine, which we always have LKG packs for.  | 
456 |  | -      For two-stage builds, we omit this step during stage2 since stage1 covers it.  | 
457 | 455 |     -->  | 
458 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler\ILCompiler_inbuild.csproj" Category="clr" Condition="'$(StageTwoBuild)' != 'true'" />  | 
459 |  | -    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\crossgen2\crossgen2_inbuild.csproj" Category="clr" Condition="'$(StageTwoBuild)' != 'true'" />  | 
 | 456 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler\ILCompiler_inbuild.csproj" Category="clr" />  | 
 | 457 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\crossgen2\crossgen2_inbuild.csproj" Category="clr" />  | 
 | 458 | + | 
 | 459 | +    <!-- We may use these targets with the in-build ILCompiler or with the shipping ILCompiler. Produce them whenever we may use them. -->  | 
 | 460 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)nativeaot\BuildIntegration\BuildIntegration.proj" Category="clr" Condition="'$(SdkToolsSupported)' == 'true' or '$(NativeAotSupported)' == 'true'" />  | 
 | 461 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler.Build.Tasks\ILCompiler.Build.Tasks.csproj" Category="clr" Condition="'$(SdkToolsSupported)' == 'true' or '$(NativeAotSupported)' == 'true'" />  | 
 | 462 | + | 
 | 463 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler\ILCompiler_publish.csproj" Condition="'$(SdkToolsSupported)' == 'true'" Category="clr" />  | 
 | 464 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\crossgen2\crossgen2_publish.csproj" Condition="'$(SdkToolsSupported)' == 'true'" Category="clr" />  | 
 | 465 | + | 
 | 466 | + | 
 | 467 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\ILCompiler\ILCompiler.csproj" Condition="'$(SdkToolsSupported)' == 'true'" Category="clr" />  | 
 | 468 | +    <ProjectToBuild Include="$(CoreClrProjectRoot)tools\aot\crossgen2\crossgen2.csproj" Condition="'$(SdkToolsSupported)' == 'true'" Category="clr" />  | 
460 | 469 | 
 
  | 
461 | 470 |     <ProjectToBuild Condition="'$(TargetOS)' == 'windows' or ('$(TargetOS)' == 'linux' and ('$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'arm64')) or '$(TargetOS)' == 'osx'" Include="$(CoreClrProjectRoot)tools\SuperFileCheck\SuperFileCheck.csproj" Category="clr" />  | 
462 | 471 | 
 
  | 
 | 
724 | 733 |     <ProjectToBuild Include="$(RepoTasksDir)tasks.proj" Category="tasks" />  | 
725 | 734 |   </ItemGroup>  | 
726 | 735 | 
 
  | 
 | 736 | +  <!-- Bootstrap -->  | 
 | 737 | +  <ItemGroup Condition="$(_subset.Contains('+bootstrap+'))">  | 
 | 738 | +    <ProjectToBuild Include="$(LibrariesProjectRoot)Microsoft.NETCore.Platforms\src\Microsoft.NETCore.Platforms.csproj" Category="libraries" />  | 
 | 739 | +  </ItemGroup>  | 
 | 740 | + | 
727 | 741 |   <!-- Set default configurations. -->  | 
728 | 742 |   <ItemGroup>  | 
729 | 743 |     <ProjectToBuild Update="@(ProjectToBuild)">  | 
 | 
0 commit comments