cmake_minimum_required(VERSION 2.4) PROJECT(BULLET_PHYSICS) SET(BULLET_VERSION 2.75) IF (NOT CMAKE_BUILD_TYPE) # SET(CMAKE_BUILD_TYPE "Debug") SET(CMAKE_BUILD_TYPE "Release") ENDIF (NOT CMAKE_BUILD_TYPE) OPTION(USE_DOUBLE_PRECISION "Use double precision" OFF) OPTION(USE_GRAPHICAL_BENCHMARK "Use Graphical Benchmark" OFF) IF (WIN32) OPTION(CREATE_MSVC_RELATIVE_PATH_PROJECTFILES "Create MSVC projectfiles with relative paths" OFF) IF (CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) SET(CMAKE_SUPPRESS_REGENERATION 1) SET(CMAKE_USE_RELATIVE_PATHS 1) ENDIF(CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) ENDIF (WIN32) OPTION(INTERNAL_UPDATE_SERIALIZATION_STRUCTURES "Internal update serialization structures" OFF) IF (INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) ADD_DEFINITIONS( -DBT_INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) ENDIF (INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) IF (USE_DOUBLE_PRECISION) ADD_DEFINITIONS( -DBT_USE_DOUBLE_PRECISION) ENDIF (USE_DOUBLE_PRECISION) IF(USE_GRAPHICAL_BENCHMARK) ADD_DEFINITIONS( -DUSE_GRAPHICAL_BENCHMARK) ENDIF (USE_GRAPHICAL_BENCHMARK) IF (WIN32) OPTION(USE_GLUT "Use Glut" ON) ADD_DEFINITIONS( -D_IRR_STATIC_LIB_ ) ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS ) ADD_DEFINITIONS( -D_CRT_SECURE_NO_DEPRECATE ) ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) IF (USE_GLUT) string (REPLACE "/D_WINDOWS" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) remove_definitions(-D_WINDOWS ) ENDIF (USE_GLUT) ELSE(WIN32) OPTION(USE_GLUT "Use Glut" ON) ENDIF(WIN32) IF(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) ENDIF(COMMAND cmake_policy) # This is the shortcut to finding GLU, GLUT and OpenGL if they are properly installed on your system # This should be the case. FIND_PACKAGE(OpenGL) IF (OPENGL_FOUND) MESSAGE("OPENGL FOUND") MESSAGE(${OPENGL_LIBRARIES}) ELSE (OPENGL_FOUND) MESSAGE("OPENGL NOT FOUND") SET(OPENGL_gl_LIBRARY opengl32) SET(OPENGL_glu_LIBRARY glu32) ENDIF (OPENGL_FOUND) # ADD_DEFINITIONS(-DBT_USE_FREEGLUT) FIND_PACKAGE(GLU) IF (USE_GLUT) FIND_PACKAGE(GLUT) IF (GLUT_FOUND) 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) MESSAGE ("GLUT NOT FOUND, trying to use Bullet/Glut/glut32.lib for MSVC") IF (CMAKE_CL_64) message("win64 using glut64.lib") SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut64.lib) ELSE(CMAKE_CL_64) message("win32 using glut32.lib") SET(GLUT_glut_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glut32.lib) ENDIF (CMAKE_CL_64) 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) ENDIF(USE_GLUT) OPTION(BUILD_DEMOS "Set when you want to build the demos" ON) IF(BUILD_DEMOS) SUBDIRS(Demos) ENDIF(BUILD_DEMOS) OPTION(BUILD_EXTRAS "Set when you want to build the extras" ON) IF(BUILD_EXTRAS) SUBDIRS(Extras) ENDIF(BUILD_EXTRAS) OPTION(BUILD_BULLET_MAYA_DYNAMICA_PLUGIN "Set when you want to build the Bullet Maya Dynamica Plugin (requires Extras)" OFF) #INSTALL of other files requires CMake 2.6 IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) OPTION(INSTALL_EXTRA_LIBS "Set when you want extra libraries installed" OFF) ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) SUBDIRS(src)