X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=wrappers%2FCMakeLists.txt;h=6b76e589b04c4103848d2841b3e287878258e4c8;hb=cd3f69ef1a354e16f2bffdf29206f41f7dff95b7;hp=a2bcfff14907adcb3ae8d52aef0a0df368f83634;hpb=b14eab55d848d5c0055c4c512c36248e9578ce24;p=apitrace diff --git a/wrappers/CMakeLists.txt b/wrappers/CMakeLists.txt index a2bcfff..6b76e58 100644 --- a/wrappers/CMakeLists.txt +++ b/wrappers/CMakeLists.txt @@ -18,15 +18,18 @@ set_target_properties (common_trace PROPERTIES COMPILE_FLAGS "${CMAKE_SHARED_LIBRARY_CXX_FLAGS}" ) +set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) + if (WIN32) if (MINGW) # Silence warnings about @nn suffix mismatch + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--enable-stdcall-fixup") set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--enable-stdcall-fixup") endif () # ddraw.dll if (DirectX_D3D_INCLUDE_DIR) - include_directories (SYSTEM ${DirectX_D3D_INCLUDE_DIR}) + include_directories (BEFORE SYSTEM ${DirectX_D3D_INCLUDE_DIR}) add_custom_command ( OUTPUT ddrawtrace.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/ddrawtrace.py > ${CMAKE_CURRENT_BINARY_DIR}/ddrawtrace.cpp @@ -57,8 +60,8 @@ if (WIN32) endif () # d3d8.dll - if (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3DX9_INCLUDE_DIR) - include_directories (SYSTEM ${DirectX_D3D8_INCLUDE_DIR} ${DirectX_D3DX9_INCLUDE_DIR}) + if (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3D9_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D3D9_INCLUDE_DIR} ${DirectX_D3D8_INCLUDE_DIR}) add_custom_command ( OUTPUT d3d8trace.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d8trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d8trace.cpp @@ -73,8 +76,13 @@ if (WIN32) ${CMAKE_SOURCE_DIR}/specs/winapi.py ${CMAKE_SOURCE_DIR}/specs/stdapi.py ) - add_library (d3d8trace MODULE d3d8.def d3d8trace.cpp d3d9shader.cpp) + add_library (d3d8trace MODULE + d3d8.def + d3d8trace.cpp + d3d9shader.cpp + ) target_link_libraries (d3d8trace + d3dhelpers common_trace common ${ZLIB_LIBRARIES} @@ -88,8 +96,8 @@ if (WIN32) endif () # d3d9.dll - if (DirectX_D3DX9_INCLUDE_DIR) - include_directories (SYSTEM ${DirectX_D3DX9_INCLUDE_DIR}) + if (DirectX_D3D9_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D3D9_INCLUDE_DIR}) add_custom_command ( OUTPUT d3d9trace.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d9trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d9trace.cpp @@ -101,11 +109,17 @@ if (WIN32) ${CMAKE_SOURCE_DIR}/specs/d3d9.py ${CMAKE_SOURCE_DIR}/specs/d3d9types.py ${CMAKE_SOURCE_DIR}/specs/d3d9caps.py + ${CMAKE_SOURCE_DIR}/specs/d3d9dxva2.py ${CMAKE_SOURCE_DIR}/specs/winapi.py ${CMAKE_SOURCE_DIR}/specs/stdapi.py ) - add_library (d3d9trace MODULE d3d9.def d3d9trace.cpp d3d9shader.cpp) + add_library (d3d9trace MODULE + d3d9.def + d3d9trace.cpp + d3d9shader.cpp + ) target_link_libraries (d3d9trace + d3dhelpers common_trace common ${ZLIB_LIBRARIES} @@ -118,117 +132,178 @@ if (WIN32) install (TARGETS d3d9trace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) endif () - # d3d10.dll + # dxgi.dll, d3d10.dll, d3d10_1.dll, d3d11.dll + set (DXGI_MODULES) if (DirectX_D3D10_INCLUDE_DIR) - include_directories (SYSTEM ${DirectX_D3D10_INCLUDE_DIR}) + set (DXGITRACE_DEF ${CMAKE_CURRENT_BINARY_DIR}/dxgitrace.def) + file (WRITE ${DXGITRACE_DEF} "EXPORTS\n") + file (APPEND ${DXGITRACE_DEF} "CreateDXGIFactory\n") + file (APPEND ${DXGITRACE_DEF} "CreateDXGIFactory1\n") + file (APPEND ${DXGITRACE_DEF} "D3D10CreateDevice\n") + file (APPEND ${DXGITRACE_DEF} "D3D10CreateDeviceAndSwapChain\n") + + 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) + file (APPEND ${DXGITRACE_DEF} "D3D10CreateDevice1\n") + file (APPEND ${DXGITRACE_DEF} "D3D10CreateDeviceAndSwapChain1\n") + 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 () + file (APPEND ${DXGITRACE_DEF} "D3D11CreateDevice\n") + file (APPEND ${DXGITRACE_DEF} "D3D11CreateDeviceAndSwapChain\n") + endif () + add_custom_command ( - OUTPUT d3d10trace.cpp - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10trace.cpp + OUTPUT dxgitrace.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/dxgitrace.py ${DXGI_MODULES} > ${CMAKE_CURRENT_BINARY_DIR}/dxgitrace.cpp DEPENDS - d3d10trace.py + dxgitrace.py dlltrace.py trace.py ${CMAKE_SOURCE_DIR}/dispatch/dispatch.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/dxgi1_2.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_library (d3d10trace MODULE d3d10.def d3d10trace.cpp d3d10shader.cpp) - target_link_libraries (d3d10trace + add_library (dxgitrace SHARED + ${DXGITRACE_DEF} + dxgitrace.cpp + d3dcommonshader.cpp + ) + target_link_libraries (dxgitrace + d3dhelpers common_trace common ${ZLIB_LIBRARIES} ${SNAPPY_LIBRARIES} ) - set_target_properties (d3d10trace PROPERTIES - PREFIX "" - OUTPUT_NAME d3d10 + set_target_properties (dxgitrace + PROPERTIES PREFIX "" + ) + install (TARGETS dxgitrace + RUNTIME DESTINATION ${WRAPPER_INSTALL_DIR} COMPONENT RUNTIME + LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR} COMPONENT RUNTIME ) - install (TARGETS d3d10trace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif () - # d3d10_1.dll - if (DirectX_D3D10_1_INCLUDE_DIR) - include_directories (SYSTEM ${DirectX_D3D10_1_INCLUDE_DIR}) - add_custom_command ( - OUTPUT d3d10_1trace.cpp - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10_1trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10_1trace.cpp - DEPENDS - d3d10_1trace.py - dlltrace.py - trace.py - ${CMAKE_SOURCE_DIR}/dispatch/dispatch.py - ${CMAKE_SOURCE_DIR}/specs/d3d10_1.py - ${CMAKE_SOURCE_DIR}/specs/d3d10.py - ${CMAKE_SOURCE_DIR}/specs/d3d10sdklayers.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 + # dxgi.dll (empty stub for dxgitrace.dll) + add_library (dxgistubs MODULE + dxgi.def + dxgistubs.cpp + d3dkmtstubs.cpp ) - add_library (d3d10_1trace MODULE d3d10_1.def d3d10_1trace.cpp) - target_link_libraries (d3d10_1trace - common_trace - common - ${ZLIB_LIBRARIES} - ${SNAPPY_LIBRARIES} + target_link_libraries (dxgistubs dxgitrace) + set_target_properties (dxgistubs + PROPERTIES PREFIX "" + OUTPUT_NAME dxgi ) - set_target_properties (d3d10_1trace + install (TARGETS dxgistubs LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) + + # d3d10.dll (empty stub for dxgitrace.dll) + add_library (d3d10stubs MODULE + d3d10.def + d3d10stubs.cpp + ) + target_link_libraries (d3d10stubs dxgitrace) + set_target_properties (d3d10stubs PROPERTIES PREFIX "" - OUTPUT_NAME d3d10_1 + OUTPUT_NAME d3d10 ) - install (TARGETS d3d10_1trace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif () + install (TARGETS d3d10stubs LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - # d3d11.dll - if (DirectX_D3D11_INCLUDE_DIR) - if (DirectX_D3D11_1_INCLUDE_DIR) - set (HAVE_D3D11_1 1) - else () - set (HAVE_D3D11_1 0) + # d3d10_1.dll (empty stub for dxgitrace.dll) + if (DirectX_D3D10_1_INCLUDE_DIR) + add_library (d3d10_1stubs MODULE + d3d10_1.def + d3d10stubs.cpp + ) + target_link_libraries (d3d10_1stubs dxgitrace) + set_target_properties (d3d10_1stubs + PROPERTIES PREFIX "" + OUTPUT_NAME d3d10_1 + ) + install (TARGETS d3d10_1stubs LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) + endif () + + # d3d11.dll (empty stub for dxgitrace.dll) + if (DirectX_D3D11_INCLUDE_DIR) + add_library (d3d11stubs MODULE + d3d11.def + d3d11stubs.cpp + d3dkmtstubs.cpp + ) + target_link_libraries (d3d11stubs dxgitrace) + set_target_properties (d3d11stubs + PROPERTIES PREFIX "" + OUTPUT_NAME d3d11 + ) + install (TARGETS d3d11stubs LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) endif () + endif () + + # d2d1.dll, dwrite.dll + if (DirectX_D2D1_INCLUDE_DIR) + include_directories (BEFORE SYSTEM ${DirectX_D2D1_INCLUDE_DIR}) - include_directories (SYSTEM ${DirectX_D3D11_INCLUDE_DIR}) add_custom_command ( - OUTPUT d3d11trace.cpp - COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d11trace.py ${HAVE_D3D11_1} > ${CMAKE_CURRENT_BINARY_DIR}/d3d11trace.cpp + OUTPUT d2d1trace.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d2d1trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d2d1trace.cpp DEPENDS - d3d11trace.py - dlltrace.py + d2d1trace.py trace.py - ${CMAKE_SOURCE_DIR}/specs/d3d11_1.py - ${CMAKE_SOURCE_DIR}/specs/d3d11.py - ${CMAKE_SOURCE_DIR}/specs/d3d11sdklayers.py - ${CMAKE_SOURCE_DIR}/specs/d3dcommon.py + ${CMAKE_SOURCE_DIR}/specs/d2d1.py + ${CMAKE_SOURCE_DIR}/specs/d2d1.py + ${CMAKE_SOURCE_DIR}/specs/d2dbasetypes.py + ${CMAKE_SOURCE_DIR}/specs/d2derr.py + ${CMAKE_SOURCE_DIR}/specs/dwrite.py + ${CMAKE_SOURCE_DIR}/specs/dcommon.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_library (d3d11trace MODULE d3d11.def d3d11trace.cpp) - target_link_libraries (d3d11trace + add_library (d2d1trace SHARED d2d1.def d2d1trace.cpp) + target_link_libraries (d2d1trace common_trace common ${ZLIB_LIBRARIES} ${SNAPPY_LIBRARIES} ) - set_target_properties (d3d11trace + set_target_properties (d2d1trace PROPERTIES PREFIX "" - OUTPUT_NAME d3d11 + OUTPUT_NAME d2d1 ) - install (TARGETS d3d11trace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif () + # http://www.cmake.org/pipermail/cmake/2009-March/028221.html + install (TARGETS d2d1trace + RUNTIME DESTINATION ${WRAPPER_INSTALL_DIR} COMPONENT RUNTIME + LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR} COMPONENT RUNTIME + ) + + # dwrite.dll is just an empty stub for d2d1.dll + add_library (dwritetrace MODULE dwrite.def dwritetrace.cpp) + target_link_libraries (dwritetrace d2d1trace) + set_target_properties (dwritetrace + PROPERTIES PREFIX "" + OUTPUT_NAME dwrite + ) + install (TARGETS dwritetrace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) + endif (DirectX_D2D1_INCLUDE_DIR) # opengl32.dll add_custom_command ( @@ -346,7 +421,6 @@ elseif (X11_FOUND) common ${ZLIB_LIBRARIES} ${SNAPPY_LIBRARIES} - ${X11_X11_LIB} ${CMAKE_THREAD_LIBS_INIT} dl )