mirror of
https://github.com/VSadov/Satori.git
synced 2025-06-09 09:34:49 +09:00
148 lines
8.7 KiB
XML
148 lines
8.7 KiB
XML
<Project>
|
|
|
|
<!--
|
|
This file defines the list of projects to build and divides them into subsets. In ordinary
|
|
situations, you should perform a full build by running 'build.cmd' or './build.sh'. This ensures
|
|
the projects are sequenced correctly so the outputs and test results are what you would expect.
|
|
|
|
If you know you only want to run a subset of the build, however, use the Subset property.
|
|
|
|
Syntax:
|
|
|
|
(build.cmd/sh) /p:Subset=<desired subset name 1>(-<desired subset name N>)*
|
|
|
|
- For a description of each subset, use '/p:Subset=help'.
|
|
- Subset names are case insensitive.
|
|
- 'Subset' is case insensitive. (That is, '/p:subset' works.)
|
|
- Order doesn't affect the result.
|
|
|
|
Examples:
|
|
|
|
./build.sh /p:Subset=CoreHost
|
|
|
|
This builds only the .NET Core Host.
|
|
|
|
./build.sh /p:Subset=CoreHost-Managed
|
|
|
|
This builds the CoreHost and also the Managed (e.g. Microsoft.Extensions.DependencyModel)
|
|
projects. A '-' is the delimiter between multiple subsets to build.
|
|
|
|
./build.sh -test /p:Subset=Test
|
|
|
|
This builds and executes the test projects. (The '-test' argument is an Arcade SDK argument
|
|
that indicates tests should be run. Otherwise, they'll only be built.)
|
|
|
|
Quirks:
|
|
|
|
This command looks useful, but doesn't work as expected:
|
|
|
|
./build.sh -test /p:Subset=CoreHost-Test # (Doesn't work!)
|
|
|
|
Intuitively, this should build the host, build the tests, then run the tests on the freshly
|
|
built host. What actually happens is the tests run on a previously built host. This is because
|
|
the depproj, pkgproj, and installer subsets process the host artifacts, and those didn't
|
|
rebuild because those subsets were disabled.
|
|
|
|
You can get around this limitation by running the corehost subset, manually copying host
|
|
artifacts to the test layout, then running the test subset.
|
|
-->
|
|
|
|
<!-- Import only when imported by Arcade's Build.proj as we import Directory.Build.props ourselves. -->
|
|
<Import Project="$(RepoRoot)Directory.Build.props" Condition="'$(SkipImportArcadeSdkFromRoot)' == 'true'" />
|
|
|
|
<PropertyGroup>
|
|
<DefaultSubsetCategories>libraries-installer-coreclr</DefaultSubsetCategories>
|
|
<DefaultInstallerSubsets>corehost-managed-depproj-pkgproj-bundle-installers-test</DefaultInstallerSubsets>
|
|
<!-- TODO: Split into multiple sets. -->
|
|
<DefaultLibrariesSubsets>all</DefaultLibrariesSubsets>
|
|
<DefaultCoreClrSubsets>all</DefaultCoreClrSubsets>
|
|
|
|
<_subsetCategory Condition="'$(SubsetCategory)' != ''">$(SubsetCategory.ToLowerInvariant())</_subsetCategory>
|
|
<_subsetCategory Condition="'$(SubsetCategory)' == ''">$(DefaultSubsetCategories)</_subsetCategory>
|
|
<_subset Condition="'$(Subset)' != ''">$(Subset.ToLowerInvariant())</_subset>
|
|
<_subset Condition="'$(Subset)' == '' and $(_subsetCategory.Contains('installer'))">$(DefaultInstallerSubsets)</_subset>
|
|
<_subset Condition="'$(Subset)' == '' and $(_subsetCategory.Contains('libraries'))">$(_subset)$(DefaultLibrariesSubsets)</_subset>
|
|
<_subset Condition="'$(Subset)' == '' and $(_subsetCategory.Contains('coreclr'))">$(_subset)$(DefaultCoreClrSubsets)</_subset>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Global -->
|
|
<SubsetName Include="RegenerateReadmeTable" Category="" OnDemand="true" Description="Regenerates the table of asset links in the README.md file." />
|
|
|
|
<!-- Libraries -->
|
|
<SubsetName Include="All" Category="Libraries" Description="The .NET libraries comprising the shared framework." />
|
|
|
|
<!-- CoreClr -->
|
|
<SubsetName Include="All" Category="CoreClr" Description="The .NET runtime." />
|
|
|
|
<!-- Installer -->
|
|
<SubsetName Include="All" Category="Installer" Description="The .NET Core hosts, hosting libraries, bundles, and installers. Includes these projects' tests." />
|
|
<SubsetName Include="CoreHost" Category="Installer" Description="The .NET Core hosts." />
|
|
<SubsetName Include="Managed" Category="Installer" Description="The managed .NET hosting projects. This includes PlatformAbstractions, DependencyModel, and HostModel." />
|
|
<SubsetName Include="DepProj" Category="Installer" Description="The dependency projects. These gather shared framework files and run crossgen on them to turn them into ready-to-run (R2R) assemblies for the current platform." />
|
|
<SubsetName Include="PkgProj" Category="Installer" Description="The packaging projects. These produce NETCoreApp assets: NuGet packages, installers, zips, and Linux packages." />
|
|
<SubsetName Include="Bundle" Category="Installer" Description="The shared framework bundle installer projects. Produces .exe installers for Windows." />
|
|
<SubsetName Include="Installers" Category="Installer" Description="Generates additional installers. This produces the shared frameworks and their installers." />
|
|
<SubsetName Include="Test" Category="Installer" Description="The test projects. Note that building this doesn't execute tests: you must also pass the '-test' argument." />
|
|
</ItemGroup>
|
|
|
|
<!-- Global sets -->
|
|
<ItemGroup Condition="$(_subset.Contains('regeneratereadmetable'))">
|
|
<ProjectToBuild Include="$(RepoToolsLocalDir)regenerate-readme-table.proj" />
|
|
</ItemGroup>
|
|
|
|
<!-- Libraries sets -->
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('libraries')) and $(_subset.Contains('all'))">
|
|
<ProjectToBuild Include="$(LibrariesProjectRoot)build.proj" />
|
|
</ItemGroup>
|
|
|
|
<!-- CoreClr sets -->
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('coreclr')) and $(_subset.Contains('all'))">
|
|
<ProjectToBuild Include="$(CoreClrProjectRoot)coreclr.proj" />
|
|
</ItemGroup>
|
|
|
|
<!-- Installer sets -->
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('corehost'))">
|
|
<CorehostProjectToBuild Include="$(InstallerProjectRoot)corehost\build.proj" SignPhase="Binaries" />
|
|
<ProjectToBuild Include="@(CorehostProjectToBuild)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('managed'))">
|
|
<ManagedProjectToBuild Include="$(InstallerProjectRoot)managed\**\*.csproj" SignPhase="Binaries" />
|
|
<ManagedProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\pack-managed.proj" />
|
|
<ProjectToBuild Include="@(ManagedProjectToBuild)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('depproj'))">
|
|
<DepprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="Binaries" />
|
|
<ProjectToBuild Include="@(DepprojProjectToBuild)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('pkgproj'))">
|
|
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.pkgproj" SignPhase="MsiFiles" />
|
|
<ProjectToBuild Include="@(PkgprojProjectToBuild)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('bundle'))">
|
|
<BundleProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.bundleproj" SignPhase="BundleInstallerFiles" />
|
|
<ProjectToBuild Include="@(BundleProjectToBuild)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('installers'))">
|
|
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\installers.proj" />
|
|
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\vs-insertion-packages.proj" />
|
|
<ProjectToBuild Include="@(InstallerProjectToBuild)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('test'))">
|
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\AppHost.Bundle.Tests\AppHost.Bundle.Tests.csproj" />
|
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.AppHost.Tests\Microsoft.NET.HostModel.AppHost.Tests.csproj" />
|
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.Bundle.Tests\Microsoft.NET.HostModel.Bundle.Tests.csproj" />
|
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.ComHost.Tests\Microsoft.NET.HostModel.ComHost.Tests.csproj" />
|
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\HostActivation.Tests\HostActivation.Tests.csproj" />
|
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.DotNet.CoreSetup.Packaging.Tests\Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj" />
|
|
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.Extensions.DependencyModel.Tests\Microsoft.Extensions.DependencyModel.Tests.csproj" />
|
|
<ProjectToBuild Include="@(TestProjectToBuild)" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|