Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/corert.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Rummel <crummel@microsoft.com>2016-12-20 04:05:17 +0300
committerJan Kotas <jkotas@microsoft.com>2016-12-20 04:05:17 +0300
commit5518722c82faec0b6f4b20d355d6ed5d16b46715 (patch)
tree41895c5098c4c0678457d48d7b7a9bea6aefdd1b /dir.traversal.targets
parent2c70a97c46c7eaba1df56ce687d8a87682c61fa1 (diff)
Add packaging build changes and scripts. (#2325)
Diffstat (limited to 'dir.traversal.targets')
-rw-r--r--dir.traversal.targets105
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>