]> git.cworth.org Git - apitrace/commitdiff
Build D3D wrappers with CMake.
authorJosé Fonseca <jfonseca@vmware.com>
Fri, 19 Nov 2010 18:57:51 +0000 (18:57 +0000)
committerJosé Fonseca <jfonseca@vmware.com>
Fri, 19 Nov 2010 18:57:51 +0000 (18:57 +0000)
.gitignore
CMakeLists.txt
cmake/FindDirectX.cmake [new file with mode: 0644]

index 32ddb972723bec06dee86a28a9039005094a30dd..47f025e497e17b0cc039b9b3bfcc40543bfb705a 100644 (file)
 *.pyo
 *.so
 *.zip
-CMakeFiles
 CMakeCache.txt
-cmake_install.cmake
-Makefile
+CMakeFiles
 MD5SUM
+Makefile
+build
+cmake_install.cmake
 config.log
-ddraw.cpp
-d3d8.cpp
-d3d9.cpp
 d3d10.cpp
 d3d10_1.cpp
-dxsdk
+d3d8.cpp
+d3d9.cpp
+ddraw.cpp
 dump
-glx.cpp
+dxsdk
 glretrace
 glretrace.cpp
+glx.cpp
 opengl32.cpp
index 41f896bdcc073bed0f8b27f2156ee3b1af3c4ae5..2642708898092b3f795506891e86dacd807224df 100644 (file)
@@ -2,10 +2,14 @@ cmake_minimum_required (VERSION 2.6)
 
 project (apitrace)
 
