From 35c916f487092310e7be8dd3ea88986138ec7099 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Mon, 24 Mar 2014 13:18:24 -0700 Subject: [PATCH 1/2] add CMake support for AppAllBullet2Demos demo. See also https://github.com/bulletphysics/bullet3/issues/43 --- Demos3/AllBullet2Demos/BulletDemoEntries.h | 2 +- Demos3/AllBullet2Demos/CMakeLists.txt | 64 ++++++++++++++++++++++ Demos3/CMakeLists.txt | 2 +- btgui/Gwen/CMakeLists.txt | 4 +- src/BulletDynamics/CMakeLists.txt | 3 + 5 files changed, 71 insertions(+), 4 deletions(-) create mode 100644 Demos3/AllBullet2Demos/CMakeLists.txt diff --git a/Demos3/AllBullet2Demos/BulletDemoEntries.h b/Demos3/AllBullet2Demos/BulletDemoEntries.h index 2be144815..c603a2785 100644 --- a/Demos3/AllBullet2Demos/BulletDemoEntries.h +++ b/Demos3/AllBullet2Demos/BulletDemoEntries.h @@ -40,7 +40,7 @@ static BulletDemoEntry allDemos[]= // {"MultiBody2",FeatherstoneDemo2::MyCreateFunc}, {"MultiDofDemo",MultiDofDemo::MyCreateFunc}, - {"LuaDemo",LuaDemo::MyCreateFunc} +// {"LuaDemo",LuaDemo::MyCreateFunc} }; diff --git a/Demos3/AllBullet2Demos/CMakeLists.txt b/Demos3/AllBullet2Demos/CMakeLists.txt new file mode 100644 index 000000000..29cfb6d24 --- /dev/null +++ b/Demos3/AllBullet2Demos/CMakeLists.txt @@ -0,0 +1,64 @@ + + +INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src + ${BULLET_PHYSICS_SOURCE_DIR}/btgui +) + + +SET(App_AllBullet2Demos_SRCS + main.cpp + BulletDemoInterface.h + BulletDemoEntries.h + ../bullet2/BasicDemo/Bullet2RigidBodyDemo.cpp + ../bullet2/BasicDemo/Bullet2RigidBodyDemo.h + ../bullet2/FeatherstoneMultiBodyDemo/BulletMultiBodyDemos.cpp + ../bullet2/FeatherstoneMultiBodyDemo/BulletMultiBodyDemos.h + ../bullet2/FeatherstoneMultiBodyDemo/MultiDofDemo.cpp + ../bullet2/FeatherstoneMultiBodyDemo/MultiDofDemo.h + ../bullet2/BasicDemo/BasicDemo.cpp + ../bullet2/BasicDemo/BasicDemo.h + ../bullet2/BasicDemo/HingeDemo.cpp + ../bullet2/BasicDemo/HingeDemo.h + ../bullet2/ChainDemo/ChainDemo.cpp + ../bullet2/ChainDemo/ChainDemo.h + ../bullet2/RagdollDemo/RagdollDemo.cpp + ../bullet2/RagdollDemo/RagdollDemo.h +# ../bullet2/LuaDemo/LuaDemo.cpp +# ../bullet2/LuaDemo/LuaDemo.h + ../GpuDemos/gwenUserInterface.cpp + ../GpuDemos/gwenUserInterface.h + ../../btgui/Timing/b3Clock.cpp + ../../btgui/Timing/b3Clock.h + + ${BULLET_PHYSICS_SOURCE_DIR}/build3/bullet.rc +) + +IF (WIN32) + SET(App_AllBullet2Demos_SRCS ${App_AllBullet2Demos_SRCS} ${App_AllBullet2Demos_Common_SRCS}) + INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/btgui/OpenGLWindow/GlewWindows + ) + ADD_DEFINITIONS(-DGLEW_STATIC) +ELSE(WIN32) + IF(NOT APPLE) + LINK_LIBRARIES( GLEW) + ENDIF(NOT APPLE) +ENDIF(WIN32) + + + +LINK_LIBRARIES( + Bullet3Common BulletSoftBody BulletDynamics BulletCollision LinearMath OpenGLWindow gwen ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} +) + +ADD_EXECUTABLE(App_AllBullet2Demos + ${App_AllBullet2Demos_SRCS} +) + + +IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) + SET_TARGET_PROPERTIES(App_AllBullet2Demos PROPERTIES DEBUG_POSTFIX "_Debug") + SET_TARGET_PROPERTIES(App_AllBullet2Demos PROPERTIES MINSIZEREL_POSTFIX "_MinsizeRel") + SET_TARGET_PROPERTIES(App_AllBullet2Demos PROPERTIES RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo") +ENDIF(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) \ No newline at end of file diff --git a/Demos3/CMakeLists.txt b/Demos3/CMakeLists.txt index bcd6775fb..1efa8ea1f 100644 --- a/Demos3/CMakeLists.txt +++ b/Demos3/CMakeLists.txt @@ -1 +1 @@ -SUBDIRS( SimpleOpenGL3 ) +SUBDIRS( SimpleOpenGL3 AllBullet2Demos ) diff --git a/btgui/Gwen/CMakeLists.txt b/btgui/Gwen/CMakeLists.txt index c88f8e1b0..4deedbd42 100644 --- a/btgui/Gwen/CMakeLists.txt +++ b/btgui/Gwen/CMakeLists.txt @@ -6,8 +6,8 @@ INCLUDE_DIRECTORIES( ADD_DEFINITIONS( -DGWEN_COMPILE_STATIC -D_HAS_EXCEPTIONS=0 -D_STATIC_CPPLIB ) -FILE(GLOB gwen_SRCS "*.cpp") -FILE(GLOB gwen_HDRS "*.h") +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}) diff --git a/src/BulletDynamics/CMakeLists.txt b/src/BulletDynamics/CMakeLists.txt index a19c0479e..f971a9cf9 100644 --- a/src/BulletDynamics/CMakeLists.txt +++ b/src/BulletDynamics/CMakeLists.txt @@ -34,6 +34,7 @@ SET(BulletDynamics_SRCS Featherstone/btMultiBodyJointMotor.cpp MLCPSolvers/btDantzigLCP.cpp MLCPSolvers/btMLCPSolver.cpp + MLCPSolvers/btLemkeAlgorithm.cpp ) SET(Root_HDRS @@ -96,6 +97,8 @@ SET(MLCPSolvers_HDRS MLCPSolvers/btMLCPSolverInterface.h MLCPSolvers/btPATHSolver.h MLCPSolvers/btSolveProjectedGaussSeidel.h + MLCPSolvers/btLemkeSolver.h + MLCPSolvers/btLemkeAlgorithm.h ) SET(Character_HDRS From 01fe7159d965fa34961bec51a3a0879ce1297972 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Mon, 24 Mar 2014 15:44:45 -0700 Subject: [PATCH 2/2] Added CMake support to compile App_Bullet3_OpenCL_Demos --- Demos3/CMakeLists.txt | 3 +- Demos3/GpuDemos/CMakeLists.txt | 64 ++++++++++++++++ src/Bullet3OpenCL/CMakeLists.txt | 76 +++++++++++++++++++ .../Bullet2FileLoader/CMakeLists.txt | 52 +++++++++++++ src/CMakeLists.txt | 2 +- 5 files changed, 195 insertions(+), 2 deletions(-) create mode 100644 Demos3/GpuDemos/CMakeLists.txt create mode 100644 src/Bullet3OpenCL/CMakeLists.txt create mode 100644 src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt diff --git a/Demos3/CMakeLists.txt b/Demos3/CMakeLists.txt index 1efa8ea1f..aaa6a1713 100644 --- a/Demos3/CMakeLists.txt +++ b/Demos3/CMakeLists.txt @@ -1 +1,2 @@ -SUBDIRS( SimpleOpenGL3 AllBullet2Demos ) +SUBDIRS( GpuDemos SimpleOpenGL3 AllBullet2Demos ) +#SUBDIRS( SimpleOpenGL3 AllBullet2Demos ) diff --git a/Demos3/GpuDemos/CMakeLists.txt b/Demos3/GpuDemos/CMakeLists.txt new file mode 100644 index 000000000..c63783f7f --- /dev/null +++ b/Demos3/GpuDemos/CMakeLists.txt @@ -0,0 +1,64 @@ + +ADD_DEFINITIONS(-DB3_USE_CLEW) + +INCLUDE_DIRECTORIES( + .. + ${BULLET_PHYSICS_SOURCE_DIR}/src + ${BULLET_PHYSICS_SOURCE_DIR}/btgui +) + + +SET(App_Bullet3_OpenCL_Demos_SRCS + ../../src/clew/clew.c + ../../btgui/OpenGLWindow/GlewWindows/glew.c + GpuDemo.cpp + gwenUserInterface.cpp + main_opengl3core.cpp + ParticleDemo.cpp + broadphase/PairBench.cpp + constraints/ConstraintsDemo.cpp + raytrace/RaytracedShadowDemo.cpp + rigidbody/Bullet2FileDemo.cpp + rigidbody/BulletDataExtractor.cpp + rigidbody/ConcaveScene.cpp + rigidbody/GpuCompoundScene.cpp + rigidbody/GpuConvexScene.cpp + rigidbody/GpuRigidBodyDemo.cpp + rigidbody/GpuSphereScene.cpp + shadows/ShadowMapDemo.cpp + softbody/GpuSoftBodyDemo.cpp + ../Wavefront/tiny_obj_loader.cpp + ../../btgui/stb_image/stb_image.cpp + ../../btgui/Timing/b3Quickprof.cpp + ../../btgui/Timing/b3Clock.cpp + ${BULLET_PHYSICS_SOURCE_DIR}/build3/bullet.rc +) + +IF (WIN32) + SET(App_Bullet3_OpenCL_Demos_SRCS ${App_Bullet3_OpenCL_Demos_SRCS} ${App_Bullet3_OpenCL_Demos_Common_SRCS}) + INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/btgui/OpenGLWindow/GlewWindows + ) + ADD_DEFINITIONS(-DGLEW_STATIC) +ELSE(WIN32) + IF(NOT APPLE) + LINK_LIBRARIES( GLEW) + ENDIF(NOT APPLE) +ENDIF(WIN32) + + + +LINK_LIBRARIES( + Bullet2FileLoader Bullet3OpenCL_clew Bullet3Dynamics Bullet3Collision Bullet3Geometry Bullet3Common OpenGLWindow gwen ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} +) + +ADD_EXECUTABLE(App_Bullet3_OpenCL_Demos + ${App_Bullet3_OpenCL_Demos_SRCS} +) + + +IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) + SET_TARGET_PROPERTIES(App_Bullet3_OpenCL_Demos PROPERTIES DEBUG_POSTFIX "_Debug") + SET_TARGET_PROPERTIES(App_Bullet3_OpenCL_Demos PROPERTIES MINSIZEREL_POSTFIX "_MinsizeRel") + SET_TARGET_PROPERTIES(App_Bullet3_OpenCL_Demos PROPERTIES RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo") +ENDIF(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) \ No newline at end of file diff --git a/src/Bullet3OpenCL/CMakeLists.txt b/src/Bullet3OpenCL/CMakeLists.txt new file mode 100644 index 000000000..56f4130e0 --- /dev/null +++ b/src/Bullet3OpenCL/CMakeLists.txt @@ -0,0 +1,76 @@ +INCLUDE_DIRECTORIES( ${BULLET_PHYSICS_SOURCE_DIR}/src ) + +ADD_DEFINITIONS(-DB3_USE_CLEW) + +SET(Bullet3OpenCL_clew_SRCS + ../clew/clew.c + BroadphaseCollision/b3GpuGridBroadphase.cpp + BroadphaseCollision/b3GpuSapBroadphase.cpp + Initialize/b3OpenCLUtils.cpp + NarrowphaseCollision/b3ContactCache.cpp + NarrowphaseCollision/b3ConvexHullContact.cpp + NarrowphaseCollision/b3GjkEpa.cpp + NarrowphaseCollision/b3GjkPairDetector.cpp + NarrowphaseCollision/b3OptimizedBvh.cpp + NarrowphaseCollision/b3QuantizedBvh.cpp + NarrowphaseCollision/b3StridingMeshInterface.cpp + NarrowphaseCollision/b3TriangleCallback.cpp + NarrowphaseCollision/b3TriangleIndexVertexArray.cpp + NarrowphaseCollision/b3VoronoiSimplexSolver.cpp + ParallelPrimitives/b3BoundSearchCL.cpp + ParallelPrimitives/b3FillCL.cpp + ParallelPrimitives/b3LauncherCL.cpp + ParallelPrimitives/b3PrefixScanCL.cpp + ParallelPrimitives/b3PrefixScanFloat4CL.cpp + ParallelPrimitives/b3RadixSort32CL.cpp + Raycast/b3GpuRaycast.cpp + RigidBody/b3GpuGenericConstraint.cpp + RigidBody/b3GpuJacobiContactSolver.cpp + RigidBody/b3GpuNarrowPhase.cpp + RigidBody/b3GpuPgsConstraintSolver.cpp + RigidBody/b3GpuPgsContactSolver.cpp + RigidBody/b3GpuRigidBodyPipeline.cpp + RigidBody/b3Solver.cpp +) + + +SET(Bullet3OpenCL_clew_HDRS +# ${Root_HDRS} +) + + +ADD_LIBRARY(Bullet3OpenCL_clew ${Bullet3OpenCL_clew_SRCS} ${Bullet3OpenCL_clew_HDRS}) +SET_TARGET_PROPERTIES(Bullet3OpenCL_clew PROPERTIES VERSION ${BULLET_VERSION}) +SET_TARGET_PROPERTIES(Bullet3OpenCL_clew PROPERTIES SOVERSION ${BULLET_VERSION}) +IF (BUILD_SHARED_LIBS) + TARGET_LINK_LIBRARIES(Bullet3OpenCL_clew LinearMath) +ENDIF (BUILD_SHARED_LIBS) + + +IF (INSTALL_LIBS) + IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) + #INSTALL of other files requires CMake 2.6 + IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + INSTALL(TARGETS Bullet3OpenCL_clew DESTINATION .) + ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + INSTALL(TARGETS Bullet3OpenCL_clew RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) + INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) + INSTALL(FILES ../btBullet3OpenCL_clewCommon.h +DESTINATION ${INCLUDE_INSTALL_DIR}/Bullet3OpenCL_clew) + ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + + IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + SET_TARGET_PROPERTIES(Bullet3OpenCL_clew PROPERTIES FRAMEWORK true) + + SET_TARGET_PROPERTIES(Bullet3OpenCL_clew PROPERTIES PUBLIC_HEADER "${Root_HDRS}") + # Have to list out sub-directories manually: + SET_PROPERTY(SOURCE ${BroadphaseCollision_HDRS} PROPERTY MACOSX_PACKAGE_LOCATION Headers/BroadphaseCollision) + + ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + ENDIF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) +ENDIF (INSTALL_LIBS) diff --git a/src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt b/src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt new file mode 100644 index 000000000..a73d3ccd8 --- /dev/null +++ b/src/Bullet3Serialize/Bullet2FileLoader/CMakeLists.txt @@ -0,0 +1,52 @@ + +INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src +) + +SET(Bullet2FileLoader_SRCS + b3BulletFile.cpp + b3Chunk.cpp + b3DNA.cpp + b3File.cpp + b3Serializer.cpp +) + + +SET(Bullet2FileLoader_HDRS + b3BulletFile.h + b3Chunk.h + b3Common.h + b3Defines.h + b3DNA.h + b3File.h + b3Serializer.h + autogenerated/bullet2.h +) + +ADD_LIBRARY(Bullet2FileLoader ${Bullet2FileLoader_SRCS} ${Bullet2FileLoader_HDRS}) +SET_TARGET_PROPERTIES(Bullet2FileLoader PROPERTIES VERSION ${BULLET_VERSION}) +SET_TARGET_PROPERTIES(Bullet2FileLoader PROPERTIES SOVERSION ${BULLET_VERSION}) + +IF (INSTALL_LIBS) + IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) + #FILES_MATCHING requires CMake 2.6 + IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + INSTALL(TARGETS Bullet2FileLoader DESTINATION .) + ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + INSTALL(TARGETS Bullet2FileLoader + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib${LIB_SUFFIX} + ARCHIVE DESTINATION lib${LIB_SUFFIX}) + INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} +DESTINATION ${INCLUDE_INSTALL_DIR} FILES_MATCHING PATTERN "*.h" PATTERN +".svn" EXCLUDE PATTERN "CMakeFiles" EXCLUDE) + ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + + IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + SET_TARGET_PROPERTIES(Bullet2FileLoader PROPERTIES FRAMEWORK true) + SET_TARGET_PROPERTIES(Bullet2FileLoader PROPERTIES PUBLIC_HEADER "${Bullet2FileLoader_HDRS}") + ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + ENDIF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) +ENDIF (INSTALL_LIBS) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c372ff07a..820ac612f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -SUBDIRS( Bullet3Dynamics Bullet3Collision Bullet3Geometry Bullet3Common BulletSoftBody BulletCollision BulletDynamics LinearMath ) +SUBDIRS( Bullet3OpenCL Bullet3Serialize/Bullet2FileLoader Bullet3Dynamics Bullet3Collision Bullet3Geometry Bullet3Common BulletSoftBody BulletCollision BulletDynamics LinearMath ) IF(BUILD_MULTITHREADING) SUBDIRS(MiniCL BulletMultiThreaded)