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