diff options
author | Chris Rummel <crummel@microsoft.com> | 2016-12-20 04:05:17 +0300 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2016-12-20 04:05:17 +0300 |
commit | 5518722c82faec0b6f4b20d355d6ed5d16b46715 (patch) | |
tree | 41895c5098c4c0678457d48d7b7a9bea6aefdd1b /dir.traversal.targets | |
parent | 2c70a97c46c7eaba1df56ce687d8a87682c61fa1 (diff) |
Add packaging build changes and scripts. (#2325)
Diffstat (limited to 'dir.traversal.targets')
-rw-r--r-- | dir.traversal.targets | 105 |
1 files changed, 103 insertions, 2 deletions
diff --git a/dir.traversal.targets b/dir.traversal.targets index 7ea706da6..698058577 100644 --- a/dir.traversal.targets +++ b/dir.traversal.targets @@ -1,7 +1,108 @@ <?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Target Name="BuildAllProjects"> + <Target Name="FilterProjects"> + <PropertyGroup> + <FilterToOSGroup Condition="'$(FilterToOSGroup)'=='' and '$(OSGroup)'!='' and '$(OSGroup)'!='AnyOS'">$(OSGroup)</FilterToOSGroup> + </PropertyGroup> + + <ItemGroup> + <!-- list each append as a seperate item to force re-evaluation of AdditionalProperties metadata --> + <Project> + <AdditionalProperties Condition="'%(Project.TargetGroup)'!=''">TargetGroup=%(Project.TargetGroup);%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + <Project> + <FilterToTargetGroup Condition="'$(FilterToTargetGroup)'!=''">$(FilterToTargetGroup)</FilterToTargetGroup> + </Project> + <Project> + <FilterToOSGroup Condition="'$(FilterToOSGroup)'!=''">$(FilterToOSGroup)</FilterToOSGroup> + </Project> + <Project> + <AdditionalProperties Condition="'%(Project.OSGroup)'!=''">OSGroup=%(Project.OSGroup);%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + <Project> + <AdditionalProperties Condition="'%(Project.Platform)'!=''">Platform=%(Project.Platform);%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + <Project> + <AdditionalProperties Condition="'%(Project.FilterToOSGroup)'!=''">FilterToOSGroup=%(Project.FilterToOSGroup);%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + <Project> + <AdditionalProperties Condition="'%(Project.FilterToTargetGroup)'!=''">FilterToTargetGroup=%(Project.FilterToTargetGroup);%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + <Project> + <AdditionalProperties Condition="'%(Project.InputOSGroup)' != ''">InputOSGroup=%(Project.InputOSGroup);%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + <Project> + <AdditionalProperties Condition="'%(Project.BuildAllOSGroups)' != ''">BuildAllOSGroups=%(Project.BuildAllOSGroups);%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + <!-- If a project isn't setting the OSGroup via metadata then undefine it so that the globally set OSGroup doesn't override empty OSGroup --> + <Project> + <UndefineProperties Condition="'%(Project.OSGroup)'==''">%(Project.UndefineProperties);OSGroup</UndefineProperties> + </Project> + <Project> + <UndefineProperties Condition="'%(Project.Extension)'!='.builds' and '%(Project.Extension)'!='.proj'">%(Project.UndefineProperties);TestTFMs;FilterToOSGroup;FilterToTestTFM;DefaultBuildAllTarget;SerializeProjects;BuildAllOSGroups</UndefineProperties> + </Project> + </ItemGroup> + + <!-- If we have enabled code coverage and set the projects to be serialized we need to pass that property down to the childe projects --> + <ItemGroup Condition="'$(CodeCoverageEnabled)'=='true' and '$(SerializeProjects)'=='true'"> + <Project> + <AdditionalProperties>SerializeProjects=true;%(Project.AdditionalProperties)</AdditionalProperties> + </Project> + </ItemGroup> + + <PropertyGroup> + <OSGroupList>AnyOS;$(FilterToOSGroup);</OSGroupList> + <OSGroupList Condition="'$(FilterToOSGroup)'=='OSX'">$(OSGroupList);Unix;</OSGroupList> + <OSGroupList Condition="'$(FilterToOSGroup)'=='Linux'">$(OSGroupList);Unix;</OSGroupList> + <OSGroupList Condition="'$(FilterToOSGroup)'=='FreeBSD'">$(OSGroupList);Unix;</OSGroupList> + <OSGroupList Condition="'$(FilterToOSGroup)'=='NetBSD'">$(OSGroupList);Unix;</OSGroupList> + </PropertyGroup> + + <ItemGroup Condition="'$(FilterToOSGroup)'!='' and '$(BuildAllOSGroups)' != 'true'"> + <ProjectsToBuild Include="@(Project)" Condition="$(OSGroupList.Contains('%(Project.OSGroup);'))" /> + + <Project Remove="@(Project)" /> + <Project Include="@(ProjectsToBuild)" /> + </ItemGroup> + + </Target> + + <Target Name="DumpTargets" DependsOnTargets="FilterProjects"> + <MSBuild Targets="$(DefaultBuildAllTarget)" + Projects="@(Project)" + Properties="DefaultBuildAllTarget=$(DefaultBuildAllTarget);BuildAllProjects=true" + ContinueOnError="ErrorAndContinue" /> + </Target> + + + <Target Name="ProducesPackageId" + Returns="@(PackageIds)" + DependsOnTargets="FilterProjects"> + <MSBuild Targets="ProducesPackageId" + Projects="@(Project)" + BuildInParallel="true" + ContinueOnError="ErrorAndContinue"> + <Output TaskParameter="TargetOutputs" + ItemName="PackageIds" /> + </MSBuild> + <ItemGroup> + <PackageIds Include="@(PackageIds)" /> + </ItemGroup> + </Target> + + <Target Name="ProducesTarget" DependsOnTargets="FilterProjects"> + <MSBuild Targets="ProducesPackageId" + Projects="@(Project)" + BuildInParallel="true" + ContinueOnError="ErrorAndContinue"> + <Output TaskParameter="TargetOutputs" + ItemName="PackageIds" /> + </MSBuild> + <Message Text="%(PackageIds.Identity)" Importance="High" /> + </Target> + + <Target Name="BuildAllProjects" DependsOnTargets="FilterProjects"> <PropertyGroup> <DefaultBuildAllTarget Condition="'$(DefaultBuildAllTarget)'==''">$(MSBuildProjectDefaultTargets)</DefaultBuildAllTarget> </PropertyGroup> @@ -100,4 +201,4 @@ <Target Name="RestorePackages" DependsOnTargets="$(TraversalRestorePackagesDependsOn)" /> -</Project>
\ No newline at end of file +</Project> |