1 <Project DefaultTargets="Build">
3 <Import Project="$(MSBuildThisFileDirectory)directories.props" />
5 <!-- Common Properties -->
7 <PublicModuleListFile>$(PackageSrcDir)PublicModuleList.txt</PublicModuleListFile>
10 <!-- Build Properties -->
12 <Configuration>Release</Configuration>
15 <!-- Projects to build -->
17 <ProjectToBuild Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj" Condition="'$(Project)' != ''" />
18 <ProjectToBuild Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''" />
25 including the Artifacts/ directory and the obj/ directories for all projects.
27 <Target Name="Clean" Condition="'$(Project)' == ''" >
30 <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\*" />
31 <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
35 <DirToRemove Include="$(OutputBaseDir)" />
36 <DirToRemove Include="@(ProjectIntermediateDir)" />
39 <RemoveDir Directories="@(DirToRemove)" />
47 Build all projects in src/ directory.
48 The output(.dll, .pdb, .xml) of the project specfied in
49 pkg/PublicModuleList.txt is copied to Artifacts/bin/public,
50 and the rest are copied to Artifacts/bin/platform.
52 <Target Name="Build" DependsOnTargets="Clean">
54 <MSBuild Projects="@(ProjectToBuild)"
55 Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources)"
56 BuildInParallel="false"
59 <MSBuild Projects="@(ProjectToBuild)"
60 Properties="Configuration=$(Configuration);OutDir=$(OutputPlatformDir)"
61 BuildInParallel="true"
62 UseResultsCache="true"
65 <ReadLinesFromFile File="$(PublicModuleListFile)">
66 <Output TaskParameter="Lines" ItemName="PublicProject" />
70 <PlatformFiles Include="$(OutputPlatformDir)**" />
71 <_PublicFilesToMove Include="$(OutputPlatformDir)%(PublicProject.Identity).dll" />
72 <_PublicFilesToMove Include="$(OutputPlatformDir)%(PublicProject.Identity).pdb" />
73 <_PublicFilesToMove Include="$(OutputPlatformDir)%(PublicProject.Identity).xml" />
74 <_PublicFilesToMove Include="$(OutputPlatformDir)*\%(PublicProject.Identity).dll" />
75 <PublicFilesToMove Include="@(_PublicFilesToMove)" Condition="'@(PlatformFiles)' == '@(_PublicFilesToMove)' and '%(Identity)' != '' " />
78 <Move SourceFiles="@(PublicFilesToMove)" DestinationFiles="$(OutputPublicDir)%(RecursiveDir)%(Filename)%(Extension)" />
80 <Message Text="The assemblies written in pkg/PublicModuleList.txt were moved to $(OutputPublicDir)" Importance="High" />