X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=retrace%2FCMakeLists.txt;h=6368e1c547f5ded238f9326409085cc7bff522f3;hb=d1623a2829191e6837d89bc2022ee1495f3d5aee;hp=63fbed63fab1b7564b270661f14be07668955c3d;hpb=ab8142ff4ab07a92565676ead5b0ad4607492cbc;p=apitrace diff --git a/retrace/CMakeLists.txt b/retrace/CMakeLists.txt index 63fbed6..6368e1c 100644 --- a/retrace/CMakeLists.txt +++ b/retrace/CMakeLists.txt @@ -43,6 +43,7 @@ target_link_libraries (retrace_common ${PNG_LIBRARIES} ${ZLIB_LIBRARIES} ${SNAPPY_LIBRARIES} + ${GETOPT_LIBRARIES} ) add_library (glretrace_common @@ -129,11 +130,33 @@ if (ENABLE_EGL AND X11_FOUND AND NOT WIN32 AND NOT APPLE) endif () if (WIN32 AND DirectX_D3DX9_INCLUDE_DIR) + if (DirectX_D3D8_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D3D8_INCLUDE_DIR}) + set (HAVE_D3D8 1) + else () + set (HAVE_D3D8 0) + endif () + add_custom_command ( + OUTPUT d3dretrace_d3d8.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d9retrace.py d3d8 ${HAVE_D3D8} > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d8.cpp + DEPENDS + d3d9retrace.py + dllretrace.py + retrace.py + ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py + ${CMAKE_SOURCE_DIR}/specs/d3d8.py + ${CMAKE_SOURCE_DIR}/specs/d3d8types.py + ${CMAKE_SOURCE_DIR}/specs/d3d8caps.py + ${CMAKE_SOURCE_DIR}/specs/winapi.py + ${CMAKE_SOURCE_DIR}/specs/stdapi.py + ) + + include_directories (BEFORE SYSTEM ${DirectX_D3DX9_INCLUDE_DIR}) add_custom_command ( OUTPUT d3dretrace_d3d9.cpp - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3dretrace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d9.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d9retrace.py d3d9 1 > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_d3d9.cpp DEPENDS - d3dretrace.py + d3d9retrace.py dllretrace.py retrace.py ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py @@ -144,18 +167,70 @@ if (WIN32 AND DirectX_D3DX9_INCLUDE_DIR) ${CMAKE_SOURCE_DIR}/specs/stdapi.py ) - include_directories (SYSTEM ${DirectX_D3DX9_INCLUDE_DIR}) + if (DirectX_D3D10_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D3D10_INCLUDE_DIR}) + set (DXGI_MODULES d3d10) + if (DirectX_D3D10_1_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D3D10_1_INCLUDE_DIR}) + set (DXGI_MODULES ${DXGI_MODULES} d3d10_1) + endif () + set (D3DSTATE_SOURCES ${D3DSTATE_SOURCES} + d3d10state.cpp + d3d10state_images.cpp + ) + endif () + + if (DirectX_D3D11_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D3D11_INCLUDE_DIR}) + set (DXGI_MODULES ${DXGI_MODULES} d3d11) + if (DirectX_D3D11_1_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D3D11_1_INCLUDE_DIR}) + set (DXGI_MODULES ${DXGI_MODULES} d3d11_1) + endif () + set (D3DSTATE_SOURCES ${D3DSTATE_SOURCES} + d3d11state.cpp + d3d11state_images.cpp + ) + endif () + + add_custom_command ( + OUTPUT d3dretrace_dxgi.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/dxgiretrace.py ${DXGI_MODULES} > ${CMAKE_CURRENT_BINARY_DIR}/d3dretrace_dxgi.cpp + DEPENDS + dxgiretrace.py + dllretrace.py + retrace.py + ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py + ${CMAKE_SOURCE_DIR}/specs/d3d11_1.py + ${CMAKE_SOURCE_DIR}/specs/d3d11.py + ${CMAKE_SOURCE_DIR}/specs/d3d11sdklayers.py + ${CMAKE_SOURCE_DIR}/specs/d3d10_1.py + ${CMAKE_SOURCE_DIR}/specs/d3d10.py + ${CMAKE_SOURCE_DIR}/specs/d3d10misc.py + ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.py + ${CMAKE_SOURCE_DIR}/specs/d3d10shader.py + ${CMAKE_SOURCE_DIR}/specs/d3d10effect.py + ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py + ${CMAKE_SOURCE_DIR}/specs/dxgi.py + ${CMAKE_SOURCE_DIR}/specs/dxgitype.py + ${CMAKE_SOURCE_DIR}/specs/dxgiformat.py + ${CMAKE_SOURCE_DIR}/specs/winapi.py + ${CMAKE_SOURCE_DIR}/specs/stdapi.py + ) + add_executable (d3dretrace d3dretrace_main.cpp + d3dretrace_d3d8.cpp d3dretrace_d3d9.cpp + d3dretrace_dxgi.cpp d3dretrace_ws.cpp - d3dstate.cpp - d3dstate_images.cpp + d3d9state.cpp + d3d9state_images.cpp + ${D3DSTATE_SOURCES} ) target_link_libraries (d3dretrace retrace_common ) - - install (TARGETS d3dretrace RUNTIME DESTINATION bin) -endif () + install (TARGETS d3dretrace RUNTIME DESTINATION bin) +endif ()