]> git.cworth.org Git - apitrace/blob - cmake/FindDirectX.cmake
Support VS 2011 / Windows 8 SDK.
[apitrace] / 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         endif ()
43
44
45         # With VS 2011 and Windows 8 SDK, the DirectX SDK is included as part of
46         # the Windows SDK.
47         #
48         # See also:
49         # - http://msdn.microsoft.com/en-us/library/windows/desktop/ee663275.aspx
50         # TODO: Allow using DirectX SDK with VS 2011
51         if (DEFINED MSVC_VERSION AND NOT ${MSVC_VERSION} LESS 1700)
52                 find_path (WIN8_SDK_ROOT_DIR
53                         Include/um/windows.h
54                         PATHS
55                                 "$ENV{ProgramFiles}/Windows Kits/8.0"
56                                 "$ENV{ProgramFiles(x86)}/Windows Kits/8.0"
57                                 DOC "Windows 8 SDK root directory"
58                 )
59
60                 if (WIN8_SDK_ROOT_DIR)
61                         set (DirectX_INC_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/Include/um" "${WIN8_SDK_ROOT_DIR}/Include/shared")
62                         set (DirectX_LIB_SEARCH_PATH "${WIN8_SDK_ROOT_DIR}/Lib/Win8/um/${DirectX_ARCHITECTURE}")
63                 endif ()
64         endif ()
65
66
67         find_path (DirectX_D3D_INCLUDE_DIR d3d.h
68                 PATHS ${DirectX_INC_SEARCH_PATH}
69                 DOC "The directory where d3d.h resides")
70
71         find_path (DirectX_D3DX_INCLUDE_DIR d3dx.h
72                 PATHS ${DirectX_INC_SEARCH_PATH}
73                 DOC "The directory where d3dx.h resides")
74
75         find_library (DirectX_DDRAW_LIBRARY ddraw
76                 PATHS ${DirectX_LIB_SEARCH_PATH}
77                 DOC "The directory where ddraw resides")
78
79         find_library (DirectX_D3DX_LIBRARY d3dx
80                 PATHS ${DirectX_LIB_SEARCH_PATH}
81                 DOC "The directory where d3dx resides")
82
83         if (DirectX_D3D_INCLUDE_DIR AND DirectX_DDRAW_LIBRARY)
84                 set (DirectX_D3D_FOUND 1)
85                 if (DirectX_D3DX_INCLUDE_DIR AND DirectX_D3DX_LIBRARY)
86                         set (DirectX_D3DX_FOUND 1)
87                 endif ()
88         endif ()
89
90
91         find_path (DirectX_D3D8_INCLUDE_DIR d3d8.h
92                 PATHS ${DirectX_INC_SEARCH_PATH}
93                 DOC "The directory where d3d8.h resides")
94
95         find_path (DirectX_D3DX8_INCLUDE_DIR d3dx8.h
96                 PATHS ${DirectX_INC_SEARCH_PATH}
97                 DOC "The directory where d3dx8.h resides")
98
99         find_library (DirectX_D3D8_LIBRARY d3d8
100                 PATHS ${DirectX_LIB_SEARCH_PATH}
101                 DOC "The directory where d3d8 resides")
102
103         find_library (DirectX_D3DX8_LIBRARY d3dx8
104                 PATHS ${DirectX_LIB_SEARCH_PATH}
105                 DOC "The directory where d3dx8 resides")
106
107         if (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3D8_LIBRARY)
108                 set (DirectX_D3D8_FOUND 1)
109                 if (DirectX_D3DX8_INCLUDE_DIR AND DirectX_D3DX8_LIBRARY)
110                         set (DirectX_D3DX8_FOUND 1)
111                 endif ()
112         endif ()
113
114
115         find_path (DirectX_D3D9_INCLUDE_DIR d3d9.h
116                 PATHS ${DirectX_INC_SEARCH_PATH}
117                 DOC "The directory where d3d9.h resides")
118
119         find_path (DirectX_D3DX9_INCLUDE_DIR d3dx9.h
120                 PATHS ${DirectX_INC_SEARCH_PATH}
121                 DOC "The directory where d3dx9.h resides")
122
123         find_library (DirectX_D3D9_LIBRARY d3d9
124                 PATHS ${DirectX_LIB_SEARCH_PATH}
125                 DOC "The directory where d3d9 resides")
126
127         find_library (DirectX_D3DX9_LIBRARY d3dx9
128                 PATHS ${DirectX_LIB_SEARCH_PATH}
129                 DOC "The directory where d3dx9 resides")
130
131         if (DirectX_D3D9_INCLUDE_DIR AND DirectX_D3D9_LIBRARY)
132                 set (DirectX_D3D9_FOUND 1)
133                 if (DirectX_D3DX9_INCLUDE_DIR AND DirectX_D3DX9_LIBRARY)
134                         set (DirectX_D3DX9_FOUND 1)
135                 endif ()
136         endif ()
137
138
139         find_path (DirectX_D3D10_INCLUDE_DIR d3d10.h
140                 PATHS ${DirectX_INC_SEARCH_PATH}
141                 DOC "The directory where d3d10.h resides")
142
143         find_path (DirectX_D3DX10_INCLUDE_DIR d3dx10.h
144                 PATHS ${DirectX_INC_SEARCH_PATH}
145                 DOC "The directory where d3dx10.h resides")
146
147         find_library (DirectX_D3D10_LIBRARY d3d10
148                 PATHS ${DirectX_LIB_SEARCH_PATH}
149                 DOC "The directory where d3d10 resides")
150
151         find_library (DirectX_D3DX10_LIBRARY d3dx10
152                 PATHS ${DirectX_LIB_SEARCH_PATH}
153                 DOC "The directory where d3dx10 resides")
154
155         if (DirectX_D3D10_INCLUDE_DIR AND DirectX_D3D10_LIBRARY)
156                 set (DirectX_D3D10_FOUND 1)
157                 if (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3DX10_LIBRARY)
158                         set (DirectX_D3DX10_FOUND 1)
159                 endif ()
160         endif ()
161
162
163         find_path (DirectX_D3D10_1_INCLUDE_DIR d3d10_1.h
164                 PATHS ${DirectX_INC_SEARCH_PATH}
165                 DOC "The directory where d3d10_1.h resides")
166
167         find_library (DirectX_D3D10_1_LIBRARY d3d10_1
168                 PATHS ${DirectX_LIB_SEARCH_PATH}
169                 DOC "The directory where d3d10_1 resides")
170
171         if (DirectX_D3D10_1_INCLUDE_DIR AND DirectX_D3D10_1_LIBRARY)
172                 set (DirectX_D3D10_1_FOUND 1)
173         endif ()
174
175
176         find_path (DirectX_D3D11_INCLUDE_DIR d3d11.h
177                 PATHS ${DirectX_INC_SEARCH_PATH}
178                 DOC "The directory where d3d11.h resides")
179
180         find_path (DirectX_D3DX11_INCLUDE_DIR d3dx11.h
181                 PATHS ${DirectX_INC_SEARCH_PATH}
182                 DOC "The directory where d3dx11.h resides")
183
184         find_library (DirectX_D3D11_LIBRARY d3d11
185                 PATHS ${DirectX_LIB_SEARCH_PATH}
186                 DOC "The directory where d3d11 resides")
187
188         find_library (DirectX_D3DX11_LIBRARY d3dx11
189                 PATHS ${DirectX_LIB_SEARCH_PATH}
190                 DOC "The directory where d3dx11 resides")
191
192         if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
193                 set (DirectX_D3D11_FOUND 1)
194                 if (DirectX_D3DX11_INCLUDE_DIR AND DirectX_D3DX11_LIBRARY)
195                         set (DirectX_D3DX11_FOUND 1)
196                 endif ()
197         endif ()
198
199
200         find_path (DirectX_D3D11_1_INCLUDE_DIR d3d11_1.h
201                 PATHS ${DirectX_INC_SEARCH_PATH}
202                 DOC "The directory where d3d11_1.h resides")
203
204         if (DirectX_D3D11_1_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
205                 set (DirectX_D3D11_1_FOUND 1)
206         endif ()
207
208
209         mark_as_advanced (
210                 DirectX_D3D_INCLUDE_DIR
211                 DirectX_D3D_INCLUDE_DIR
212                 DirectX_DDRAW_LIBRARY
213                 DirectX_DDRAW_LIBRARY
214                 DirectX_D3DX_INCLUDE_DIR
215                 DirectX_D3DX_INCLUDE_DIR
216                 DirectX_D3DX_LIBRARY
217                 DirectX_D3DX_LIBRARY
218                 DirectX_D3D8_INCLUDE_DIR
219                 DirectX_D3D8_INCLUDE_DIR
220                 DirectX_D3D8_LIBRARY
221                 DirectX_D3D8_LIBRARY
222                 DirectX_D3DX8_INCLUDE_DIR
223                 DirectX_D3DX8_INCLUDE_DIR
224                 DirectX_D3DX8_LIBRARY
225                 DirectX_D3DX8_LIBRARY
226                 DirectX_D3D9_INCLUDE_DIR
227                 DirectX_D3D9_LIBRARY
228                 DirectX_D3DX9_INCLUDE_DIR
229                 DirectX_D3DX9_LIBRARY
230                 DirectX_D3D10_INCLUDE_DIR
231                 DirectX_D3D10_LIBRARY
232                 DirectX_D3DX10_INCLUDE_DIR
233                 DirectX_D3DX10_LIBRARY
234                 DirectX_D3D10_1_INCLUDE_DIR
235                 DirectX_D3D10_1_LIBRARY
236                 DirectX_D3D11_INCLUDE_DIR
237                 DirectX_D3D11_LIBRARY
238                 DirectX_D3DX11_INCLUDE_DIR
239                 DirectX_D3DX11_LIBRARY
240                 DirectX_D3D11_1_INCLUDE_DIR
241         )
242
243
244 endif ()
245
246
247 mark_as_advanced (
248         DirectX_D3D_FOUND
249         DirectX_D3DX_FOUND
250         DirectX_D3D8_FOUND
251         DirectX_D3DX8_FOUND
252         DirectX_D3D9_FOUND
253         DirectX_D3DX9_FOUND
254         DirectX_D3D10_FOUND
255         DirectX_D3DX10_FOUND
256         DirectX_D3D10_1_FOUND
257         DirectX_D3D11_FOUND
258         DirectX_D3DX11_FOUND
259         DirectX_D3D11_1_FOUND
260 )
261
262
263 # vim:set sw=4 ts=4 noet: