1<Project ToolsVersion="14.0" DefaultTargets="BuildAndTest" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2  <Import Project="dir.props" />
3
4  <!-- required to build the projects in their specified order -->
5  <PropertyGroup>
6    <SerializeProjects>true</SerializeProjects>
7  </PropertyGroup>
8
9  <ItemGroup Condition="'$(DirectoryToBuild)' == ''">
10    <Project Include="ref.builds" />
11    <Project Include="shims\shims.proj" />
12    <Project Include="Native\native-binplace.proj" />
13    <Project Include="src.builds" />
14    <Project Include="shims\manual\*.csproj" />
15    <Project Include="shims\ApiCompat.proj" />
16  </ItemGroup>
17
18  <UsingTask TaskName="GenerateDepsJson" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll"/>
19  <!-- After we build all the source libraries we need to generate a deps.json file for the shared test framework -->
20  <Target Name="GenerateTestSharedFrameworkDepsFile" AfterTargets="BuildAllProjects" Condition="'$(BinplaceTestSharedFramework)' == 'true'">
21
22    <ItemGroup>
23      <!-- This is for HostPolicy, CoreCLR and Jit dependencies to continue to remain inside of the dep.json -->
24      <ExceptionForDepsJson Include="microsoft.netcore.app" />
25
26      <!-- TODO: We should see about generating this from scratch instead of relying on a previous deps file as a template -->
27      <_sharedFrameworkDepsJson Include="$(ToolsDir)dotnetcli\shared\Microsoft.NETCore.App\*\Microsoft.NETCore.App.deps.json" />
28    </ItemGroup>
29
30    <PropertyGroup>
31      <_OriginalDepsJsonPath>%(_sharedFrameworkDepsJson.FullPath)</_OriginalDepsJsonPath>
32      <_OutputTestSharedFrameworkDepsPath>$(NETCoreAppTestSharedFrameworkPath)\Microsoft.NETCore.App.deps.json</_OutputTestSharedFrameworkDepsPath>
33    </PropertyGroup>
34
35    <GenerateDepsJson DepsJsonPath="$(_OriginalDepsJsonPath)"
36                      GenerateNewDepsJson="true"
37                      RuntimeDirectory="$(NETCoreAppTestSharedFrameworkPath)"
38                      DepsExceptions="@(ExceptionForDepsJson)"
39                      OutputPath="$(_OutputTestSharedFrameworkDepsPath)"/>
40  </Target>
41
42  <ItemGroup Condition="'$(DirectoryToBuild)' != ''">
43    <Project Include="$(DirectoryToBuild)/**/*.csproj" />
44  </ItemGroup>
45
46  <Import Project="..\dir.targets" />
47  <Import Project="..\dir.traversal.targets" />
48
49  <Import Project="$(ToolsDir)packages.targets" Condition="Exists('$(ToolsDir)packages.targets') and '$(ImportGetNuGetPackageVersions)' != 'false'" />
50  <Import Project="$(ToolsDir)UpdateBuildValues.targets" Condition="Exists('$(ToolsDir)UpdateBuildValues.targets')" />
51
52  <PropertyGroup Condition="Exists('$(ToolsDir)packages.targets') and '$(ImportGetNuGetPackageVersions)' != 'false'">
53    <TraversalBuildDependsOn>
54      $(TraversalBuildDependsOn);
55      BuildPackages;
56    </TraversalBuildDependsOn>
57  </PropertyGroup>
58
59  <PropertyGroup Condition="Exists('$(ToolsDir)toolruntime.targets')">
60    <TraversalBuildDependsOn>
61      EnsureBuildToolsRuntime;
62      $(TraversalBuildDependsOn)
63    </TraversalBuildDependsOn>
64  </PropertyGroup>
65
66  <!-- Generate the shared library for running ILC tests for configuration Release-x64 -->
67  <Target Name="GenerateSharedLibraryForILC" AfterTargets="BuildAllProjects" Condition="'$(EnableMultiFileILCTests)' == 'true'">
68    <Message Importance="High" Text="Generating shared library for running ILC tests." Condition="Exists('$(TestHostRootPath)\TestILC\ilc.exe')" />
69    <Exec Command="$(TestHostRootPath)\TestILC\ilc.exe -buildSharedAssemblies -buildType ret -frameworkPath &quot;$(ILCFXInputFolder)&quot;" StandardOutputImportance="Low" Condition="Exists('$(TestHostRootPath)\TestILC\ilc.exe')" />
70  </Target>
71
72</Project>
73