+set (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
+
 find_package (PythonInterp REQUIRED)
 find_package (OpenGL REQUIRED)
 find_package (ZLIB)
 
+find_package (DirectX)
+
 find_package (GLUT)
 
 find_library (GLEW_glew_LIBRARY GLEW
@@ -43,11 +47,13 @@ if (MSVC)
        # Enable math constants defines
        add_definitions (-D_USE_MATH_DEFINES)
 
-       # Silence several MSVC pedantic warnings
+       # Adjust warnings
        add_definitions (-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
        add_definitions (-D_SCL_SECURE_NO_DEPRECATE -D_SCL_SECURE_NO_WARNINGS)
-        
        add_definitions (-W4)
+       add_definitions (-wd4244) # conversion from 'type1' to 'type2', possible loss of data
+       add_definitions (-wd4505) # unreferenced local function has been removed
+       add_definitions (-wd4800) # forcing value to bool 'true' or 'false' (performance warning)
 else ()
        add_definitions (-Wall)
 endif ()
@@ -79,6 +85,41 @@ endif (NOT ZLIB_FOUND)
 include_directories (${CMAKE_CURRENT_SOURCE_DIR})
 
 if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+       # d3d8.dll
+       if (D3D8_FOUND)
+               include_directories (${D3D8_INCLUDE_DIR})
+               add_custom_command (
+                       OUTPUT d3d8.cpp
+                       COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d8.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d8.cpp
+                       DEPENDS d3d8.py d3d8types.py d3d8caps.py windows.py base.py
+               )
+               add_library (d3d8 SHARED d3d8.def d3d8.cpp log.cpp os_win32.cpp)
+               set_target_properties (d3d8 PROPERTIES PREFIX "")
+       endif (D3D8_FOUND)
+
+       # d3d9.dll
+       if (D3DX9_FOUND)
+               include_directories (${D3DX9_INCLUDE_DIR})
+               add_custom_command (
+                       OUTPUT d3d9.cpp
+                       COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d9.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d9.cpp
+                       DEPENDS d3d9.py d3d9types.py d3d9caps.py d3dshader.py windows.py base.py
+               )
+               add_library (d3d9 SHARED d3d9.def d3d9.cpp log.cpp os_win32.cpp)
+               set_target_properties (d3d9 PROPERTIES PREFIX "")
+       endif (D3DX9_FOUND)
+
+       # d3d10.dll
+       if (D3D10_FOUND)
+               include_directories (${D3D10_INCLUDE_DIR})
+               add_custom_command (
+                       OUTPUT d3d10.cpp
+                       COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10misc.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10.cpp
+                       DEPENDS d3d10misc.py windows.py base.py
+               )
+               add_library (d3d10 SHARED d3d10.def d3d10.cpp log.cpp os_win32.cpp)
+               set_target_properties (d3d10 PROPERTIES PREFIX "")
+       endif (D3D10_FOUND)
 
        # opengl32.dll
        add_custom_command (
diff --git a/cmake/FindDirectX.cmake b/cmake/FindDirectX.cmake
new file mode 100644 (file)
index 0000000..f306bd1
--- /dev/null
@@ -0,0 +1,108 @@
+# - try to find DirectX include dirs and libraries
+
+if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+       find_path (D3D8_INCLUDE_DIR d3d8.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3d8.h resides")
+
+       find_path (D3DX8_INCLUDE_DIR d3dx8.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3dx8.h resides")
+
+       find_library (D3D8_LIBRARY d3d8.lib
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where d3d8.lib resides")
+
+       find_library (D3DX8_LIBRARY d3dx8.lib
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where d3dx8.lib resides")
+
+       if (D3D8_INCLUDE_DIR AND D3D8_LIBRARY)
+               set (D3D8_FOUND 1)
+               if (D3DX8_INCLUDE_DIR AND D3DX8_LIBRARY)
+                       set (D3DX8_FOUND 1)
+               endif (D3DX8_INCLUDE_DIR AND D3DX8_LIBRARY)
+       endif (D3D8_INCLUDE_DIR AND D3D8_LIBRARY)
+
+
+       find_path (D3D9_INCLUDE_DIR d3d9.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3d9.h resides")
+
+       find_path (D3DX9_INCLUDE_DIR d3dx9.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3dx9.h resides")
+
+       find_library (D3D9_LIBRARY d3d9.lib
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where d3d9.lib resides")
+
+       find_library (D3DX9_LIBRARY d3dx9.lib
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where d3dx9.lib resides")
+
+       if (D3D9_INCLUDE_DIR AND D3D9_LIBRARY)
+               set (D3D9_FOUND 1)
+               if (D3DX9_INCLUDE_DIR AND D3DX9_LIBRARY)
+                       set (D3DX9_FOUND 1)
+               endif (D3DX9_INCLUDE_DIR AND D3DX9_LIBRARY)
+       endif (D3D9_INCLUDE_DIR AND D3D9_LIBRARY)
+
+
+       find_path (D3D10_INCLUDE_DIR d3d10.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3d10.h resides")
+
+       find_path (D3DX10_INCLUDE_DIR d3dx10.h
+               PATHS
+                       "$ENV{DXSDK_DIR}/Include"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
+               DOC "The directory where d3dx10.h resides")
+
+       find_library (D3D10_LIBRARY d3d10.lib
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where d3d10.lib resides")
+
+       find_library (D3DX10_LIBRARY d3dx10.lib
+               PATHS
+                       "$ENV{DXSDK_DIR}/Lib/x86"
+                       "$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
+               DOC "The directory where d3dx10.lib resides")
+
+       if (D3D10_INCLUDE_DIR AND D3D10_LIBRARY)
+               set (D3D10_FOUND 1)
+               if (D3DX10_INCLUDE_DIR AND D3DX10_LIBRARY)
+                       set (D3DX10_FOUND 1)
+               endif (D3DX10_INCLUDE_DIR AND D3DX10_LIBRARY)
+       endif (D3D10_INCLUDE_DIR AND D3D10_LIBRARY)
+
+endif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
+
+mark_as_advanced (
+       D3D8_FOUND
+       D3DX8_FOUND
+       D3D9_FOUND
+       D3DX9_FOUND
+       D3D10_FOUND
+       D3DX10_FOUND
+)