Release 4.0.0-preview1-00184
[platform/core/csapi/tizenfx.git] / build / build.proj
1 <Project DefaultTargets="Build">
2
3   <Import Project="$(MSBuildThisFileDirectory)directories.props" />
4
5   <!-- Common Properties -->
6   <PropertyGroup>
7     <PublicModuleListFile>$(PackageSrcDir)PublicModuleList.txt</PublicModuleListFile>
8   </PropertyGroup>
9
10   <!-- Build Properties -->
11   <PropertyGroup>
12     <Configuration>Release</Configuration>
13   </PropertyGroup>
14
15   <!-- Projects to build -->
16   <ItemGroup>
17     <ProjectToBuild Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj" Condition="'$(Project)' != ''" />
18     <ProjectToBuild Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''" />
19   </ItemGroup>
20
21   <!--
22     Target : Clean
23     ==============
24     Delete all artifacts,
25     including the Artifacts/ directory and the obj/ directories for all projects.
26   -->
27   <Target Name="Clean">
28
29     <ItemGroup>
30       <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\*" />
31       <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
32     </ItemGroup>
33
34     <ItemGroup>
35       <DirToRemove Include="$(OutputBaseDir)" />
36       <DirToRemove Include="@(ProjectIntermediateDir)" />
37     </ItemGroup>
38
39     <RemoveDir Directories="@(DirToRemove)" />
40
41   </Target>
42
43
44   <!--
45     Target : Build
46     ==============
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.
51   -->
52   <Target Name="Build" DependsOnTargets="Clean">
53
54     <MSBuild Projects="@(ProjectToBuild)"
55              Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources)"
56              Targets="Restore" />
57
58     <MSBuild Projects="@(ProjectToBuild)"
59              Properties="Configuration=$(Configuration);OutDir=$(OutputPlatformDir)"
60              BuildInParallel="true"
61              UseResultsCache="true"
62              Targets="Build" />
63
64     <ReadLinesFromFile File="$(PublicModuleListFile)">
65       <Output TaskParameter="Lines" ItemName="PublicProject" />
66     </ReadLinesFromFile>
67
68     <ItemGroup>
69       <PlatformFiles Include="$(OutputPlatformDir)*" />
70       <_PublicFilesToMove Include="$(OutputPlatformDir)%(PublicProject.Identity).dll" />
71       <_PublicFilesToMove Include="$(OutputPlatformDir)%(PublicProject.Identity).pdb" />
72       <_PublicFilesToMove Include="$(OutputPlatformDir)%(PublicProject.Identity).xml" />
73       <PublicFilesToMove Include="@(_PublicFilesToMove)" Condition="'@(PlatformFiles)' == '@(_PublicFilesToMove)' and '%(Identity)' != '' " />
74     </ItemGroup>
75
76     <MakeDir Directories="$(OutputPublicDir)" />
77     <Move SourceFiles="@(PublicFilesToMove)" DestinationFolder="$(OutputPublicDir)" />
78
79     <Message Text="Moved %(PublicFilesToMove.Filename)%(PublicFilesToMove.Extension) -> $(OutputPublicDir)%(PublicFilesToMove.Filename)%(PublicFilesToMove.Extension)"  Importance="High" />
80
81   </Target>
82
83 </Project>