diff --git a/CMakeLists.txt b/CMakeLists.txt index 4cd1d2fba..2c7bc742a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -18,8 +18,8 @@ IF (NOT CMAKE_BUILD_TYPE) ENDIF (NOT CMAKE_BUILD_TYPE) SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG") +#MESSAGE("CMAKE_CXX_FLAGS_DEBUG="+${CMAKE_CXX_FLAGS_DEBUG}) -MESSAGE("CMAKE_CXX_FLAGS_DEBUG="+${CMAKE_CXX_FLAGS_DEBUG}) OPTION(USE_DOUBLE_PRECISION "Use double precision" OFF) OPTION(USE_GRAPHICAL_BENCHMARK "Use Graphical Benchmark" ON) OPTION(USE_MULTITHREADED_BENCHMARK "Use Multithreaded Benchmark" OFF) @@ -225,12 +225,12 @@ ENDIF(COMMAND cmake_policy) FIND_PACKAGE(OpenGL) IF (OPENGL_FOUND) -MESSAGE("OPENGL FOUND") -MESSAGE(${OPENGL_LIBRARIES}) + MESSAGE("OPENGL FOUND") + MESSAGE(${OPENGL_LIBRARIES}) ELSE (OPENGL_FOUND) -MESSAGE("OPENGL NOT FOUND") -SET(OPENGL_gl_LIBRARY opengl32) -SET(OPENGL_glu_LIBRARY glu32) + MESSAGE("OPENGL NOT FOUND") + SET(OPENGL_gl_LIBRARY opengl32) + SET(OPENGL_glu_LIBRARY glu32) ENDIF (OPENGL_FOUND) # ADD_DEFINITIONS(-DBT_USE_FREEGLUT) @@ -240,36 +240,34 @@ FIND_PACKAGE(GLU) IF (USE_GLUT) FIND_PACKAGE(GLUT) IF (GLUT_FOUND) - MESSAGE("GLUT FOUND") - MESSAGE(${GLUT_glut_LIBRARY}) + MESSAGE("GLUT FOUND") + MESSAGE(${GLUT_glut_LIBRARY}) ELSE (GLUT_FOUND) - - IF (MINGW) - MESSAGE ("GLUT NOT FOUND not found, trying to use MINGW glut32") - SET(GLUT_glut_LIBRARY glut32) - ENDIF (MINGW) - - IF (MSVC) - IF (CMAKE_CL_64) - message("Win64 using Glut/glut64.lib") - SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut64.lib) - ELSE(CMAKE_CL_64) - message("Win32 using Glut/glut32.lib") - SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut32.lib) - ENDIF (CMAKE_CL_64) - - ENDIF (MSVC) + IF (MINGW) + MESSAGE ("GLUT NOT FOUND not found, trying to use MINGW glut32") + SET(GLUT_glut_LIBRARY glut32) + ENDIF (MINGW) + IF (MSVC) + IF (CMAKE_CL_64) + message("Win64 using Glut/glut64.lib") + SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut64.lib) + ELSE(CMAKE_CL_64) + message("Win32 using Glut/glut32.lib") + SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut32.lib) + ENDIF (CMAKE_CL_64) + INCLUDE_DIRECTORIES(${BULLET_PHYSICS_SOURCE_DIR}/Glut) + ELSE() + MESSAGE("GLUT NOT FOUND") + ENDIF (MSVC) ENDIF (GLUT_FOUND) - IF (WIN32) - INCLUDE_DIRECTORIES(${BULLET_PHYSICS_SOURCE_DIR}/Glut) - ELSE (WIN32) - # This is the lines for linux. This should always work if everything is installed and working fine. - INCLUDE_DIRECTORIES(/usr/include /usr/local/include ${GLUT_INCLUDE_DIR}) - ENDIF (WIN32) - + IF(NOT WIN32) + # This is added for linux. This should always work if everything is installed and working fine. + INCLUDE_DIRECTORIES(/usr/include /usr/local/include) + ENDIF() ENDIF(USE_GLUT) + OPTION(BUILD_DEMOS "Set when you want to build the demos" ON) IF(BUILD_DEMOS) IF(EXISTS ${BULLET_PHYSICS_SOURCE_DIR}/Demos AND IS_DIRECTORY ${BULLET_PHYSICS_SOURCE_DIR}/Demos) diff --git a/Demos/CMakeLists.txt b/Demos/CMakeLists.txt index 35d90a508..f0bf91077 100644 --- a/Demos/CMakeLists.txt +++ b/Demos/CMakeLists.txt @@ -3,51 +3,56 @@ IF (USE_DX11) SUBDIRS(DX11ClothDemo) ENDIF() +SUBDIRS( HelloWorld ) + + IF (USE_GLUT) - -IF(BUILD_CPU_DEMOS) - SET(SharedDemoSubdirs - OpenGL AllBulletDemos ConvexDecompositionDemo HelloWorld - CcdPhysicsDemo ConstraintDemo SliderConstraintDemo GenericJointDemo Raytracer - RagdollDemo ForkLiftDemo BasicDemo Box2dDemo BspDemo MovingConcaveDemo VehicleDemo - UserCollisionAlgorithm CharacterDemo SoftDemo HeightFieldFluidDemo - CollisionInterfaceDemo ConcaveConvexcastDemo SimplexDemo DynamicControlDemo - DoublePrecisionDemo ConcaveDemo CollisionDemo - ContinuousConvexCollision ConcaveRaycastDemo GjkConvexCastDemo - MultiMaterialDemo SerializeDemo InternalEdgeDemo - ) -ELSE() - SET(SharedDemoSubdirs - OpenGL - ) -ENDIF() - - SUBDIRS( ${SharedDemoSubdirs} - Benchmarks - ThreadingDemo - MultiThreadedDemo - VectorAdd_OpenCL - ParticlesOpenCL - OpenCLClothDemo + IF (GLUT_FOUND) + IF(BUILD_CPU_DEMOS) + SET(SharedDemoSubdirs + OpenGL AllBulletDemos ConvexDecompositionDemo + CcdPhysicsDemo ConstraintDemo SliderConstraintDemo GenericJointDemo Raytracer + RagdollDemo ForkLiftDemo BasicDemo Box2dDemo BspDemo MovingConcaveDemo VehicleDemo + UserCollisionAlgorithm CharacterDemo SoftDemo HeightFieldFluidDemo + CollisionInterfaceDemo ConcaveConvexcastDemo SimplexDemo DynamicControlDemo + DoublePrecisionDemo ConcaveDemo CollisionDemo + ContinuousConvexCollision ConcaveRaycastDemo GjkConvexCastDemo + MultiMaterialDemo SerializeDemo InternalEdgeDemo + ) + ELSE() + SET(SharedDemoSubdirs + OpenGL ) + ENDIF() + SUBDIRS( + ${SharedDemoSubdirs} + Benchmarks + ThreadingDemo + MultiThreadedDemo + VectorAdd_OpenCL + ParticlesOpenCL + OpenCLClothDemo + ) + ENDIF(GLUT_FOUND) ELSE (USE_GLUT) + IF (WIN32) + SUBDIRS( + OpenGL + BasicDemo + Benchmarks + Box2dDemo + CollisionInterfaceDemo + ConcaveDemo + ConstraintDemo + ConvexDecompositionDemo + InternalEdgeDemo + GimpactTestDemo + GenericJointDemo + SerializeDemo + SoftDemo + VectorAdd_OpenCL + ) + ENDIF(WIN32) +ENDIF (USE_GLUT) -SUBDIRS( - OpenGL - BasicDemo - Benchmarks - Box2dDemo - CollisionInterfaceDemo - ConcaveDemo - ConstraintDemo - ConvexDecompositionDemo - InternalEdgeDemo - GimpactTestDemo - GenericJointDemo - SerializeDemo - SoftDemo - VectorAdd_OpenCL -) - -ENDIF (USE_GLUT) \ No newline at end of file diff --git a/Demos/ThreadingDemo/CMakeLists.txt b/Demos/ThreadingDemo/CMakeLists.txt index 16ca3f14c..b27cce4cd 100644 --- a/Demos/ThreadingDemo/CMakeLists.txt +++ b/Demos/ThreadingDemo/CMakeLists.txt @@ -19,22 +19,24 @@ INCLUDE_DIRECTORIES( ${VECTOR_MATH_INCLUDE} ) -IF (USE_GLUT) - LINK_LIBRARIES( - OpenGLSupport BulletMultiThreaded BulletDynamics BulletCollision LinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} - ) +LINK_LIBRARIES( +BulletMultiThreaded BulletDynamics BulletCollision LinearMath +) - IF (WIN32) +IF (WIN32) +ADD_EXECUTABLE(AppThreadingDemo + main.cpp + ${BULLET_PHYSICS_SOURCE_DIR}/msvc/bullet.rc + ) +ELSE() ADD_EXECUTABLE(AppThreadingDemo - main.cpp - ${BULLET_PHYSICS_SOURCE_DIR}/msvc/bullet.rc - ) - ELSE() - ADD_EXECUTABLE(AppThreadingDemo - main.cpp - ) - ENDIF() -ENDIF (USE_GLUT) + main.cpp + ) +ENDIF() + +IF (UNIX) + TARGET_LINK_LIBRARIES(AppThreadingDemo pthread) +ENDIF(UNIX) IF (INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES) SET_TARGET_PROPERTIES(AppThreadingDemo PROPERTIES DEBUG_POSTFIX "_Debug") diff --git a/Extras/CMakeLists.txt b/Extras/CMakeLists.txt index 293a65cca..0b7ba7a1b 100644 --- a/Extras/CMakeLists.txt +++ b/Extras/CMakeLists.txt @@ -2,6 +2,6 @@ SUBDIRS( Serialize ConvexDecomposition GIMPACTUtils ) #Maya Dynamica plugin is moved to http://dynamica.googlecode.com -IF (USE_GLUT) -SUBDIRS (glui) -ENDIF (USE_GLUT) +IF (USE_GLUT AND GLUT_FOUND) + SUBDIRS (glui) +ENDIF () diff --git a/Makefile.am b/Makefile.am index b243b33a3..a9b97a8e6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,7 @@ if CONDITIONAL_BUILD_DEMOS SUBDIRS=src Extras Demos else -SUBDIRS=src Extras +SUBDIRS=src endif pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = bullet.pc diff --git a/config.h.in b/config.h.in index c444a0bbb..3da52c325 100644 --- a/config.h.in +++ b/config.h.in @@ -9,9 +9,24 @@ /* Architecture is x86-64 */ #undef ARCH_X86_64 +/* Use the Apple OpenGL framework. */ +#undef HAVE_APPLE_OPENGL_FRAMEWORK + /* Define to 1 if you have the header file. */ #undef HAVE_DLFCN_H +/* Define to 1 if you have the header file. */ +#undef HAVE_GL_GLEXT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_GL_GLUT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_GL_GLU_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_GL_GL_H + /* Define to 1 if you have the header file. */ #undef HAVE_INTTYPES_H diff --git a/configure.ac b/configure.ac index b94517ed1..c1bd798ef 100644 --- a/configure.ac +++ b/configure.ac @@ -81,10 +81,53 @@ AM_CONDITIONAL([CONDITIONAL_BUILD_MULTITHREADED], [test "$build_multithreaded" = AC_ARG_ENABLE([demos], [AS_HELP_STRING([--disable-demos], - [disable Bullet demos])], + [disable Bullet demos])], [], [enable_demos=yes]) AM_CONDITIONAL([CONDITIONAL_BUILD_DEMOS], [false]) + +dnl Check for OpenGL and GLUT +if test "x$drawstuff" = "xOSX"; then + AC_DEFINE([HAVE_APPLE_OPENGL_FRAMEWORK], [1], + [Use the Apple OpenGL framework.]) + GL_LIBS="-framework GLUT -framework OpenGL -framework Carbon -framework AGL" + have_glut=yes +else + have_gl_headers=yes + AC_CHECK_HEADERS(GL/gl.h GL/glu.h GL/glext.h GL/glut.h, , + [have_gl_headers=no], + [[#ifdef WIN32 + #include + #endif + #if HAVE_GL_GL_H + #include + #endif + #if HAVE_GL_GLU_H + #include + #endif + ]]) + have_gl=no + have_glu=no + have_glut=no + TEMP_LDFLAGS="$LDFLAGS" + AC_CHECK_LIB(GL, main, [GL_LIBS="-lGL"; have_gl=yes]) + AC_CHECK_LIB(GLU, main, [GL_LIBS="-lGLU $GL_LIBS"; have_glu=yes], , -lGL) + AC_CHECK_LIB(GLUT, main, [GL_LIBS="-lGLUT -LGLU $GL_LIBS"; have_glut=yes], ,-lGLUT) + AC_CHECK_LIB(opengl32, main, [GL_LIBS="-lopengl32"; have_gl=yes]) + AC_CHECK_LIB(glu32, main, [GL_LIBS="-lglu32 $GL_LIBS"; have_glu=yes], , -lopengl32) + LDFLAGS="$TEMP_LDFLAGS" + if test $have_gl = no -o $have_glu = no -o $have_gl_headers = no; then + if test x$enable_demos = xyes; then + AC_MSG_WARN([Demos and Extras will not be built because OpenGL and GLUT doesn't seem to work. See `config.log' for details.]) + fi + enable_demos=no + else + AC_MSG_NOTICE([Found OpenGL]) + fi +fi +AC_SUBST(GL_LIBS) + + if test "x$enable_demos" != xno; then AC_MSG_NOTICE([Building Bullet demos]) AM_CONDITIONAL([CONDITIONAL_BUILD_DEMOS],[true]) diff --git a/src/BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolver_CPU.h b/src/BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolver_CPU.h index 0e014c7d7..18a749ea4 100644 --- a/src/BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolver_CPU.h +++ b/src/BulletMultiThreaded/GpuSoftBodySolvers/CPU/btSoftBodySolver_CPU.h @@ -341,4 +341,6 @@ public: virtual void copySoftBodyToVertexBuffer( const btSoftBody *const softBody, btVertexBufferDescriptor *vertexBuffer ); }; -#endif // #ifndef BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H \ No newline at end of file +#endif // #ifndef BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H + +