OSDN Git Service

SlimDXの改造後コード。(June2010を変更したもの。)
[dtxmania/dtxmania.git] / SlimDXc_Jun2010(VC++2008) / build / SlimDX.proj
1 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">\r
2 \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
7 \r
8         <PropertyGroup>\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
13 \r
14                 <TestsBinDir>$(RootDir)\tests\SlimDX\bin</TestsBinDir>\r
15                 <NUnitBinDir>$(RootDir)\external\NUnit\bin</NUnitBinDir>\r
16         </PropertyGroup>\r
17 \r
18         <ItemGroup>\r
19                 <SolutionsToDowngrade Include="$(RootDir)\**\*.sln" Exclude="$(RootDir)\tools\**\*.*;$(RootDir)\**\*.2005.sln"/>\r
20                 \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
23         </ItemGroup>\r
24         \r
25         <Target Name="Build" DependsOnTargets="_CompileSolution">\r
26                 <MakeDir Directories="%(LibraryOutputFiles.PathInArtifacts)"/>\r
27                 <Copy SourceFiles="@(LibraryOutputFiles)" DestinationFiles="@(LibraryOutputFiles->'%(PathInArtifacts)%(FileName)%(Extension)')"/>\r
28 \r
29                 <MakeDir Directories="%(SampleOutputFiles.PathInArtifacts)"/>\r
30                 <Copy SourceFiles="@(SampleOutputFiles)" DestinationFiles="@(SampleOutputFiles->'%(PathInArtifacts)%(FileName)%(Extension)')"/>\r
31         </Target>\r
32 \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
36   </Target>\r
37   \r
38         <!-- ===================================================================== \r
39              RunTests\r
40                Runs SlimDX unit tests. Expects the tests to have been built.\r
41        ===================================================================== -->\r
42         <Target\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
46         </Target>\r
47 \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
53         <Target\r
54     Name="Create2005Environment">\r
55                 <DowngradeSolution\r
56       InputSolutions="@(SolutionsToDowngrade)"\r
57       OutputSolutions="@(SolutionsToDowngrade->'%(RootDir)%(Directory)%(FileName).2005%(Extension)')"/>\r
58                 <DowngradeProject\r
59                         InputProjects="@(ProjectsToDowngrade)"\r
60                         OutputProjects="@(ProjectsToDowngrade->'%(RootDir)%(Directory)%(FileName).2005%(Extension)')"/>\r
61         </Target>\r
62 \r
63         <!-- ===================================================================== \r
64              _CompileSolution\r
65                Builds the solution. Creates @(BuiltProjects), which contains the\r
66                list of project files that were in the solution. \r
67        ===================================================================== -->\r
68         <Target\r
69                 Name="_CompileSolution"\r
70                 DependsOnTargets="_CheckProperties;_SelectSolution">\r
71                 <MsBuild\r
72                         Properties="Configuration=$(Configuration);Platform=$(Platform)"\r
73                         Projects="$(SolutionToBuild)"/>\r
74 \r
75                 <GetSolutionProjects\r
76                         SolutionFile="$(SolutionToBuild)">\r
77                         <Output\r
78                                 ItemName="BuiltProjects"\r
79                                 TaskParameter="ProjectFiles"/>\r
80                 </GetSolutionProjects>\r
81 \r
82                 <SelectByPrefix\r
83                         Prefix="$(SamplesDir)"\r
84                         InputItems="@(BuiltProjects->'%(RootDir)%(Directory)')">\r
85                         <Output\r
86                                 ItemName="SampleOutputRoots"\r
87                                 TaskParameter="OutputItems"/>\r
88                 </SelectByPrefix>\r
89 \r
90                 <CreateItem\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
94                         <Output\r
95                                 ItemName="LibraryOutputFiles"\r
96                                 TaskParameter="Include"/>\r
97                 </CreateItem>\r
98 \r
99                 <CreateItem\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
103                         <Output\r
104                                 ItemName="SampleOutputFiles"\r
105                                 TaskParameter="Include"/>\r
106                 </CreateItem>\r
107         </Target>\r
108 \r
109         <!-- ===================================================================== \r
110              _SelectSolution\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
115         <Target\r
116                 Name="_SelectSolution"\r
117                 DependsOnTargets="_SelectVisualStudioVersion">\r
118                 <CallTarget\r
119                         Condition="'$(BuildWith2005)'=='True'"\r
120                         Targets="Create2005Environment"/>\r
121                 <CreateProperty\r
122                         Condition="'$(BuildWith2005)'=='True'"\r
123                         Value="$(BuildDir)\SlimDX.2005.sln">\r
124                         <Output\r
125                                 PropertyName="SolutionToBuild"\r
126                                 TaskParameter="Value"/>\r
127                 </CreateProperty>\r
128                 <CreateProperty\r
129                         Condition="'$(BuildWith2005)'=='False'"\r
130                         Value="$(BuildDir)\SlimDX.sln">\r
131                         <Output\r
132                                 PropertyName="SolutionToBuild"\r
133                                 TaskParameter="Value"/>\r
134                 </CreateProperty>\r
135         </Target>\r
136 \r
137         <!-- ===================================================================== \r
138              _SelectVisualStudioVersion\r
139                Selects which version of Visual Studio will be used for the build.\r
140        ===================================================================== -->\r
141         <Target\r
142                 Name="_SelectVisualStudioVersion"\r
143                 DependsOnTargets="_CheckEnvironmentVariables">\r
144                 <Message\r
145                         Condition="'$(VS80COMNTOOLS)'!='' and '$(VS90COMNTOOLS)'==''"\r
146                         Importance="high"\r
147                         Text="Building with a VS 2005 installation."/>\r
148                 <CreateProperty\r
149                         Condition="'$(VS80COMNTOOLS)'!='' and '$(VS90COMNTOOLS)'==''"\r
150                         Value="True">\r
151                         <Output\r
152                                 PropertyName="BuildWith2005"\r
153                                 TaskParameter="Value"/>\r
154                 </CreateProperty>\r
155                 <Message\r
156                         Condition="'$(VS90COMNTOOLS)'!=''"\r
157                         Importance="high"\r
158                         Text="Building with a VS 2008 installation."/>\r
159                 <CreateProperty\r
160                                         Condition="'$(VS90COMNTOOLS)'!=''"\r
161                                         Value="False">\r
162                         <Output\r
163                                 PropertyName="BuildWith2005"\r
164                                 TaskParameter="Value"/>\r
165                 </CreateProperty>\r
166         </Target>\r
167 \r
168         <!-- ===================================================================== \r
169              _CheckEnvironmentVariables\r
170                Ensures that the required environment variables are valid.\r
171        ===================================================================== -->\r
172         <Target\r
173                 Name="_CheckEnvironmentVariables">\r
174                 <Error\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
177                 <Error\r
178                         Condition="'$(DXSDK_DIR)'==''"\r
179                         Text="Environment variable DXSDK_DIR not set; have you installed the DirectX SDK?"/>\r
180 \r
181                 <!-- This assumes that 'x86' is the only 32-bit value for PROCESSOR_ARCHITECTURE. -->\r
182                 <CreateProperty\r
183                         Condition="'$(PROCESSOR_ARCHITECTURE)'=='x86'"\r
184                         Value="False">\r
185                         <Output\r
186                                 PropertyName="MachineIs64Bit"\r
187                                 TaskParameter="Value"/>\r
188                 </CreateProperty>\r
189                 <CreateProperty\r
190                         Condition="'$(PROCESSOR_ARCHITECTURE)'!='x86'"\r
191                         Value="True">\r
192                         <Output\r
193                                 PropertyName="MachineIs64Bit"\r
194                                 TaskParameter="Value"/>\r
195                 </CreateProperty>\r
196         </Target>\r
197 \r
198         <!-- ===================================================================== \r
199              _CheckProperties\r
200                Ensures that the required properties are valid.\r
201        ===================================================================== -->\r
202         <Target\r
203                 Name="_CheckProperties">\r
204                 <Error\r
205                         Condition="'$(Configuration)'==''"\r
206                         Text="The Configuration property must be specified."/>\r
207                 <Error\r
208                         Condition="'$(Platform)'==''"\r
209                         Text="The Platform property must be specified."/>\r
210         </Target>\r
211 </Project>\r