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

build.proj - github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e67539614f696c5148e751eb84c764bdd0972d3b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="BuildAndTest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <!-- Capture OSGroup passed to command line for setting default FilterToOSGroup value below -->
    <_OriginalOSGroup>$(OSGroup)</_OriginalOSGroup>
  </PropertyGroup>
  <PropertyGroup>
    <InputOSGroup>$(OSGroup)</InputOSGroup>
    <InputOSGroup Condition="'$(InputOSGroup)'==''">$(FilterToOSGroup)</InputOSGroup>
  </PropertyGroup>
  <Import Project="dir.props" />

  <!-- required to build the projects in their specified order -->
  <PropertyGroup>
    <SerializeProjects>true</SerializeProjects>
  </PropertyGroup>

  <!-- The following properties are in place to keep the behavior of build.cmd while we work on the dev workflow steps. -->
  <PropertyGroup>
    <!-- To disable the restoration of packages, set RestoreDuringBuild=false or pass /p:RestoreDuringBuild=false.-->
    <RestoreDuringBuild Condition="'$(RestoreDuringBuild)'==''">true</RestoreDuringBuild>
    <!-- To disable building packages, set BuildPackages=false or pass /p:BuildPackages=false.-->
    <BuildPackages Condition="'$(BuildPackages)'==''">true</BuildPackages>
    <!-- To disable building tests, set BuildTests=false or pass /p:BuildTests=false.-->
    <BuildTests Condition="'$(BuildTests)'==''">true</BuildTests>
  </PropertyGroup>

  <PropertyGroup>
    <GenerateCodeCoverageReportForAll>true</GenerateCodeCoverageReportForAll>
  </PropertyGroup>
  <Import Project="$(ToolsDir)CodeCoverage.targets" Condition="Exists('$(ToolsDir)CodeCoverage.targets')" />
  <Import Project="$(ToolsDir)PerfTesting.targets" Condition="Exists('$(ToolsDir)PerfTesting.targets') and '$(Performance)' == 'true'"/>

  <ItemGroup>
    <Project Include="src\dirs.proj">
      <!-- For the root traversal default filter the OSGroup to the OSEnvironment which is the OS we are running on -->
      <FilterToOSGroup Condition="'$(_OriginalOSGroup)' == ''">$(OSEnvironment)</FilterToOSGroup>
      <InputOSGroup>$(InputOSGroup)</InputOSGroup>
    </Project>
    <Project Include="src\tests.builds" Condition="$(BuildTests)=='true'">
      <InputOSGroup>$(InputOSGroup)</InputOSGroup>
    </Project>
    <!-- signing must happen before packaging -->
    <Project Include="src\sign.builds" />
    <Project Include="src\packages.builds" Condition="'$(BuildPackages)'=='true'"/>
    <Project Include="src\post.builds">
      <!-- For the root traversal default filter the OSGroup to the OSEnvironment which is the OS we are running on -->
      <FilterToOSGroup Condition="'$(_OriginalOSGroup)' == ''">$(OSEnvironment)</FilterToOSGroup>
    </Project>
  </ItemGroup>

  <Import Project="dir.targets" />

  <Import Project="dir.traversal.targets" />

  <Import Project="$(ToolsDir)clean.targets" />

  <PropertyGroup Condition="'$(RestoreDuringBuild)'=='true'">
    <TraversalBuildDependsOn>
      ValidateAllProjectDependencies;
      BatchRestorePackages;
      CreateOrUpdateCurrentVersionFile;
      $(TraversalBuildDependsOn);
    </TraversalBuildDependsOn>
  </PropertyGroup>
  <PropertyGroup Condition="'$(BuildTestsAgainstPackages)' == 'true'">
    <TraversalBuildDependsOn>
      BatchGenerateTestProjectJsons;
      $(TraversalBuildDependsOn);
    </TraversalBuildDependsOn>
  </PropertyGroup>

  <UsingTask TaskName="GatherDirectoriesToRestore" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll" />

  <Target Name="BatchRestorePackages">
    <MakeDir Directories="$(PackagesDir)" Condition="!Exists('$(PackagesDir)')" /> 

    <Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Restoring all packages..." />

    <Exec Command="$(DnuRestoreCommand) @(DnuRestoreDir->'&quot;%(Identity)&quot;', ' ')"
          StandardOutputImportance="Low"
          CustomErrorRegularExpression="(^Unable to locate .*)|(^Updating the invalid lock file with .*)"
          ContinueOnError="ErrorAndContinue" />

    <Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Restoring all packages...Done." />
  </Target>

  <!-- Evaluate our test projects (in src\tests.builds) -->
  <Target Name="BatchGenerateTestProjectJsons"
          Condition="'$(BuildTestsAgainstPackages)' == 'true'" 
          DependsOnTargets="FilterProjects"
          BeforeTargets="RestorePackages">
      <Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Generating Test project.json's..." />
      <MSBuild Targets="GenerateAllTestProjectJsons"
               Projects="src\tests.builds" />
      <Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Generating Test project.json's...done" />
  </Target>

  <!-- Task from buildtools that validates dependencies contained in project.json files. -->
  <UsingTask TaskName="ValidateProjectDependencyVersions" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll" />

  <Target Name="ValidateAllProjectDependencies"
          Condition="'$(ValidatePackageVersions)'=='true' and '@(ProjectJsonFiles)'!=''">
    <ValidateProjectDependencyVersions ProjectJsons="@(ProjectJsonFiles)"
                                       ProhibitFloatingDependencies="$(ProhibitFloatingDependencies)"
                                       ValidationPatterns="@(ValidationPattern)" />
  </Target>

  <Target Name="UpdateInvalidPackageVersions">
    <ValidateProjectDependencyVersions ProjectJsons="@(ProjectJsonFiles)"
                                       ProhibitFloatingDependencies="$(ProhibitFloatingDependencies)"
                                       ValidationPatterns="@(ValidationPattern)"
                                       UpdateInvalidDependencies="true" />
  </Target>

  <!-- Tasks from buildtools for easy project.json dependency updates -->
  <UsingTask TaskName="UpdatePackageDependencyVersion" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll" />

  <Target Name="UpdatePackageDependencyVersion">
    <UpdatePackageDependencyVersion ProjectJsons="@(ProjectJsonFiles)"
                                    PackageId="$(PackageId)"
                                    OldVersion="$(OldVersion)"
                                    NewVersion="$(NewVersion)" />
  </Target>

  <!-- Override RestorePackages from dir.traversal.targets and do a batch restore -->
  <Target Name="RestorePackages" DependsOnTargets="BatchRestorePackages" />

  <!-- Override clean from dir.traversal.targets and just remove the full BinDir -->
  <Target Name="Clean">
    <RemoveDir Directories="$(BinDir)" />
  </Target>

</Project>