Merge "[TCSACR-85] Add EnableType method"
[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     <DummyBuildProject>$(MSBuildThisFileDirectory)build.dummy.csproj</DummyBuildProject>
9   </PropertyGroup>
10
11   <!-- Build Properties -->
12   <PropertyGroup>
13     <Configuration>Release</Configuration>
14   </PropertyGroup>
15
16   <!-- Projects to build -->
17   <ItemGroup>
18     <ProjectToBuild Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj" Condition="'$(Project)' != ''" />
19     <ProjectToBuild Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''" />
20   </ItemGroup>
21
22   <!--
23     Target : Clean
24     ==============
25     Delete all artifacts,
26     including the Artifacts/ directory and the obj/ directories for all projects.
27   -->
28   <Target Name="Clean">
29
30     <ItemGroup>
31       <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\*" />
32       <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
33     </ItemGroup>
34
35     <ItemGroup>
36       <DirToRemove Include="$(OutputBaseDir)" />
37       <DirToRemove Include="@(ProjectIntermediateDir)" />
38     </ItemGroup>
39
40     <RemoveDir Directories="@(DirToRemove)" />
41
42   </Target>
43
44
45   <!--
46     Target : Build
47     ==============
48     Build all projects in src/ directory.
49     The output(.dll, .pdb, .xml) of the project specfied in
50     pkg/PublicModuleList.txt is copied to Artifacts/bin/public,
51     and the rest are copied to Artifacts/bin/platform.
52   -->
53   <Target Name="Build" DependsOnTargets="Clean">
54
55     <MSBuild Projects="@(ProjectToBuild)"
56              Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources)"
57              Targets="Restore" />
58
59     <MSBuild Projects="@(ProjectToBuild)"
60              Properties="Configuration=$(Configuration);OutDir=$(OutputPlatformDir)"
61              BuildInParallel="true"
62              UseResultsCache="true"
63              Targets="Build" />
64
65     <ReadLinesFromFile File="$(PublicModuleListFile)">
66       <Output TaskParameter="Lines" ItemName="PublicProject" />
67     </ReadLinesFromFile>
68
69     <ItemGroup>
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="@(_PublicFilesToMove)" Condition="'@(PlatformFiles)' == '@(_PublicFilesToMove)' and '%(Identity)' != '' " />
75     </ItemGroup>
76
77     <MakeDir Directories="$(OutputPublicDir)" />
78     <Move SourceFiles="@(PublicFilesToMove)" DestinationFolder="$(OutputPublicDir)" />
79
80     <Message Text="Moved %(PublicFilesToMove.Filename)%(PublicFilesToMove.Extension) -> $(OutputPublicDir)%(PublicFilesToMove.Filename)%(PublicFilesToMove.Extension)"  Importance="High" />
81
82   </Target>
83
84   <!--
85     Target : BuildDummy
86     ===================
87     Build dummy assemblies using GenAPI
88   -->
89   <Target Name="BuildDummy">
90
91     <MSBuild Projects="$(DummyBuildProject)"
92              Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources)"
93              Targets="Restore;Rebuild" />
94
95   </Target>
96
97 </Project>