]> git.cworth.org Git - apitrace/blob - retrace/CMakeLists.txt
Cleanup glretrace<->glws integration.
[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 )
39
40 target_link_libraries (retrace_common
41     common
42     ${PNG_LIBRARIES}
43     ${ZLIB_LIBRARIES}
44     ${SNAPPY_LIBRARIES}
45 )
46
47 add_library (glretrace_common
48     glretrace_gl.cpp
49     glretrace_cgl.cpp
50     glretrace_glx.cpp
51     glretrace_wgl.cpp
52     glretrace_egl.cpp
53     glretrace_main.cpp
54     glretrace_ws.cpp
55     glstate.cpp
56     glstate_images.cpp
57     glstate_params.cpp
58     glstate_shaders.cpp
59     glws.cpp
60 )
61
62 add_dependencies (glretrace_common glproc)
63
64
65 if (WIN32 OR APPLE OR X11_FOUND)
66     add_executable (glretrace
67         ${glws_os}
68     )
69
70     add_dependencies (glretrace glproc)
71
72     target_link_libraries (glretrace
73         retrace_common
74         glretrace_common
75         glproc_gl
76     )
77
78     if (WIN32)
79     else ()
80         if (APPLE)
81             target_link_libraries (glretrace
82                 "-framework Cocoa"
83                 "-framework ApplicationServices" # CGS*
84                 #"-framework OpenGL" # CGL*
85             )
86         else ()
87             target_link_libraries (glretrace ${X11_X11_LIB})
88         endif ()
89
90         target_link_libraries (glretrace
91             # gdb doesn't like when pthreads is loaded through dlopen (which happens
92             # when dlopen'ing libGL), so link pthreads to avoid this issue.  See also
93             # http://stackoverflow.com/questions/2702628/gdb-cannot-find-new-threads-generic-error
94             ${CMAKE_THREAD_LIBS_INIT}
95             dl
96         )
97
98         if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
99             target_link_libraries (glretrace rt)
100         endif ()
101
102     endif ()
103
104     install (TARGETS glretrace RUNTIME DESTINATION bin) 
105 endif ()
106
107 if (ENABLE_EGL AND X11_FOUND AND NOT WIN32 AND NOT APPLE)
108     add_executable (eglretrace
109         glws_egl_xlib.cpp
110     )
111
112     add_dependencies (eglretrace glproc)
113
114     target_link_libraries (eglretrace
115         retrace_common
116         glretrace_common
117         glproc_egl
118         ${X11_X11_LIB}
119         ${CMAKE_THREAD_LIBS_INIT}
120         dl
121     )
122
123     if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
124         target_link_libraries (eglretrace rt)
125     endif ()
126
127     install (TARGETS eglretrace RUNTIME DESTINATION bin) 
128 endif ()
129
130 if (WIN32 AND DirectX_D3DX9_INCLUDE_DIR)
131     add_custom_command (
132         OUTPUT d3dretrace_d3d9.cpp
133         COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3dretrace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d9.cpp
134         DEPENDS
135                 d3dretrace.py
136                 dllretrace.py
137                 retrace.py
138                 ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py
139                 ${CMAKE_SOURCE_DIR}/specs/d3d9.py
140                 ${CMAKE_SOURCE_DIR}/specs/d3d9types.py
141                 ${CMAKE_SOURCE_DIR}/specs/d3d9caps.py
142                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
143                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
144     )
145
146     include_directories (SYSTEM ${DirectX_D3DX9_INCLUDE_DIR})
147     add_executable (d3dretrace
148         retrace.cpp
149         retrace_stdc.cpp
150         d3dretrace_main.cpp
151         d3dretrace_d3d9.cpp
152         d3dstate_images.cpp
153     )
154     target_link_libraries (d3dretrace
155         retrace_common
156     )
157     
158     install (TARGETS d3dretrace RUNTIME DESTINATION bin) 
159 endif ()
160