1 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
\r
3 <UsingTask TaskName="DowngradeProject" AssemblyFile="$(RootDir)\tools\BuildTasks\BuildTasks.dll"/>
\r
4 <UsingTask TaskName="DowngradeSolution" AssemblyFile="$(RootDir)\tools\BuildTasks\BuildTasks.dll"/>
\r
5 <UsingTask TaskName="GetSolutionProjects" AssemblyFile="$(RootDir)\tools\BuildTasks\BuildTasks.dll"/>
\r
6 <UsingTask TaskName="SelectByPrefix" AssemblyFile="$(RootDir)\tools\BuildTasks\BuildTasks.dll"/>
\r
9 <RootDir>$(MSBuildProjectDirectory)\..</RootDir>
\r
10 <BuildDir>$(RootDir)\build</BuildDir>
\r
11 <SamplesDir>$(RootDir)\samples</SamplesDir>
\r
12 <StagingDir>$(RootDir)\artifact\stage</StagingDir>
\r
14 <TestsBinDir>$(RootDir)\tests\SlimDX\bin</TestsBinDir>
\r
15 <NUnitBinDir>$(RootDir)\external\NUnit\bin</NUnitBinDir>
\r
19 <SolutionsToDowngrade Include="$(RootDir)\**\*.sln" Exclude="$(RootDir)\tools\**\*.*;$(RootDir)\**\*.2005.sln"/>
\r
21 <ProjectsToDowngrade Include="$(RootDir)\**\*.vcproj" Exclude="$(RootDir)\tools\**\*.*;$(RootDir)\**\*.2005.vcproj"/>
\r
22 <ProjectsToDowngrade Include="$(RootDir)\**\*.csproj" Exclude="$(RootDir)\tools\**\*.*;$(RootDir)\**\*.2005.csproj"/>
\r
25 <Target Name="Build" DependsOnTargets="_CompileSolution">
\r
26 <MakeDir Directories="%(LibraryOutputFiles.PathInArtifacts)"/>
\r
27 <Copy SourceFiles="@(LibraryOutputFiles)" DestinationFiles="@(LibraryOutputFiles->'%(PathInArtifacts)%(FileName)%(Extension)')"/>
\r
29 <MakeDir Directories="%(SampleOutputFiles.PathInArtifacts)"/>
\r
30 <Copy SourceFiles="@(SampleOutputFiles)" DestinationFiles="@(SampleOutputFiles->'%(PathInArtifacts)%(FileName)%(Extension)')"/>
\r
33 <Target Name="Clean">
\r
34 <RemoveDir Directories="$(BuildDir)\x86;$(BuildDir)\x64"/>
\r
35 <RemoveDir Directories="$(RootDir)\tests\SlimDX.Tests\x86;$(RootDir)\tests\SlimDX.Tests\x64"/>
\r
38 <!-- =====================================================================
\r
40 Runs SlimDX unit tests. Expects the tests to have been built.
\r
41 ===================================================================== -->
\r
43 Name="RunTests" DependsOnTargets="_CheckEnvironmentVariables"
\r
44 Condition="'$(RunTests)'=='true'">
\r
45 <Exec Command="$(RootDir)\tests\SlimDX.Tests\x86\Release\SlimDX.Tests.exe"/>
\r
48 <!-- =====================================================================
\r
49 Create2005Environment
\r
50 Creates a VS 2005 build environment for SlimDX. This produce 2005
\r
51 versions of all solution and project files next to their 2008.
\r
52 ===================================================================== -->
\r
54 Name="Create2005Environment">
\r
56 InputSolutions="@(SolutionsToDowngrade)"
\r
57 OutputSolutions="@(SolutionsToDowngrade->'%(RootDir)%(Directory)%(FileName).2005%(Extension)')"/>
\r
59 InputProjects="@(ProjectsToDowngrade)"
\r
60 OutputProjects="@(ProjectsToDowngrade->'%(RootDir)%(Directory)%(FileName).2005%(Extension)')"/>
\r
63 <!-- =====================================================================
\r
65 Builds the solution. Creates @(BuiltProjects), which contains the
\r
66 list of project files that were in the solution.
\r
67 ===================================================================== -->
\r
69 Name="_CompileSolution"
\r
70 DependsOnTargets="_CheckProperties;_SelectSolution">
\r
72 Properties="Configuration=$(Configuration);Platform=$(Platform)"
\r
73 Projects="$(SolutionToBuild)"/>
\r
75 <GetSolutionProjects
\r
76 SolutionFile="$(SolutionToBuild)">
\r
78 ItemName="BuiltProjects"
\r
79 TaskParameter="ProjectFiles"/>
\r
80 </GetSolutionProjects>
\r
83 Prefix="$(SamplesDir)"
\r
84 InputItems="@(BuiltProjects->'%(RootDir)%(Directory)')">
\r
86 ItemName="SampleOutputRoots"
\r
87 TaskParameter="OutputItems"/>
\r
91 Include="$(BuildDir)\$(Platform)\$(Configuration)\*.dll;$(BuildDir)\$(Platform)\$(Configuration)\*.pdb"
\r
92 Exclude="$(BuildDir)\$(Platform)\$(Configuration)\vc90.pdb"
\r
93 AdditionalMetadata="PathInArtifacts=$(StagingDir)\$(Platform)\$(Configuration)\Library\">
\r
95 ItemName="LibraryOutputFiles"
\r
96 TaskParameter="Include"/>
\r
100 Include="@(SampleOutputRoots->'%(FullPath)bin\$(Platform)\$(Configuration)\*.exe');@(SampleOutputRoots->'%(FullPath)bin\$(Platform)\$(Configuration)\*.dll')"
\r
101 Exclude="@(SampleOutputRoots->'%(FullPath)bin\$(Platform)\$(Configuration)\*.vshost.exe')"
\r
102 AdditionalMetadata="PathInArtifacts=$(StagingDir)\$(Platform)\$(Configuration)\Samples\%(UniquePart)">
\r
104 ItemName="SampleOutputFiles"
\r
105 TaskParameter="Include"/>
\r
109 <!-- =====================================================================
\r
111 Selects which solution file to build based on which version of
\r
112 Visual Studio is being used. If neccessary, this will generate the
\r
113 build environment for the 2005 build.
\r
114 ===================================================================== -->
\r
116 Name="_SelectSolution"
\r
117 DependsOnTargets="_SelectVisualStudioVersion">
\r
119 Condition="'$(BuildWith2005)'=='True'"
\r
120 Targets="Create2005Environment"/>
\r
122 Condition="'$(BuildWith2005)'=='True'"
\r
123 Value="$(BuildDir)\SlimDX.2005.sln">
\r
125 PropertyName="SolutionToBuild"
\r
126 TaskParameter="Value"/>
\r
129 Condition="'$(BuildWith2005)'=='False'"
\r
130 Value="$(BuildDir)\SlimDX.sln">
\r
132 PropertyName="SolutionToBuild"
\r
133 TaskParameter="Value"/>
\r
137 <!-- =====================================================================
\r
138 _SelectVisualStudioVersion
\r
139 Selects which version of Visual Studio will be used for the build.
\r
140 ===================================================================== -->
\r
142 Name="_SelectVisualStudioVersion"
\r
143 DependsOnTargets="_CheckEnvironmentVariables">
\r
145 Condition="'$(VS80COMNTOOLS)'!='' and '$(VS90COMNTOOLS)'==''"
\r
147 Text="Building with a VS 2005 installation."/>
\r
149 Condition="'$(VS80COMNTOOLS)'!='' and '$(VS90COMNTOOLS)'==''"
\r
152 PropertyName="BuildWith2005"
\r
153 TaskParameter="Value"/>
\r
156 Condition="'$(VS90COMNTOOLS)'!=''"
\r
158 Text="Building with a VS 2008 installation."/>
\r
160 Condition="'$(VS90COMNTOOLS)'!=''"
\r
163 PropertyName="BuildWith2005"
\r
164 TaskParameter="Value"/>
\r
168 <!-- =====================================================================
\r
169 _CheckEnvironmentVariables
\r
170 Ensures that the required environment variables are valid.
\r
171 ===================================================================== -->
\r
173 Name="_CheckEnvironmentVariables">
\r
175 Condition="'$(VS80COMNTOOLS)'=='' and '$(VS90COMNTOOLS)'==''"
\r
176 Text="Environment variable VS80COMNTOOLS or VS90COMNTOOLS not found; have you installed Visual C++ 2005 or 2008?"/>
\r
178 Condition="'$(DXSDK_DIR)'==''"
\r
179 Text="Environment variable DXSDK_DIR not set; have you installed the DirectX SDK?"/>
\r
181 <!-- This assumes that 'x86' is the only 32-bit value for PROCESSOR_ARCHITECTURE. -->
\r
183 Condition="'$(PROCESSOR_ARCHITECTURE)'=='x86'"
\r
186 PropertyName="MachineIs64Bit"
\r
187 TaskParameter="Value"/>
\r
190 Condition="'$(PROCESSOR_ARCHITECTURE)'!='x86'"
\r
193 PropertyName="MachineIs64Bit"
\r
194 TaskParameter="Value"/>
\r
198 <!-- =====================================================================
\r
200 Ensures that the required properties are valid.
\r
201 ===================================================================== -->
\r
203 Name="_CheckProperties">
\r
205 Condition="'$(Configuration)'==''"
\r
206 Text="The Configuration property must be specified."/>
\r
208 Condition="'$(Platform)'==''"
\r
209 Text="The Platform property must be specified."/>
\r