]> git.cworth.org Git - apitrace/blobdiff - wrappers/CMakeLists.txt
Merge branch 'modules'
[apitrace] / wrappers / CMakeLists.txt
index 01cbdea4ac42af18c4d86d8cf011414b019bcb55..2cdf458e3a5da2e033738bdf67c857fa869bd55e 100644 (file)
@@ -18,9 +18,12 @@ 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 ()
 
@@ -143,7 +146,11 @@ if (WIN32)
                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
         )
-        add_library (d3d10trace MODULE d3d10.def d3d10trace.cpp d3d10shader.cpp)
+        add_library (d3d10trace MODULE
+            d3d10.def
+            d3d10trace.cpp
+            d3dcommonshader.cpp
+        )
         target_link_libraries (d3d10trace
             common_trace
             common
@@ -179,7 +186,11 @@ if (WIN32)
                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
         )
-        add_library (d3d10_1trace MODULE d3d10_1.def d3d10_1trace.cpp d3d10shader.cpp)
+        add_library (d3d10_1trace MODULE
+            d3d10_1.def
+            d3d10_1trace.cpp
+            d3dcommonshader.cpp
+        )
         target_link_libraries (d3d10_1trace
             common_trace
             common
@@ -207,6 +218,7 @@ if (WIN32)
             COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d11trace.py ${HAVE_D3D11_1} > ${CMAKE_CURRENT_BINARY_DIR}/d3d11trace.cpp
             DEPENDS
                 d3d11trace.py
+                d3dcommontrace.py
                 dlltrace.py
                 trace.py
                 ${CMAKE_SOURCE_DIR}/specs/d3d11_1.py
@@ -219,7 +231,11 @@ if (WIN32)
                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
         )
-        add_library (d3d11trace MODULE d3d11.def d3d11trace.cpp)
+        add_library (d3d11trace MODULE
+            d3d11.def
+            d3d11trace.cpp
+            d3dcommonshader.cpp
+        )
         target_link_libraries (d3d11trace
             common_trace
             common
@@ -255,49 +271,31 @@ if (WIN32)
                 ${CMAKE_SOURCE_DIR}/specs/winapi.py
                 ${CMAKE_SOURCE_DIR}/specs/stdapi.py
         )
-        add_library (d2d1 MODULE d2d1.def d2d1trace.cpp)
-        target_link_libraries (d2d1
+        add_library (d2d1trace SHARED d2d1.def d2d1trace.cpp)
+        target_link_libraries (d2d1trace
             common_trace
             common
             ${ZLIB_LIBRARIES}
             ${SNAPPY_LIBRARIES}
         )
-        set_target_properties (d2d1
+        set_target_properties (d2d1trace
             PROPERTIES PREFIX ""
             OUTPUT_NAME d2d1
         )
-        install (TARGETS d2d1 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
-
-        add_custom_command (
-            OUTPUT dwritetrace.cpp
-            COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/dwritetrace.py > ${CMAKE_CURRENT_BINARY_DIR}/dwritetrace.cpp
-            DEPENDS
-                dwritetrace.py
-                trace.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 (dwrite MODULE dwrite.def dwritetrace.cpp)
-        target_link_libraries (dwrite
-            common_trace
-            common
-            ${ZLIB_LIBRARIES}
-            ${SNAPPY_LIBRARIES}
+        # 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
         )
-        set_target_properties (dwrite
+
+        # 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 dwrite LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
+        install (TARGETS dwritetrace LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR})
     endif (DirectX_D2D1_INCLUDE_DIR)
 
     # opengl32.dll