]> git.cworth.org Git - apitrace-tests/blob - cmake/FindDirectX.cmake
Update examples to use DXGI.
[apitrace-tests] / cmake / FindDirectX.cmake
1 # - try to find DirectX include dirs and libraries
2
3
4 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
5
6
7         if (CMAKE_CL_64)
8                 set (DirectX_ARCHITECTURE x64)
9         else ()
10                 set (DirectX_ARCHITECTURE x86)
11         endif ()
12
13
14         # DirectX SDK
15         find_path (DirectX_ROOT_DIR
16                 Include/d3d9.h
17                 PATHS
18                         "$ENV{DXSDK_DIR}"
19                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (June 2010)"
20                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (June 2010)"
21                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (February 2010)"
22                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (February 2010)"
23                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (March 2009)"
24                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (March 2009)"
25                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (August 2008)"
26                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (August 2008)"
27                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (June 2008)"
28                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (June 2008)"
29                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (March 2008)"
30                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (March 2008)"
31                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (November 2007)"
32                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (November 2007)"
33                         "$ENV{ProgramFiles}/Microsoft DirectX SDK (August 2007)"
34                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK (August 2007)"
35                         "$ENV{ProgramFiles}/Microsoft DirectX SDK"
36                         "$ENV{ProgramFiles(x86)}/Microsoft DirectX SDK"
37                 DOC "DirectX SDK root directory"
38         )
39         if (DirectX_ROOT_DIR)
40                 set (DirectX_INC_SEARCH_PATH "${DirectX_ROOT_DIR}/Include")
41                 set (DirectX_LIB_SEARCH_PATH "${DirectX_ROOT_DIR}/Lib/${DirectX_ARCHITECTURE}")
42                 set (DirectX_BIN_SEARCH_PATH "${DirectX_ROOT_DIR}/Utilities/bin/x86")
43         endif ()
44
45
46         # With VS 2011 and Windows 8 SDK, the DirectX SDK is included as part of
47         # the Windows SDK.
48         #
49         # See also:
50         # - http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx
51         # TODO: Allow using DirectX SDK with VS 2011
52         if (DEFINED MSVC_VERSION AND NOT ${MSVC_VERSION} LESS 1700)
53                 find_path (WIN8_SDK_ROOT_DIR
54                         Include/um/windows.h
55                         PATHS
56                                 "$ENV{ProgramFiles}/Windows Kits/8.0"
57                                 "$ENV{ProgramFiles(x86)}/Windows Kits/8.0"
58                                 DOC "Windows 8 SDK root directory"
59                 )
60
61                 if (WIN8_SDK_ROOT_DIR)
62                         set (DirectX_INC_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/Include/um" "${WIN8_SDK_ROOT_DIR}/Include/shared")
63                         set (DirectX_LIB_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/Lib/Win8/um/${DirectX_ARCHITECTURE}")
64                         set (DirectX_BIN_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/bin/x86")
65                 endif ()
66         endif ()
67
68
69         find_path (DirectX_D3D_INCLUDE_DIR d3d.h
70                 PATHS ${DirectX_INC_SEARCH_PATH}
71                 DOC "The directory where d3d.h resides")
72
73         find_path (DirectX_D3DX_INCLUDE_DIR d3dx.h
74                 PATHS ${DirectX_INC_SEARCH_PATH}
75                 DOC "The directory where d3dx.h resides")
76
77         find_library (DirectX_DDRAW_LIBRARY ddraw
78                 PATHS ${DirectX_LIB_SEARCH_PATH}
79                 DOC "The directory where ddraw resides")
80
81         find_library (DirectX_D3DX_LIBRARY d3dx
82                 PATHS ${DirectX_LIB_SEARCH_PATH}
83                 DOC "The directory where d3dx resides")
84
85         if (DirectX_D3D_INCLUDE_DIR AND DirectX_DDRAW_LIBRARY)
86                 set (DirectX_D3D_FOUND 1)
87                 if (DirectX_D3DX_INCLUDE_DIR AND DirectX_D3DX_LIBRARY)
88                         set (DirectX_D3DX_FOUND 1)
89                 endif ()
90         endif ()
91
92
93         find_path (DirectX_D3D8_INCLUDE_DIR d3d8.h
94                 PATHS ${DirectX_INC_SEARCH_PATH}
95                 DOC "The directory where d3d8.h resides")
96
97         find_path (DirectX_D3DX8_INCLUDE_DIR d3dx8.h
98                 PATHS ${DirectX_INC_SEARCH_PATH}
99                 DOC "The directory where d3dx8.h resides")
100
101         find_library (DirectX_D3D8_LIBRARY d3d8
102                 PATHS ${DirectX_LIB_SEARCH_PATH}
103                 DOC "The directory where d3d8 resides")
104
105         find_library (DirectX_D3DX8_LIBRARY d3dx8
106                 PATHS ${DirectX_LIB_SEARCH_PATH}
107                 DOC "The directory where d3dx8 resides")
108
109         if (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3D8_LIBRARY)
110                 set (DirectX_D3D8_FOUND 1)
111                 if (DirectX_D3DX8_INCLUDE_DIR AND DirectX_D3DX8_LIBRARY)
112                         set (DirectX_D3DX8_FOUND 1)
113                 endif ()
114         endif ()
115
116
117         find_path (DirectX_D3D9_INCLUDE_DIR d3d9.h
118                 PATHS ${DirectX_INC_SEARCH_PATH}
119                 DOC "The directory where d3d9.h resides")
120
121         find_path (DirectX_D3DX9_INCLUDE_DIR d3dx9.h
122                 PATHS ${DirectX_INC_SEARCH_PATH}
123                 DOC "The directory where d3dx9.h resides")
124
125         find_library (DirectX_D3D9_LIBRARY d3d9
126                 PATHS ${DirectX_LIB_SEARCH_PATH}
127                 DOC "The directory where d3d9 resides")
128
129         find_library (DirectX_D3DX9_LIBRARY d3dx9
130                 PATHS ${DirectX_LIB_SEARCH_PATH}
131                 DOC "The directory where d3dx9 resides")
132
133         if (DirectX_D3D9_INCLUDE_DIR AND DirectX_D3D9_LIBRARY)
134                 set (DirectX_D3D9_FOUND 1)
135                 if (DirectX_D3DX9_INCLUDE_DIR AND DirectX_D3DX9_LIBRARY)
136                         set (DirectX_D3DX9_FOUND 1)
137                 endif ()
138         endif ()
139
140
141         find_library (DirectX_DXGI_LIBRARY dxgi
142                 PATHS ${DirectX_LIB_SEARCH_PATH}
143                 DOC "The directory where dxgi resides")
144
145
146         find_path (DirectX_D3D10_INCLUDE_DIR d3d10.h
147                 PATHS ${DirectX_INC_SEARCH_PATH}
148                 DOC "The directory where d3d10.h resides")
149
150         find_path (DirectX_D3DX10_INCLUDE_DIR d3dx10.h
151                 PATHS ${DirectX_INC_SEARCH_PATH}
152                 DOC "The directory where d3dx10.h resides")
153
154         find_library (DirectX_D3D10_LIBRARY d3d10
155                 PATHS ${DirectX_LIB_SEARCH_PATH}
156                 DOC "The directory where d3d10 resides")
157
158         find_library (DirectX_D3DX10_LIBRARY d3dx10
159                 PATHS ${DirectX_LIB_SEARCH_PATH}
160                 DOC "The directory where d3dx10 resides")
161
162         if (DirectX_D3D10_INCLUDE_DIR AND DirectX_D3D10_LIBRARY)
163                 set (DirectX_D3D10_FOUND 1)
164                 if (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3DX10_LIBRARY)
165                         set (DirectX_D3DX10_FOUND 1)
166                 endif ()
167         endif ()
168
169
170         find_path (DirectX_D3D10_1_INCLUDE_DIR d3d10_1.h
171                 PATHS ${DirectX_INC_SEARCH_PATH}
172                 DOC "The directory where d3d10_1.h resides")
173
174         find_library (DirectX_D3D10_1_LIBRARY d3d10_1
175                 PATHS ${DirectX_LIB_SEARCH_PATH}
176                 DOC "The directory where d3d10_1 resides")
177
178         if (DirectX_D3D10_1_INCLUDE_DIR AND DirectX_D3D10_1_LIBRARY)
179                 set (DirectX_D3D10_1_FOUND 1)
180         endif ()
181
182
183         find_path (DirectX_D3D11_INCLUDE_DIR d3d11.h
184                 PATHS ${DirectX_INC_SEARCH_PATH}
185                 DOC "The directory where d3d11.h resides")
186
187         find_path (DirectX_D3DX11_INCLUDE_DIR d3dx11.h
188                 PATHS ${DirectX_INC_SEARCH_PATH}
189                 DOC "The directory where d3dx11.h resides")
190
191         find_library (DirectX_D3D11_LIBRARY d3d11
192                 PATHS ${DirectX_LIB_SEARCH_PATH}
193                 DOC "The directory where d3d11 resides")
194
195         find_library (DirectX_D3DX11_LIBRARY d3dx11
196                 PATHS ${DirectX_LIB_SEARCH_PATH}
197                 DOC "The directory where d3dx11 resides")
198
199         if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
200                 set (DirectX_D3D11_FOUND 1)
201                 if (DirectX_D3DX11_INCLUDE_DIR AND DirectX_D3DX11_LIBRARY)
202                         set (DirectX_D3DX11_FOUND 1)
203                 endif ()
204         endif ()
205
206
207         find_path (DirectX_D3D11_1_INCLUDE_DIR d3d11_1.h
208                 PATHS ${DirectX_INC_SEARCH_PATH}
209                 DOC "The directory where d3d11_1.h resides")
210
211         if (DirectX_D3D11_1_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
212                 set (DirectX_D3D11_1_FOUND 1)
213         endif ()
214
215
216         find_program (DirectX_FXC_EXECUTABLE fxc
217                 PATHS ${DirectX_BIN_SEARCH_PATH}
218                 DOC "Path to fxc.exe executable.")
219
220
221         mark_as_advanced (
222                 DirectX_D3D_INCLUDE_DIR
223                 DirectX_D3D_INCLUDE_DIR
224                 DirectX_DDRAW_LIBRARY
225                 DirectX_DDRAW_LIBRARY
226                 DirectX_D3DX_INCLUDE_DIR
227                 DirectX_D3DX_INCLUDE_DIR
228                 DirectX_D3DX_LIBRARY
229                 DirectX_D3DX_LIBRARY
230                 DirectX_D3D8_INCLUDE_DIR
231                 DirectX_D3D8_INCLUDE_DIR
232                 DirectX_D3D8_LIBRARY
233                 DirectX_D3D8_LIBRARY
234                 DirectX_D3DX8_INCLUDE_DIR
235                 DirectX_D3DX8_INCLUDE_DIR
236                 DirectX_D3DX8_LIBRARY
237                 DirectX_D3DX8_LIBRARY
238                 DirectX_D3D9_INCLUDE_DIR
239                 DirectX_D3D9_LIBRARY
240                 DirectX_D3DX9_INCLUDE_DIR
241                 DirectX_D3DX9_LIBRARY
242                 DirectX_D3D10_INCLUDE_DIR
243                 DirectX_D3D10_LIBRARY
244                 DirectX_D3DX10_INCLUDE_DIR
245                 DirectX_D3DX10_LIBRARY
246                 DirectX_D3D10_1_INCLUDE_DIR
247                 DirectX_D3D10_1_LIBRARY
248                 DirectX_D3D11_INCLUDE_DIR
249                 DirectX_D3D11_LIBRARY
250                 DirectX_D3DX11_INCLUDE_DIR
251                 DirectX_D3DX11_LIBRARY
252                 DirectX_D3D11_1_INCLUDE_DIR
253         )
254
255
256 endif ()
257
258
259 mark_as_advanced (
260         DirectX_D3D_FOUND
261         DirectX_D3DX_FOUND
262         DirectX_D3D8_FOUND
263         DirectX_D3DX8_FOUND
264         DirectX_D3D9_FOUND
265         DirectX_D3DX9_FOUND
266         DirectX_D3D10_FOUND
267         DirectX_D3DX10_FOUND
268         DirectX_D3D10_1_FOUND
269         DirectX_D3D11_FOUND
270         DirectX_D3DX11_FOUND
271         DirectX_D3D11_1_FOUND
272 )
273
274
275 # vim:set sw=4 ts=4 noet: