]> git.cworth.org Git - apitrace/blob - wrappers/CMakeLists.txt
Move tracers to wrappers subdirectory.
[apitrace] / wrappers / CMakeLists.txt
1 ##############################################################################
2 # API tracers
3
4
5 include_directories (${CMAKE_CURRENT_SOURCE_DIR})
6
7
8 if (WIN32)
9     if (MINGW)
10         # Silence warnings about @nn suffix mismatch
11         set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--enable-stdcall-fixup")
12     endif ()
13
14     # ddraw.dll
15     if (DirectX_D3D_INCLUDE_DIR)
16         include_directories (SYSTEM ${DirectX_D3D_INCLUDE_DIR})
17         add_custom_command (
18             OUTPUT ddrawtrace.cpp
19             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/ddrawtrace.py > ${CMAKE_CURRENT_BINARY_DIR}/ddrawtrace.cpp
20             DEPENDS
21                 ddrawtrace.py
22                 trace.py
23                 ${CMAKE_SOURCE_DIR}/specs/d3d.py
24                 ${CMAKE_SOURCE_DIR}/specs/d3dtypes.py
25                 ${CMAKE_SOURCE_DIR}/specs/d3dcaps.py
26                 ${CMAKE_SOURCE_DIR}/specs/ddraw.py
27                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
28                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
29         )
30         add_library (ddraw MODULE ddraw.def ddrawtrace.cpp)
31         target_link_libraries (ddraw
32             common
33             ${ZLIB_LIBRARIES}
34             ${SNAPPY_LIBRARIES}
35         )
36         set_target_properties (ddraw
37             PROPERTIES PREFIX ""
38         )
39         install (TARGETS ddraw LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
40     endif ()
41
42     # d3d8.dll
43     if (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3DX9_INCLUDE_DIR)
44         include_directories (SYSTEM ${DirectX_D3D8_INCLUDE_DIR} ${DirectX_D3DX9_INCLUDE_DIR})
45         add_custom_command (
46             OUTPUT d3d8trace.cpp
47             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d8trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d8trace.cpp
48             DEPENDS
49                 d3d8trace.py
50                 trace.py
51                 ${CMAKE_SOURCE_DIR}/specs/d3d8.py
52                 ${CMAKE_SOURCE_DIR}/specs/d3d8types.py
53                 ${CMAKE_SOURCE_DIR}/specs/d3d8caps.py
54                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
55                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
56         )
57         add_library (d3d8 MODULE d3d8.def d3d8trace.cpp d3dshader.cpp)
58         target_link_libraries (d3d8
59             common
60             ${ZLIB_LIBRARIES}
61             ${SNAPPY_LIBRARIES}
62         )
63         set_target_properties (d3d8
64             PROPERTIES PREFIX ""
65         )
66         install (TARGETS d3d8 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
67     endif ()
68
69     # d3d9.dll
70     if (DirectX_D3DX9_INCLUDE_DIR)
71         include_directories (SYSTEM ${DirectX_D3DX9_INCLUDE_DIR})
72         add_custom_command (
73             OUTPUT d3d9trace.cpp
74             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d9trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d9trace.cpp
75             DEPENDS
76                 d3d9trace.py
77                 trace.py
78                 ${CMAKE_SOURCE_DIR}/specs/d3d9.py
79                 ${CMAKE_SOURCE_DIR}/specs/d3d9types.py
80                 ${CMAKE_SOURCE_DIR}/specs/d3d9caps.py
81                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
82                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
83         )
84         add_library (d3d9 MODULE d3d9.def d3d9trace.cpp d3dshader.cpp)
85         target_link_libraries (d3d9
86             common
87             ${ZLIB_LIBRARIES}
88             ${SNAPPY_LIBRARIES}
89         )
90         set_target_properties (d3d9
91             PROPERTIES PREFIX ""
92         )
93         install (TARGETS d3d9 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
94     endif ()
95
96     # d3d10.dll
97     if (DirectX_D3DX10_INCLUDE_DIR)
98         include_directories (SYSTEM ${DirectX_D3DX10_INCLUDE_DIR})
99         add_custom_command (
100             OUTPUT d3d10trace.cpp
101             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10trace.cpp
102             DEPENDS
103                 d3d10trace.py
104                 trace.py
105                 ${CMAKE_SOURCE_DIR}/specs/d3d10misc.py
106                 ${CMAKE_SOURCE_DIR}/specs/d3d10.py
107                 ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.py
108                 ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py
109                 ${CMAKE_SOURCE_DIR}/specs/dxgi.py
110                 ${CMAKE_SOURCE_DIR}/specs/dxgitype.py
111                 ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py
112                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
113                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
114         )
115         add_library (d3d10 MODULE d3d10.def d3d10trace.cpp)
116         target_link_libraries (d3d10
117             common
118             ${ZLIB_LIBRARIES}
119             ${SNAPPY_LIBRARIES}
120         )
121         set_target_properties (d3d10
122             PROPERTIES PREFIX ""
123         )
124         install (TARGETS d3d10 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
125     endif ()
126
127     # d3d10_1.dll
128     if (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3D10_1_INCLUDE_DIR)
129         include_directories (SYSTEM ${DirectX_D3D10_1_INCLUDE_DIR})
130         add_custom_command (
131             OUTPUT d3d10_1trace.cpp
132             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10_1trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10_1trace.cpp
133             DEPENDS
134                 d3d10_1trace.py
135                 trace.py
136                 ${CMAKE_SOURCE_DIR}/specs/d3d10_1.py
137                 ${CMAKE_SOURCE_DIR}/specs/d3d10.py
138                 ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.py
139                 ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py
140                 ${CMAKE_SOURCE_DIR}/specs/dxgi.py
141                 ${CMAKE_SOURCE_DIR}/specs/dxgitype.py
142                 ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py
143                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
144                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
145         )
146         add_library (d3d10_1 MODULE d3d10_1.def d3d10_1trace.cpp)
147         target_link_libraries (d3d10_1
148             common
149             ${ZLIB_LIBRARIES}
150             ${SNAPPY_LIBRARIES}
151         )
152         set_target_properties (d3d10_1
153             PROPERTIES PREFIX ""
154         )
155         install (TARGETS d3d10_1 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
156     endif ()
157
158     # d3d11.dll
159     if (DirectX_D3DX11_INCLUDE_DIR)
160         include_directories (SYSTEM ${DirectX_D3DX11_INCLUDE_DIR})
161         add_custom_command (
162             OUTPUT d3d11trace.cpp
163             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d11trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d11trace.cpp
164             DEPENDS
165                 d3d11trace.py
166                 trace.py
167                 ${CMAKE_SOURCE_DIR}/specs/d3d11.py
168                 ${CMAKE_SOURCE_DIR}/specs/d3d11sdklayers.py
169                 ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py
170                 ${CMAKE_SOURCE_DIR}/specs/dxgi.py
171                 ${CMAKE_SOURCE_DIR}/specs/dxgitype.py
172                 ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py
173                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
174                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
175         )
176         add_library (d3d11 MODULE d3d11.def d3d11trace.cpp)
177         target_link_libraries (d3d11
178             common
179             ${ZLIB_LIBRARIES}
180             ${SNAPPY_LIBRARIES}
181         )
182         set_target_properties (d3d11
183             PROPERTIES PREFIX ""
184         )
185         install (TARGETS d3d11 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
186     endif ()
187
188     # opengl32.dll
189     add_custom_command (
190         OUTPUT wgltrace.cpp
191         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/wgltrace.py > ${CMAKE_CURRENT_BINARY_DIR}/wgltrace.cpp
192         DEPENDS
193                 wgltrace.py
194                 gltrace.py
195                 trace.py
196                 ${CMAKE_SOURCE_DIR}/specs/wglapi.py
197                 ${CMAKE_SOURCE_DIR}/specs/wglenum.py
198                 ${CMAKE_SOURCE_DIR}/specs/glapi.py
199                 ${CMAKE_SOURCE_DIR}/specs/glparams.py
200                 ${CMAKE_SOURCE_DIR}/specs/gltypes.py
201                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
202                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
203     )
204     add_library (wgltrace MODULE opengl32.def
205         wgltrace.cpp
206         glcaps.cpp
207         ${CMAKE_SOURCE_DIR}/glproc_gl.cpp
208     )
209     add_dependencies (wgltrace glproc)
210     target_link_libraries (wgltrace
211         common
212         ${ZLIB_LIBRARIES}
213         ${SNAPPY_LIBRARIES}
214     )
215     set_target_properties (wgltrace PROPERTIES
216         PREFIX ""
217         OUTPUT_NAME opengl32
218     )
219     install (TARGETS wgltrace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
220
221 elseif (APPLE)
222     # OpenGL framework
223     add_custom_command (
224         OUTPUT cgltrace.cpp
225         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cgltrace.py > ${CMAKE_CURRENT_BINARY_DIR}/cgltrace.cpp
226         DEPENDS
227             cgltrace.py
228             gltrace.py
229             trace.py
230             ${CMAKE_SOURCE_DIR}/specs/cglapi.py
231             ${CMAKE_SOURCE_DIR}/specs/glapi.py
232             ${CMAKE_SOURCE_DIR}/specs/glparams.py
233             ${CMAKE_SOURCE_DIR}/specs/gltypes.py
234             ${CMAKE_SOURCE_DIR}/specs/stdapi.py
235     )
236
237     add_library (cgltrace SHARED
238         cgltrace.cpp
239         glcaps.cpp
240         ${CMAKE_SOURCE_DIR}/glproc_gl.cpp
241     )
242
243     add_dependencies (cgltrace glproc)
244
245     set_target_properties (cgltrace PROPERTIES
246         # OpenGL framework name
247         PREFIX "" OUTPUT_NAME "OpenGL" SUFFIX ""
248         # Specificy the version and reexport GLU symbols
249         LINK_FLAGS "-compatibility_version 1 -current_version 1.0.0 -Wl,-reexport_library,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGLU.dylib"
250     )
251
252     target_link_libraries (cgltrace
253         common
254         ${ZLIB_LIBRARIES}
255         ${SNAPPY_LIBRARIES}
256         ${CMAKE_THREAD_LIBS_INIT}
257         dl
258     )
259
260     install (TARGETS cgltrace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
261 elseif (X11_FOUND)
262     # libGL.so
263     add_custom_command (
264         OUTPUT glxtrace.cpp
265         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glxtrace.py > ${CMAKE_CURRENT_BINARY_DIR}/glxtrace.cpp
266         DEPENDS
267             glxtrace.py
268             gltrace.py
269             trace.py
270             ${CMAKE_SOURCE_DIR}/specs/glxapi.py
271             ${CMAKE_SOURCE_DIR}/specs/glapi.py
272             ${CMAKE_SOURCE_DIR}/specs/glparams.py
273             ${CMAKE_SOURCE_DIR}/specs/gltypes.py
274             ${CMAKE_SOURCE_DIR}/specs/stdapi.py
275     )
276
277     add_library (glxtrace SHARED
278         glxtrace.cpp
279         glcaps.cpp
280         ${CMAKE_SOURCE_DIR}/glproc_gl.cpp
281     )
282
283     add_dependencies (glxtrace glproc)
284
285     set_target_properties (glxtrace PROPERTIES
286         # avoid the default "lib" prefix
287         PREFIX ""
288         # Prevent symbol relocations internal to our wrapper library to be
289         # overwritten by the application.
290         LINK_FLAGS "-Wl,-Bsymbolic -Wl,-Bsymbolic-functions"
291     )
292
293     target_link_libraries (glxtrace
294         common
295         ${ZLIB_LIBRARIES}
296         ${SNAPPY_LIBRARIES}
297         ${X11_X11_LIB}
298         ${CMAKE_THREAD_LIBS_INIT}
299         dl
300     )
301
302     install (TARGETS glxtrace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
303 endif ()
304
305
306 if (ENABLE_EGL AND NOT WIN32 AND NOT APPLE)
307     # libEGL.so/libGL.so
308     add_custom_command (
309         OUTPUT egltrace.cpp
310         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/egltrace.py > ${CMAKE_CURRENT_BINARY_DIR}/egltrace.cpp
311         DEPENDS
312             egltrace.py
313             gltrace.py
314             trace.py
315             ${CMAKE_SOURCE_DIR}/specs/eglapi.py
316             ${CMAKE_SOURCE_DIR}/specs/glesapi.py
317             ${CMAKE_SOURCE_DIR}/specs/glapi.py
318             ${CMAKE_SOURCE_DIR}/specs/glparams.py
319             ${CMAKE_SOURCE_DIR}/specs/gltypes.py
320             ${CMAKE_SOURCE_DIR}/specs/stdapi.py
321     )
322
323     add_library (egltrace SHARED
324         egltrace.cpp
325         glcaps.cpp
326         ${CMAKE_SOURCE_DIR}/glproc_egl.cpp
327     )
328
329     add_dependencies (egltrace glproc)
330
331     set_target_properties (egltrace PROPERTIES
332         # avoid the default "lib" prefix
333         PREFIX ""
334         # Prevent symbol relocations internal to our wrapper library to be
335         # overwritten by the application.
336         LINK_FLAGS "-Wl,-Bsymbolic -Wl,-Bsymbolic-functions"
337     )
338
339     target_link_libraries (egltrace
340         common
341         ${ZLIB_LIBRARIES}
342         ${SNAPPY_LIBRARIES}
343         ${CMAKE_THREAD_LIBS_INIT}
344         dl
345     )
346
347     install (TARGETS egltrace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
348 endif ()