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