Remove files of VS (#1011)
[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 Condition="'$(Configuration)' == ''">Release</Configuration>
8     <BuildWithAnalyzer Condition="'$(BuildWithAnalyzer)' == ''">False</BuildWithAnalyzer>
9     <BuildDesignAssembly Condition="'$(BuildDesignAssembly)' == ''">False</BuildDesignAssembly>
10   </PropertyGroup>
11
12   <!-- Projects to build -->
13   <ItemGroup>
14     <ProjectToBuild Include="$(ProjectSrcDir)\$(Project)\$(Project).csproj"
15                     Condition="'$(Project)' != '' And Exists('$(ProjectSrcDir)\$(Project)\$(Project).csproj') " />
16     <ProjectToBuild Include="$(InternalProjectSrcDir)\$(Project)\$(Project).csproj"
17                     Condition="'$(Project)' != ''  And Exists('$(InternalProjectSrcDir)\$(Project)\$(Project).csproj')  " />
18     <ProjectToBuild Include="$(ProjectSrcDir)**\*.csproj" Condition="'$(Project)' == ''" />
19     <ProjectToBuild Include="$(InternalProjectSrcDir)**\*.csproj" Condition="'$(Project)' == '' " />
20     <DesignProject Include="$(ProjectSrcDir)**\*.Design.csproj" />
21     <DesignProject Include="$(InternalProjectSrcDir)**\*.Design.csproj" />
22     <ProjectToBuild Remove="@(DesignProject)" Condition="'$(BuildDesignAssembly)' != 'True' " />
23   </ItemGroup>
24
25   <!-- Nuspec files to pack -->
26   <ItemGroup>
27     <NuspecFiles Include="$(ProjectRootDir)pkg\**\*.nuspec" />
28   </ItemGroup>
29
30   <!--
31     Target : Clean
32     ==============
33     Delete all artifacts,
34     including the Artifacts/ directory and the obj and bin directories of all projects.
35   -->
36   <Target Name="Clean">
37
38     <ItemGroup>
39       <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\obj\**" />
40       <ProjectIntermediateAllFiles Include="$(ProjectSrcDir)**\bin\**" />
41       <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\obj\**" />
42       <ProjectIntermediateAllFiles Include="$(InternalProjectSrcDir)**\bin\**" />
43       <ProjectIntermediateDir Include="@(ProjectIntermediateAllFiles->'%(RootDir)%(Directory)'->Distinct())" />
44     </ItemGroup>
45
46     <ItemGroup>
47       <DirToRemove Include="$(OutputBaseDir)" />
48       <DirToRemove Include="@(ProjectIntermediateDir)" />
49     </ItemGroup>
50
51     <RemoveDir Directories="@(DirToRemove)" />
52
53   </Target>
54
55   <!--
56     Target : Restore
57     ==============
58     Restore all projects.
59   -->
60   <Target Name="Restore">
61
62     <MSBuild Projects="@(ProjectToBuild)"
63              Properties="Configuration=$(Configuration);RestoreSources=$(RestoreSources);BuildWithAnalyzer=$(BuildWithAnalyzer)"
64              BuildInParallel="false"
65              Targets="Restore" />
66
67   </Target>
68
69   <!--
70     Target : Build
71     ==============
72     Build all projects.
73   -->
74   <Target Name="Build">
75
76     <MSBuild Projects="@(ProjectToBuild)"
77              Properties="Configuration=$(Configuration);BuildWithAnalyzer=$(BuildWithAnalyzer)"
78              BuildInParallel="true"
79              UseResultsCache="true"
80              Targets="Rebuild" />
81
82     <MSBuild Projects="@(ProjectToBuild)"
83              Properties="Configuration=$(Configuration)"
84              BuildInParallel="false"
85              Targets="CopyToArtifactsDirectory" />
86
87   </Target>
88
89   <!--
90     Target : Pack
91     ==============
92     Generate nuget packages.
93   -->
94   <Target Name="Pack">
95
96     <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
97              Properties="NoBuild=True"
98              Targets="Restore" />
99
100     <MSBuild Projects="$(MSBuildThisFileDirectory)pack.csproj"
101              Properties="NoBuild=True;Version=$(Version);NuspecFile=%(NuspecFiles.Identity)"
102              Targets="Pack" />
103
104   </Target>
105
106   <!--
107     Target : Dummy
108     ==============
109     Generate dummy assemblies of all projects.
110   -->
111   <Target Name="Dummy">
112
113     <PropertyGroup>
114       <APIToolPath>$(MSBuildThisFileDirectory)..\tools\bin\APITool.dll</APIToolPath>
115     </PropertyGroup>
116
117     <MakeDir Directories="$(OutputDummyDir)" />
118     <Exec Command="dotnet $([System.IO.Path]::GetFullPath('$(APIToolPath)')) dummy $(OutputPublicDir)ref $(OutputDummyDir) " />
119
120   </Target>
121
122 </Project>