]> git.cworth.org Git - apitrace/blob - retrace/CMakeLists.txt
d3dretrace: Eliminate dependencies from d3d9state.
[apitrace] / retrace / CMakeLists.txt
1 ##############################################################################
2 # API retracers
3
4 include_directories (
5     ${CMAKE_CURRENT_SOURCE_DIR}
6     ${CMAKE_SOURCE_DIR}/helpers
7     ${CMAKE_BINARY_DIR}/dispatch
8     ${CMAKE_SOURCE_DIR}/dispatch
9 )
10
11 add_definitions (-DRETRACE)
12
13 add_custom_command (
14     OUTPUT glretrace_gl.cpp
15     COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glretrace.py > ${CMAKE_CURRENT_BINARY_DIR}/glretrace_gl.cpp
16     DEPENDS
17                 glretrace.py
18                 retrace.py
19                 ${CMAKE_SOURCE_DIR}/specs/glapi.py
20                 ${CMAKE_SOURCE_DIR}/specs/gltypes.py
21                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
22 )
23
24 add_custom_command (
25     OUTPUT glstate_params.cpp
26     COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/glstate_params.py > ${CMAKE_CURRENT_BINARY_DIR}/glstate_params.cpp
27     DEPENDS
28                 glstate_params.py
29                 ${CMAKE_SOURCE_DIR}/specs/glparams.py
30                 ${CMAKE_SOURCE_DIR}/specs/gltypes.py
31                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
32 )
33
34 add_library (retrace_common
35     retrace.cpp
36     retrace_main.cpp
37     retrace_stdc.cpp
38     retrace_swizzle.cpp
39 )
40
41 target_link_libraries (retrace_common
42     common
43     ${PNG_LIBRARIES}
44     ${ZLIB_LIBRARIES}
45     ${SNAPPY_LIBRARIES}
46 )
47
48 add_library (glretrace_common
49     glretrace_gl.cpp
50     glretrace_cgl.cpp
51     glretrace_glx.cpp
52     glretrace_wgl.cpp
53     glretrace_egl.cpp
54     glretrace_main.cpp
55     glretrace_ws.cpp
56     glstate.cpp
57     glstate_images.cpp
58     glstate_params.cpp
59     glstate_shaders.cpp
60     glws.cpp
61 )
62
63 add_dependencies (glretrace_common glproc)
64
65
66 if (WIN32 OR APPLE OR X11_FOUND)
67     add_executable (glretrace
68         ${glws_os}
69     )
70
71     add_dependencies (glretrace glproc)
72
73     target_link_libraries (glretrace
74         retrace_common
75         glretrace_common
76         glproc_gl
77     )
78
79     if (WIN32)
80     else ()
81         if (APPLE)
82             target_link_libraries (glretrace
83                 "-framework Cocoa"
84                 "-framework ApplicationServices" # CGS*
85                 #"-framework OpenGL" # CGL*
86             )
87         else ()
88             target_link_libraries (glretrace ${X11_X11_LIB})
89         endif ()
90
91         target_link_libraries (glretrace
92             # gdb doesn't like when pthreads is loaded through dlopen (which happens
93             # when dlopen'ing libGL), so link pthreads to avoid this issue.  See also
94             # http://stackoverflow.com/questions/2702628/gdb-cannot-find-new-threads-generic-error
95             ${CMAKE_THREAD_LIBS_INIT}
96             dl
97         )
98
99         if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
100             target_link_libraries (glretrace rt)
101         endif ()
102
103     endif ()
104
105     install (TARGETS glretrace RUNTIME DESTINATION bin) 
106 endif ()
107
108 if (ENABLE_EGL AND X11_FOUND AND NOT WIN32 AND NOT APPLE)
109     add_executable (eglretrace
110         glws_egl_xlib.cpp
111     )
112
113     add_dependencies (eglretrace glproc)
114
115     target_link_libraries (eglretrace
116         retrace_common
117         glretrace_common
118         glproc_egl
119         ${X11_X11_LIB}
120         ${CMAKE_THREAD_LIBS_INIT}
121         dl
122     )
123
124     if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
125         target_link_libraries (eglretrace rt)
126     endif ()
127
128     install (TARGETS eglretrace RUNTIME DESTINATION bin) 
129 endif ()
130
131 if (WIN32 AND DirectX_D3DX9_INCLUDE_DIR)
132     add_custom_command (
133         OUTPUT d3dretrace_d3d9.cpp
134         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d9retrace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d9.cpp
135         DEPENDS
136                 d3d9retrace.py
137                 dllretrace.py
138                 retrace.py
139                 ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py
140                 ${CMAKE_SOURCE_DIR}/specs/d3d9.py
141                 ${CMAKE_SOURCE_DIR}/specs/d3d9types.py
142                 ${CMAKE_SOURCE_DIR}/specs/d3d9caps.py
143                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
144                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
145     )
146
147     include_directories (SYSTEM ${DirectX_D3DX9_INCLUDE_DIR})
148     add_executable (d3dretrace
149         d3dretrace_main.cpp
150         d3dretrace_d3d9.cpp
151         d3dretrace_ws.cpp
152         d3d9state.cpp
153         d3d9state_images.cpp
154     )
155     target_link_libraries (d3dretrace
156         retrace_common
157     )
158
159     install (TARGETS d3dretrace RUNTIME DESTINATION bin)
160 endif ()
161
162 if (WIN32 AND DirectX_D3D10_INCLUDE_DIR)
163     add_custom_command (
164         OUTPUT d3dretrace_d3d10.cpp
165         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10retrace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d10.cpp
166         DEPENDS
167                 d3d10retrace.py
168                 d3dcommonretrace.py
169                 dllretrace.py
170                 retrace.py
171                 ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py
172                 ${CMAKE_SOURCE_DIR}/specs/d3d10.py
173                 ${CMAKE_SOURCE_DIR}/specs/d3d10misc.py
174                 ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.py
175                 ${CMAKE_SOURCE_DIR}/specs/d3d10shader.py
176                 ${CMAKE_SOURCE_DIR}/specs/d3d10effect.py
177                 ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py
178                 ${CMAKE_SOURCE_DIR}/specs/dxgi.py
179                 ${CMAKE_SOURCE_DIR}/specs/dxgitype.py
180                 ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py
181                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
182                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
183     )
184
185     include_directories (SYSTEM ${DirectX_D3D10_INCLUDE_DIR})
186     add_executable (d3d10retrace
187         d3dretrace_main.cpp
188         d3dretrace_d3d10.cpp
189         d3dretrace_ws.cpp
190     )
191     target_link_libraries (d3d10retrace
192         retrace_common
193     )
194
195     install (TARGETS d3d10retrace RUNTIME DESTINATION bin)
196 endif ()
197
198 if (WIN32 AND DirectX_D3D10_1_INCLUDE_DIR)
199     add_custom_command (
200         OUTPUT d3dretrace_d3d10_1.cpp
201         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10_1retrace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d10_1.cpp
202         DEPENDS
203                 d3d10retrace.py
204                 d3dcommonretrace.py
205                 dllretrace.py
206                 retrace.py
207                 ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py
208                 ${CMAKE_SOURCE_DIR}/specs/d3d10_1.py
209                 ${CMAKE_SOURCE_DIR}/specs/d3d10.py
210                 ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.py
211                 ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py
212                 ${CMAKE_SOURCE_DIR}/specs/dxgi.py
213                 ${CMAKE_SOURCE_DIR}/specs/dxgitype.py
214                 ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py
215                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
216                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
217     )
218
219     include_directories (SYSTEM ${DirectX_D3D10_1_INCLUDE_DIR})
220     add_executable (d3d10_1retrace
221         d3dretrace_main.cpp
222         d3dretrace_d3d10_1.cpp
223         d3dretrace_ws.cpp
224     )
225     target_link_libraries (d3d10_1retrace
226         retrace_common
227     )
228
229     install (TARGETS d3d10_1retrace RUNTIME DESTINATION bin)
230 endif ()
231
232 if (WIN32 AND DirectX_D3D11_INCLUDE_DIR)
233     add_custom_command (
234         OUTPUT d3dretrace_d3d11.cpp
235         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d11retrace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d11.cpp
236         DEPENDS
237                 d3d11retrace.py
238                 d3dcommonretrace.py
239                 dllretrace.py
240                 retrace.py
241                 ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py
242                 ${CMAKE_SOURCE_DIR}/specs/d3d11_1.py
243                 ${CMAKE_SOURCE_DIR}/specs/d3d11.py
244                 ${CMAKE_SOURCE_DIR}/specs/d3d11sdklayers.py
245                 ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py
246                 ${CMAKE_SOURCE_DIR}/specs/dxgi.py
247                 ${CMAKE_SOURCE_DIR}/specs/dxgitype.py
248                 ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py
249                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
250                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
251     )
252
253     include_directories (SYSTEM ${DirectX_D3D11_INCLUDE_DIR})
254     add_executable (d3d11retrace
255         d3dretrace_main.cpp
256         d3dretrace_d3d11.cpp
257         d3dretrace_ws.cpp
258     )
259     target_link_libraries (d3d11retrace
260         retrace_common
261     )
262
263     install (TARGETS d3d11retrace RUNTIME DESTINATION bin)
264 endif ()