From 13f314f4010d6623377e236a2595e10bacc125f9 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Mon, 7 Dec 2015 16:38:43 -0800 Subject: [PATCH 1/2] allow CMake to build on Linux without X11/OpenGL system headers (use local one) --- examples/CMakeLists.txt | 6 +++++- examples/ExampleBrowser/CMakeLists.txt | 7 +++++-- examples/OpenGLWindow/CMakeLists.txt | 9 +++++---- examples/ThirdPartyLibs/Gwen/CMakeLists.txt | 16 ++++++++++++++-- 4 files changed, 29 insertions(+), 9 deletions(-) diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt index 48806f681..4d26967f1 100644 --- a/examples/CMakeLists.txt +++ b/examples/CMakeLists.txt @@ -1 +1,5 @@ -SUBDIRS( ExampleBrowser HelloWorld BasicDemo ThirdPartyLibs/Gwen OpenGLWindow) +SUBDIRS( HelloWorld BasicDemo ) +IF(BUILD_BULLET3) + SUBDIRS( ExampleBrowser ThirdPartyLibs/Gwen OpenGLWindow) +ENDIF() + diff --git a/examples/ExampleBrowser/CMakeLists.txt b/examples/ExampleBrowser/CMakeLists.txt index d775d9d51..f32cac6ab 100644 --- a/examples/ExampleBrowser/CMakeLists.txt +++ b/examples/ExampleBrowser/CMakeLists.txt @@ -193,7 +193,7 @@ SET(App_ExampleBrowser_SRCS ) LINK_LIBRARIES( - Bullet3Common BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamicsUtils BulletInverseDynamics LinearMath OpenGLWindow gwen ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} + Bullet3Common BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamicsUtils BulletInverseDynamics LinearMath OpenGLWindow gwen ) IF (WIN32) @@ -201,12 +201,15 @@ IF (WIN32) INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/Glew ) + LINK_LIBRARIES( + ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} + ) ADD_DEFINITIONS(-DGLEW_STATIC) ELSE(WIN32) IF(APPLE) find_library(COCOA NAMES Cocoa) MESSAGE(${COCOA}) - link_libraries(${COCOA}) + link_libraries(${COCOA} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}) ELSE(APPLE) ADD_DEFINITIONS("-DGLEW_INIT_OPENGL11_FUNCTIONS=1") ADD_DEFINITIONS("-DGLEW_STATIC") diff --git a/examples/OpenGLWindow/CMakeLists.txt b/examples/OpenGLWindow/CMakeLists.txt index 451ea3dcd..0c2345d6d 100644 --- a/examples/OpenGLWindow/CMakeLists.txt +++ b/examples/OpenGLWindow/CMakeLists.txt @@ -34,11 +34,12 @@ ENDIF(APPLE) IF(NOT WIN32 AND NOT APPLE) INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/Glew + ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/optionalX11 ) - ADD_DEFINITIONS(-DGLEW_STATIC) + ADD_DEFINITIONS(-DGLEW_STATIC) ADD_DEFINITIONS("-DGLEW_INIT_OPENGL11_FUNCTIONS=1") - ADD_DEFINITIONS("-DGLEW_DYNAMIC_LOAD_ALL_GLX_FUNCTIONS=1") - + ADD_DEFINITIONS("-DGLEW_DYNAMIC_LOAD_ALL_GLX_FUNCTIONS=1") + ADD_DEFINITIONS("-DDYNAMIC_LOAD_X11_FUNCTIONS=1") SET(OpenGLWindow_SRCS ${OpenGLWindowLinux_CPP} ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/Glew/glew.c ${OpenGLWindowCommon_CPP} ) ENDIF() @@ -46,7 +47,7 @@ ENDIF() ADD_LIBRARY(OpenGLWindow ${OpenGLWindow_SRCS} ${OpenGLWindow_HDRS}) if (UNIX AND NOT APPLE) - target_link_libraries(OpenGLWindow X11) + target_link_libraries(OpenGLWindow ) elseif (APPLE) target_link_libraries(OpenGLWindow ${COCOA_LIBRARY}) endif () diff --git a/examples/ThirdPartyLibs/Gwen/CMakeLists.txt b/examples/ThirdPartyLibs/Gwen/CMakeLists.txt index 2fad3951c..82fa0ffba 100644 --- a/examples/ThirdPartyLibs/Gwen/CMakeLists.txt +++ b/examples/ThirdPartyLibs/Gwen/CMakeLists.txt @@ -5,12 +5,24 @@ INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/Glew ) +IF(NOT WIN32 AND NOT APPLE) + INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/optionalX11 + ) + ADD_DEFINITIONS(-DGLEW_STATIC) + ADD_DEFINITIONS("-DGLEW_INIT_OPENGL11_FUNCTIONS=1") + ADD_DEFINITIONS("-DGLEW_DYNAMIC_LOAD_ALL_GLX_FUNCTIONS=1") + ADD_DEFINITIONS("-DDYNAMIC_LOAD_X11_FUNCTIONS=1") +ENDIF() + ADD_DEFINITIONS( -DGLEW_STATIC -DGWEN_COMPILE_STATIC -D_HAS_EXCEPTIONS=0 -D_STATIC_CPPLIB ) FILE(GLOB gwen_SRCS "*.cpp" "Controls/*.cpp" "Controls/Dialog/*.cpp" "Controls/Dialogs/*.cpp" "Controls/Layout/*.cpp" "Controls/Property/*.cpp" "Input/*.cpp" "Platforms/*.cpp" "Renderers/*.cpp" "Skins/*.cpp") FILE(GLOB gwen_HDRS "*.h" "Controls/*.h" "Controls/Dialog/*.h" "Controls/Dialogs/*.h" "Controls/Layout/*.h" "Controls/Property/*.h" "Input/*.h" "Platforms/*.h" "Renderers/*.h" "Skins/*.h") ADD_LIBRARY(gwen ${gwen_SRCS} ${gwen_HDRS}) -if (BUILD_SHARED_LIBS) +IF (BUILD_SHARED_LIBS) +IF(WIN32 OR APPLE) target_link_libraries(gwen ${OPENGL_gl_LIBRARY}) -endif() +ENDIF() +ENDIF() From 46ddfa39d7a08eaa7f5df92877f0a1b5a1a59f99 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Tue, 8 Dec 2015 07:54:19 -0800 Subject: [PATCH 2/2] remove unused function in btRigidBody (btSetCrossMatrixMinus) thanks to Stefan for reporting. --- src/BulletDynamics/Dynamics/btRigidBody.cpp | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/BulletDynamics/Dynamics/btRigidBody.cpp b/src/BulletDynamics/Dynamics/btRigidBody.cpp index 8bc3c1ca5..e0e8bc70f 100644 --- a/src/BulletDynamics/Dynamics/btRigidBody.cpp +++ b/src/BulletDynamics/Dynamics/btRigidBody.cpp @@ -303,13 +303,6 @@ btVector3 btRigidBody::computeGyroscopicForceExplicit(btScalar maxGyroscopicForc return gf; } -void btSetCrossMatrixMinus(btMatrix3x3& res, const btVector3& a) -{ - const btScalar a_0 = a[0], a_1 = a[1], a_2 = a[2]; - res.setValue(0, +a_2, -a_1, - -a_2, 0, +a_0, - +a_1, -a_0, 0); -} btVector3 btRigidBody::computeGyroscopicImpulseImplicit_Body(btScalar step) const {