]> git.cworth.org Git - apitrace-tests/blob - cmake/FindDirectX.cmake
cbbe4f134506e6f4c2d7a3e52b1c1f8a8f37c77a
[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_path (DirectX_D3D10_INCLUDE_DIR d3d10.h
142                 PATHS ${DirectX_INC_SEARCH_PATH}
143                 DOC "The directory where d3d10.h resides")
144
145         find_path (DirectX_D3DX10_INCLUDE_DIR d3dx10.h
146                 PATHS ${DirectX_INC_SEARCH_PATH}
147                 DOC "The directory where d3dx10.h resides")
148
149         find_library (DirectX_D3D10_LIBRARY d3d10
150                 PATHS ${DirectX_LIB_SEARCH_PATH}
151                 DOC "The directory where d3d10 resides")
152
153         find_library (DirectX_D3DX10_LIBRARY d3dx10
154                 PATHS ${DirectX_LIB_SEARCH_PATH}
155                 DOC "The directory where d3dx10 resides")
156
157         if (DirectX_D3D10_INCLUDE_DIR AND DirectX_D3D10_LIBRARY)
158                 set (DirectX_D3D10_FOUND 1)
159                 if (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3DX10_LIBRARY)
160                         set (DirectX_D3DX10_FOUND 1)
161                 endif ()
162         endif ()
163
164
165         find_path (DirectX_D3D10_1_INCLUDE_DIR d3d10_1.h
166                 PATHS ${DirectX_INC_SEARCH_PATH}
167                 DOC "The directory where d3d10_1.h resides")
168
169         find_library (DirectX_D3D10_1_LIBRARY d3d10_1
170                 PATHS ${DirectX_LIB_SEARCH_PATH}
171                 DOC "The directory where d3d10_1 resides")
172
173         if (DirectX_D3D10_1_INCLUDE_DIR AND DirectX_D3D10_1_LIBRARY)
174                 set (DirectX_D3D10_1_FOUND 1)
175         endif ()
176
177
178         find_path (DirectX_D3D11_INCLUDE_DIR d3d11.h
179                 PATHS ${DirectX_INC_SEARCH_PATH}
180                 DOC "The directory where d3d11.h resides")
181
182         find_path (DirectX_D3DX11_INCLUDE_DIR d3dx11.h
183                 PATHS ${DirectX_INC_SEARCH_PATH}
184                 DOC "The directory where d3dx11.h resides")
185
186         find_library (DirectX_D3D11_LIBRARY d3d11
187                 PATHS ${DirectX_LIB_SEARCH_PATH}
188                 DOC "The directory where d3d11 resides")
189
190         find_library (DirectX_D3DX11_LIBRARY d3dx11
191                 PATHS ${DirectX_LIB_SEARCH_PATH}
192                 DOC "The directory where d3dx11 resides")
193
194         if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
195                 set (DirectX_D3D11_FOUND 1)
196                 if (DirectX_D3DX11_INCLUDE_DIR AND DirectX_D3DX11_LIBRARY)
197                         set (DirectX_D3DX11_FOUND 1)
198                 endif ()
199         endif ()
200
201
202         find_path (DirectX_D3D11_1_INCLUDE_DIR d3d11_1.h
203                 PATHS ${DirectX_INC_SEARCH_PATH}
204                 DOC "The directory where d3d11_1.h resides")
205
206         if (DirectX_D3D11_1_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
207                 set (DirectX_D3D11_1_FOUND 1)
208         endif ()
209
210
211         find_program (DirectX_FXC_EXECUTABLE fxc
212                 PATHS ${DirectX_BIN_SEARCH_PATH}
213                 DOC "Path to fxc.exe executable.")
214
215
216         mark_as_advanced (
217                 DirectX_D3D_INCLUDE_DIR
218                 DirectX_D3D_INCLUDE_DIR
219                 DirectX_DDRAW_LIBRARY
220                 DirectX_DDRAW_LIBRARY
221                 DirectX_D3DX_INCLUDE_DIR
222                 DirectX_D3DX_INCLUDE_DIR
223                 DirectX_D3DX_LIBRARY
224                 DirectX_D3DX_LIBRARY
225                 DirectX_D3D8_INCLUDE_DIR
226                 DirectX_D3D8_INCLUDE_DIR
227                 DirectX_D3D8_LIBRARY
228                 DirectX_D3D8_LIBRARY
229                 DirectX_D3DX8_INCLUDE_DIR
230                 DirectX_D3DX8_INCLUDE_DIR
231                 DirectX_D3DX8_LIBRARY
232                 DirectX_D3DX8_LIBRARY
233                 DirectX_D3D9_INCLUDE_DIR
234                 DirectX_D3D9_LIBRARY
235                 DirectX_D3DX9_INCLUDE_DIR
236                 DirectX_D3DX9_LIBRARY
237                 DirectX_D3D10_INCLUDE_DIR
238                 DirectX_D3D10_LIBRARY
239                 DirectX_D3DX10_INCLUDE_DIR
240                 DirectX_D3DX10_LIBRARY
241                 DirectX_D3D10_1_INCLUDE_DIR
242                 DirectX_D3D10_1_LIBRARY
243                 DirectX_D3D11_INCLUDE_DIR
244                 DirectX_D3D11_LIBRARY
245                 DirectX_D3DX11_INCLUDE_DIR
246                 DirectX_D3DX11_LIBRARY
247                 DirectX_D3D11_1_INCLUDE_DIR
248         )
249
250
251 endif ()
252
253
254 mark_as_advanced (
255         DirectX_D3D_FOUND
256         DirectX_D3DX_FOUND
257         DirectX_D3D8_FOUND
258         DirectX_D3DX8_FOUND
259         DirectX_D3D9_FOUND
260         DirectX_D3DX9_FOUND
261         DirectX_D3D10_FOUND
262         DirectX_D3DX10_FOUND
263         DirectX_D3D10_1_FOUND
264         DirectX_D3D11_FOUND
265         DirectX_D3DX11_FOUND
266         DirectX_D3D11_1_FOUND
267 )
268
269
270 # vim:set sw=4 ts=4 noet: