Merge "[ElmSharp] TC for Panel indicator bug"
[platform/core/csapi/tizenfx.git] / build / build.proj
1 <Project DefaultTargets="Build">
2
3   <Import Project="$(MSBuildThisFileDirectory)directories.props" />
4
5   <!-- Build Properties -->
6   <PropertyGroup>
7     <Configuration>Release</Configuration>
8     <GenDummyCommand>dotnet $(GenDummyDir)\GenDummy.dll</GenDummyCommand>
9     <PublicDummyProjectDir>$(ProjectRootDir).dummy\</PublicDummyProjectDir>
10     <InternalDummyProjectDir>$(ProjectRootDir)internal\.dummy\</InternalDummyProjectDir>
11   </PropertyGroup>
12
13   <!-- Projects to build -->
14   <ItemGroup>
15     <ProjectToBuild Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj" Condition="'$(Project)' != ''">
16       <Visibility>Public</Visibility>
17     </ProjectToBuild>
18     <ProjectToBuild Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''">
19       <Visibility>Public</Visibility>
20     </ProjectToBuild>
21     <ProjectToBuild Include="$(InternalProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''">
22       <Visibility>Internal</Visibility>
23     </ProjectToBuild>
24   </ItemGroup>
25
26   <!--
27     Target : Clean
28     ==============
29     Delete all artifacts,
30     including the Artifacts/ directory and the obj/ directories for all projects.
31   -->
32   <Target Name="Clean">
33
34     <ItemGroup>
35       <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\*" />
36       <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\obj\*" />
37       <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
38     </ItemGroup>
39
40     <ItemGroup>
41       <DirToRemove Include="$(OutputBaseDir)" />
42       <DirToRemove Include="@(ProjectIntermediateDir)" />
43       <DirToRemove Include="$(PublicDummyProjectDir)" />
44       <DirToRemove Include="$(InternalDummyProjectDir)" />
45     </ItemGroup>
46
47     <RemoveDir Directories="@(DirToRemove)" />
48
49   </Target>
50
51   <!--
52     Target : Restore
53     ==============
54     Restore all projects.
55   -->
56   <Target Name="Restore">
57
58     <MSBuild Projects="@(ProjectToBuild)"
59              Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources)"
60              BuildInParallel="false"
61              Targets="Restore" />
62
63   </Target>
64
65   <!--
66     Target : Build
67     ==============
68     Build all projects.
69   -->
70   <Target Name="Build">
71
72     <MSBuild Projects="@(ProjectToBuild)"
73              Properties="Configuration=$(Configuration)"
74              BuildInParallel="true"
75              UseResultsCache="true"
76              Targets="Build" />
77
78     <MSBuild Projects="@(ProjectToBuild)"
79              Properties="Configuration=$(Configuration)"
80              BuildInParallel="false"
81              Targets="CopyToArtifactsDirectory" />
82
83   </Target>
84
85   <!--
86     Target : Dummy
87     ==============
88     Generate dummy assemblies of all projects.
89   -->
90   <Target Name="Dummy" DependsOnTargets="GenerateDummyProject">
91
92     <ItemGroup>
93       <DummyProjectToBuild Include="$(PublicDummyProjectDir)**\*.csproj" />
94       <DummyProjectToBuild Include="$(InternalDummyProjectDir)**\*.csproj" />
95     </ItemGroup>
96
97     <MSBuild Projects="@(DummyProjectToBuild)"
98              Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources)"
99              BuildInParallel="false"
100              Targets="Restore" />
101
102     <MSBuild Projects="@(DummyProjectToBuild)"
103              Properties="Configuration=$(Configuration);WarningLevel=0;OutDir=$(OutputDummyDir);ProduceReferenceAssembly=False"
104              BuildInParallel="true"
105              UseResultsCache="true"
106              Targets="Build" />
107
108   </Target>
109
110
111   <Target Name="GenerateDummyProject" Inputs="@(ProjectToBuild)" Outputs="%(Filename)" >
112
113     <PropertyGroup>
114       <GeneratedDummyAssembly>$(OutputDummyDir)%(ProjectToBuild.Filename).dll</GeneratedDummyAssembly>
115       <ClonedProjectsDir Condition="'%(ProjectToBuild.Visibility)' == 'Public'" >$(PublicDummyProjectDir)</ClonedProjectsDir>
116       <ClonedProjectsDir Condition="'%(ProjectToBuild.Visibility)' == 'Internal'" >$(InternalDummyProjectDir)</ClonedProjectsDir>
117     </PropertyGroup>
118
119     <Message Text="[GenDummy] %(ProjectToBuild.Filename)" Importance="High" />
120     <Message Text="Directory = %(ProjectToBuild.Directory)" Importance="High" />
121
122     <Exec Command='$(GenDummyCommand) -project %(ProjectToBuild.Filename) -source %(ProjectToBuild.RootDir)%(ProjectToBuild.Directory).. -clonePath $(ClonedProjectsDir)' />
123
124   </Target>
125
126   <Target Name="AfterDummy">
127     <Message Text="Clean Directory" Importance="High" />
128     <RemoveDir Directories="$(PublicDummyProjectDir);$(InternalDummyProjectDir)" />
129   </Target>
130
131 </Project>