1
0
Fork 0
mirror of https://github.com/VSadov/Satori.git synced 2025-06-09 09:34:49 +09:00
Satori/eng/SubsetValidation.targets
Ivan Diaz Sanchez da97f17219
Make build scripts' -help information more helpful (#37377)
* Sorted the build scripts' help alphabetically, and made the subset error
message softer and without metrics.

* Added simple examples to the scripts' helps.

* Moved short flags to the flag column and rephrased a bit.

* Removed remains of old code.

* Added more examples and rephrased some things for better clarity.

* Added gcc example to build.sh.

* Corrected definition of the Checked configuration.

* Added --clangx to build.sh
2020-06-08 17:58:50 -07:00

46 lines
No EOL
2.1 KiB
XML

<Project InitialTargets="FindInvalidSpecifiedSubsetNames;ReportValidSubsetList">
<!--
The imported file supports the '/p:Subset=<desired subset string>' dev build argument.
Each subset has its own '<subset>Project' items so that a project in the build can depend
on a whole subset, and the dependency on the subset is disregarded automatically when Subset
doesn't contain it.
%(ProjectToBuild.SignPhase): Indicates this project must be built before a certain signing
phase. Projects can depend on 'signing/stages/Sign<stage>.proj' to wait until all projects
that are part of a stage are complete. This allows the build to perform complex container
signing that isn't (can't be?) supported by Arcade's single pass, such as MSIs and bundles:
https://github.com/dotnet/arcade/issues/388
-->
<Target Name="FindInvalidSpecifiedSubsetNames">
<ItemGroup>
<SpecifiedSubsetName Include="$([MSBuild]::Unescape($(Subset.Replace('+', ';').Replace('-', ';'))))" />
<!-- MSBuild Exclude is case-insensitive, which matches intended behavior. -->
<InvalidSpecifiedSubsetName Include="@(SpecifiedSubsetName)" Exclude="@(SubsetName)" />
</ItemGroup>
<PropertyGroup>
<UserRequestedHelp Condition="'%(InvalidSpecifiedSubsetName.Identity)' == 'help'">true</UserRequestedHelp>
</PropertyGroup>
</Target>
<Target Name="ReportValidSubsetList"
Condition="'@(InvalidSpecifiedSubsetName)' != ''">
<ItemGroup>
<SubsetName Text="- %(Identity)" />
<SubsetName Text="%(Text) [only runs on demand]" Condition="'%(SubsetName.OnDemand)' == 'true'" />
<SubsetName Text="%(Text)%0A %(Description)" />
</ItemGroup>
<Message Text="%0AAccepted Subset values:%0A@(SubsetName->'%(Text)', '%0A')%0A" Importance="High" />
<Error Text="Subset not recognized: @(InvalidSpecifiedSubsetName, ' ')"
Condition="'$(UserRequestedHelp)' != 'true'" />
<Error Text="This is not an error. These are the available subsets. You can choose one or none at all for a full build."
Condition="'$(UserRequestedHelp)' == 'true'" />
</Target>
</Project>