Fixes in build systems for autotools and cmake, see Issue 438
Thanks to Daniel KO Listas at the ODE mailing list Don't build graphics demos when OpenGL or GLUT is not found CMake will still build the non-graphical HelloWorld demo (output text to console) Fix linker error: ThreadingDemo requires pthreads on UNIX systems Thanks to reptor, see also http://bulletphysics.org/Bullet/phpBB3/posting.php?mode=reply&f=9&t=5748
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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")
|
||||
|
||||
@@ -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 ()
|
||||
|
||||
@@ -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
|
||||
|
||||
15
config.h.in
15
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 <dlfcn.h> header file. */
|
||||
#undef HAVE_DLFCN_H
|
||||
|
||||
/* Define to 1 if you have the <GL/glext.h> header file. */
|
||||
#undef HAVE_GL_GLEXT_H
|
||||
|
||||
/* Define to 1 if you have the <GL/glut.h> header file. */
|
||||
#undef HAVE_GL_GLUT_H
|
||||
|
||||
/* Define to 1 if you have the <GL/glu.h> header file. */
|
||||
#undef HAVE_GL_GLU_H
|
||||
|
||||
/* Define to 1 if you have the <GL/gl.h> header file. */
|
||||
#undef HAVE_GL_GL_H
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#undef HAVE_INTTYPES_H
|
||||
|
||||
|
||||
45
configure.ac
45
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 <windows.h>
|
||||
#endif
|
||||
#if HAVE_GL_GL_H
|
||||
#include <GL/gl.h>
|
||||
#endif
|
||||
#if HAVE_GL_GLU_H
|
||||
#include <GL/glu.h>
|
||||
#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])
|
||||
|
||||
@@ -341,4 +341,6 @@ public:
|
||||
virtual void copySoftBodyToVertexBuffer( const btSoftBody *const softBody, btVertexBufferDescriptor *vertexBuffer );
|
||||
};
|
||||
|
||||
#endif // #ifndef BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H
|
||||
#endif // #ifndef BT_ACCELERATED_SOFT_BODY_CPU_SOLVER_H
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user