Skip to content

Commit f53c156

Browse files
authored
Consolidate subset projects into ProjectToBuild (#36441)
Consolidating subset projects into a single ProjectToBuild item type to allow specifying projects to build from different subsets after the subset was already built.
1 parent ed79f41 commit f53c156

File tree

2 files changed

+42
-56
lines changed

2 files changed

+42
-56
lines changed

Build.proj

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@
55
Reference the projects for traversal build. Ordering matters here.
66
-->
77
<ItemGroup>
8-
<ProjectReference Include="@(CoreClrProject)" />
9-
<ProjectReference Include="@(MonoProject)" />
10-
<ProjectReference Include="@(LibrariesProject)" />
11-
<ProjectReference Include="@(InstallerProject)" />
8+
<ProjectReference Include="@(ProjectToBuild)" />
129
</ItemGroup>
1310

1411
<!--

eng/Subsets.props

Lines changed: 41 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -115,78 +115,58 @@
115115

116116
<!-- Default targets, parallelization and configurations. -->
117117
<ItemDefinitionGroup>
118-
<CoreClrProject>
118+
<ProjectToBuild>
119119
<Test>false</Test>
120120
<Pack>false</Pack>
121121
<Publish>false</Publish>
122122
<BuildInParallel>false</BuildInParallel>
123-
<AdditionalProperties Condition="'$(CoreCLRConfiguration)' != ''">Configuration=$(CoreCLRConfiguration)</AdditionalProperties>
124-
</CoreClrProject>
125-
<MonoProject>
126-
<Test>false</Test>
127-
<Pack>false</Pack>
128-
<Publish>false</Publish>
129-
<BuildInParallel>false</BuildInParallel>
130-
<AdditionalProperties Condition="'$(MonoConfiguration)' != ''">Configuration=$(MonoConfiguration)</AdditionalProperties>
131-
</MonoProject>
132-
<LibrariesProject>
133-
<Test>false</Test>
134-
<Pack>false</Pack>
135-
<Publish>false</Publish>
136-
<BuildInParallel>false</BuildInParallel>
137-
<AdditionalProperties Condition="'$(LibrariesConfiguration)' != ''">Configuration=$(LibrariesConfiguration)</AdditionalProperties>
138-
</LibrariesProject>
139-
<InstallerProject>
140-
<Test>false</Test>
141-
<Pack>true</Pack>
142-
<Publish>false</Publish>
143-
</InstallerProject>
123+
</ProjectToBuild>
144124
</ItemDefinitionGroup>
145125

146126
<!-- CoreClr sets -->
147127
<ItemGroup Condition="$(_subset.Contains('+clr.corelib+'))">
148-
<CoreClrProject Include="$(CoreClrProjectRoot)src\System.Private.CoreLib\System.Private.CoreLib.csproj" />
128+
<ProjectToBuild Include="$(CoreClrProjectRoot)src\System.Private.CoreLib\System.Private.CoreLib.csproj" Category="clr" />
149129
</ItemGroup>
150130

151131
<ItemGroup Condition="$(_subset.Contains('+clr.runtime+'))">
152-
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" />
132+
<ProjectToBuild Include="$(CoreClrProjectRoot)runtime.proj" Category="clr" />
153133
</ItemGroup>
154134

155135
<ItemGroup Condition="$(_subset.Contains('+linuxdac+')) and $([MSBuild]::IsOsPlatform(Windows)) and '$(TargetArchitecture)' != 'x86'">
156-
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=linux" />
136+
<ProjectToBuild Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=linux" Category="clr" />
157137
</ItemGroup>
158138

159139
<ItemGroup Condition="$(_subset.Contains('+alpinedac+')) and $([MSBuild]::IsOsPlatform(Windows)) and '$(TargetArchitecture)' != 'x86'">
160-
<CoreClrProject Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=alpine" />
140+
<ProjectToBuild Include="$(CoreClrProjectRoot)runtime.proj" AdditionalProperties="%(AdditionalProperties);CrossDac=alpine" Category="clr" />
161141
</ItemGroup>
162142

163143
<ItemGroup Condition="$(_subset.Contains('+clr.nativecorelib+'))">
164-
<CoreClrProject Include="$(CoreClrProjectRoot)crossgen-corelib.proj" />
144+
<ProjectToBuild Include="$(CoreClrProjectRoot)crossgen-corelib.proj" Category="clr" />
165145
</ItemGroup>
166146

167147
<ItemGroup Condition="$(_subset.Contains('+clr.tools+'))">
168-
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\runincontext\runincontext.csproj" BuildInParallel="true" />
169-
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\r2rdump\R2RDump.csproj" BuildInParallel="true" />
170-
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\dotnet-pgo\dotnet-pgo.csproj" BuildInParallel="true" />
171-
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\r2rtest\R2RTest.csproj" BuildInParallel="true" />
172-
<CoreClrProject Include="$(CoreClrProjectRoot)src\tools\crossgen2\crossgen2\crossgen2.csproj" />
148+
<ProjectToBuild Include="$(CoreClrProjectRoot)src\tools\runincontext\runincontext.csproj;
149+
$(CoreClrProjectRoot)src\tools\r2rdump\R2RDump.csproj;
150+
$(CoreClrProjectRoot)src\tools\dotnet-pgo\dotnet-pgo.csproj;
151+
$(CoreClrProjectRoot)src\tools\r2rtest\R2RTest.csproj" Category="clr" BuildInParallel="true" />
152+
<ProjectToBuild Include="$(CoreClrProjectRoot)src\tools\crossgen2\crossgen2\crossgen2.csproj" Category="clr" />
173153
</ItemGroup>
174154

175155
<ItemGroup Condition="$(_subset.Contains('+clr.packages+'))">
176-
<CoreClrProject Include="$(CoreClrProjectRoot)src\.nuget\coreclr-packages.proj" Pack="true" />
156+
<ProjectToBuild Include="$(CoreClrProjectRoot)src\.nuget\coreclr-packages.proj" Pack="true" Category="clr" />
177157
</ItemGroup>
178158

179159
<!-- Mono sets -->
180160
<ItemGroup Condition="$(_subset.Contains('+mono.llvm+')) or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'Browser'">
181-
<MonoProject Include="$(MonoProjectRoot)llvm\llvm-init.proj" />
161+
<ProjectToBuild Include="$(MonoProjectRoot)llvm\llvm-init.proj" Category="mono" />
182162
</ItemGroup>
183163

184164
<ItemGroup Condition="$(_subset.Contains('+mono.runtime+'))">
185-
<MonoProject Include="$(MonoProjectRoot)mono.proj" />
165+
<ProjectToBuild Include="$(MonoProjectRoot)mono.proj" Category="mono" />
186166
</ItemGroup>
187167

188168
<ItemGroup Condition="$(_subset.Contains('+mono.corelib+'))">
189-
<MonoProject Include="$(MonoProjectRoot)netcore\System.Private.CoreLib\System.Private.CoreLib.csproj" />
169+
<ProjectToBuild Include="$(MonoProjectRoot)netcore\System.Private.CoreLib\System.Private.CoreLib.csproj" Category="mono" />
190170
</ItemGroup>
191171

192172
<!-- Libraries sets -->
@@ -197,65 +177,65 @@
197177
</ItemGroup>
198178

199179
<ItemGroup Condition="$(_subset.Contains('+libs.native+'))">
200-
<LibrariesProject Include="$(LibrariesProjectRoot)Native\build-native.proj" />
180+
<ProjectToBuild Include="$(LibrariesProjectRoot)Native\build-native.proj" Category="libs" />
201181
</ItemGroup>
202182

203183
<ItemGroup Condition="$(_subset.Contains('+libs.ref+'))">
204-
<LibrariesProject Include="$(LibrariesProjectRoot)ref.proj" />
184+
<ProjectToBuild Include="$(LibrariesProjectRoot)ref.proj" Category="libs" />
205185
</ItemGroup>
206186

207187
<ItemGroup Condition="$(_subset.Contains('+libs.src+'))">
208-
<LibrariesProject Include="$(LibrariesProjectRoot)src.proj" />
188+
<ProjectToBuild Include="$(LibrariesProjectRoot)src.proj" Category="libs" />
209189
</ItemGroup>
210190

211191
<ItemGroup Condition="$(_subset.Contains('+libs.pretest+'))">
212-
<LibrariesProject Include="$(LibrariesProjectRoot)pretest.proj" />
192+
<ProjectToBuild Include="$(LibrariesProjectRoot)pretest.proj" Category="libs" />
213193
</ItemGroup>
214194

215195
<ItemGroup Condition="$(_subset.Contains('+libs.packages+'))">
216-
<LibrariesProject Include="$(LibrariesProjectRoot)libraries-packages.proj" Pack="true" />
196+
<ProjectToBuild Include="$(LibrariesProjectRoot)libraries-packages.proj" Category="libs" Pack="true" />
217197
</ItemGroup>
218198

219199
<ItemGroup Condition="$(_subset.Contains('+libs.tests+'))">
220-
<LibrariesProject Include="$(LibrariesProjectRoot)tests.proj" Test="true" />
200+
<ProjectToBuild Include="$(LibrariesProjectRoot)tests.proj" Category="libs" Test="true" />
221201
</ItemGroup>
222202

223203
<!-- Installer sets -->
224204
<ItemGroup Condition="$(_subset.Contains('+corehost+'))">
225205
<CorehostProjectToBuild Include="$(InstallerProjectRoot)corehost\build.proj" SignPhase="Binaries" />
226-
<InstallerProject Include="@(CorehostProjectToBuild)" />
206+
<ProjectToBuild Include="@(CorehostProjectToBuild)" BuildInParallel="true" Pack="true" Category="installer" />
227207
</ItemGroup>
228208

229209
<ItemGroup Condition="$(_subset.Contains('+installer.managed+'))">
230210
<ManagedProjectToBuild Include="$(InstallerProjectRoot)managed\**\*.csproj" SignPhase="Binaries" />
231211
<ManagedProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\pack-managed.proj" />
232-
<InstallerProject Include="@(ManagedProjectToBuild)" />
212+
<ProjectToBuild Include="@(ManagedProjectToBuild)" BuildInParallel="true" Pack="true" Category="installer" />
233213
</ItemGroup>
234214

235215
<ItemGroup Condition="$(_subset.Contains('+installer.depprojs+'))">
236216
<DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'CoreCLR'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="R2RBinaries" BuildInParallel="false" />
237217
<DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'Mono'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="Binaries" BuildInParallel="false" />
238218
<!-- Disable netstandard infra for now and discuss if we should delete it: https://github.com/dotnet/runtime/issues/2294-->
239-
<DepprojProjectToBuild Remove="$(InstallerProjectRoot)pkg\projects\netstandard\src\netstandard.depproj" />
240-
<InstallerProject Include="@(DepprojProjectToBuild)" />
219+
<DepprojProjectToBuild Remove="$(InstallerProjectRoot)pkg\projects\netstandard\src\netstandard.depproj" BuildInParallel="true" />
220+
<ProjectToBuild Include="@(DepprojProjectToBuild)" Pack="true" Category="installer" />
241221
</ItemGroup>
242222

243223
<ItemGroup Condition="$(_subset.Contains('+installer.pkgprojs+'))">
244224
<PkgprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.pkgproj" SignPhase="MsiFiles" BuildInParallel="false" />
245225
<!-- Disable netstandard infra for now and discuss if we should delete it: https://github.com/dotnet/runtime/issues/2294-->
246-
<PkgprojProjectToBuild Remove="$(InstallerProjectRoot)pkg\projects\netstandard\pkg\NETStandard.Library.Ref.pkgproj" />
247-
<InstallerProject Include="@(PkgprojProjectToBuild)" />
226+
<PkgprojProjectToBuild Remove="$(InstallerProjectRoot)pkg\projects\netstandard\pkg\NETStandard.Library.Ref.pkgproj" BuildInParallel="true" />
227+
<ProjectToBuild Include="@(PkgprojProjectToBuild)" Pack="true" Category="installer" />
248228
</ItemGroup>
249229

250230
<ItemGroup Condition="$(_subset.Contains('+bundles+'))">
251231
<BundleProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.bundleproj" SignPhase="BundleInstallerFiles" BuildInParallel="false" />
252-
<InstallerProject Include="@(BundleProjectToBuild)" />
232+
<ProjectToBuild Include="@(BundleProjectToBuild)" Pack="true" Category="installer" />
253233
</ItemGroup>
254234

255235
<ItemGroup Condition="$(_subset.Contains('+installers+'))">
256236
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\installers.proj" BuildInParallel="false" />
257237
<InstallerProjectToBuild Include="$(InstallerProjectRoot)pkg\packaging\vs-insertion-packages.proj" BuildInParallel="false" />
258-
<InstallerProject Include="@(InstallerProjectToBuild)" />
238+
<ProjectToBuild Include="@(InstallerProjectToBuild)" Pack="true" Category="installer" />
259239
</ItemGroup>
260240

261241
<ItemGroup Condition="$(_subset.Contains('+installer.tests+'))">
@@ -265,11 +245,20 @@
265245
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.NET.HostModel.Tests\Microsoft.NET.HostModel.ComHost.Tests\Microsoft.NET.HostModel.ComHost.Tests.csproj" />
266246
<TestProjectToBuild Include="$(InstallerProjectRoot)test\HostActivation.Tests\HostActivation.Tests.csproj" />
267247
<TestProjectToBuild Include="$(InstallerProjectRoot)test\Microsoft.DotNet.CoreSetup.Packaging.Tests\Microsoft.DotNet.CoreSetup.Packaging.Tests.csproj" />
268-
<InstallerProject Include="@(TestProjectToBuild)" Pack="false" Test="true" BuildInParallel="false" />
248+
<ProjectToBuild Include="@(TestProjectToBuild)" BuildInParallel="true" Test="true" Category="installer" />
269249
</ItemGroup>
270250

271251
<ItemGroup Condition="$(_subset.Contains('+installer.publish+'))">
272-
<InstallerProject Include="$(InstallerProjectRoot)publish\prepare-artifacts.proj" />
252+
<ProjectToBuild Include="$(InstallerProjectRoot)publish\prepare-artifacts.proj" Pack="true" BuildInParallel="false" Category="installer" />
253+
</ItemGroup>
254+
255+
<!-- Set default configurations. -->
256+
<ItemGroup>
257+
<ProjectToBuild Update="@(ProjectToBuild)">
258+
<AdditionalProperties Condition="'%(ProjectToBuild.Category)' == 'clr' and '$(CoreCLRConfiguration)' != ''">Configuration=$(CoreCLRConfiguration)</AdditionalProperties>
259+
<AdditionalProperties Condition="'%(ProjectToBuild.Category)' == 'mono' and '$(MonoConfiguration)' != ''">Configuration=$(MonoConfiguration)</AdditionalProperties>
260+
<AdditionalProperties Condition="'%(ProjectToBuild.Category)' == 'libs' and '$(LibrariesConfiguration)' != ''">Configuration=$(LibrariesConfiguration)</AdditionalProperties>
261+
</ProjectToBuild>
273262
</ItemGroup>
274263

275264
</Project>

0 commit comments

Comments
 (0)