From 9bd88e5727eb9088140a2f36fc68aba39d74cb86 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Sat, 21 May 2016 10:45:08 -0700 Subject: [PATCH 1/3] move some easy-to-use build files for Mac OSX, Linux and Windows in the root directory. --- CMakeLists.txt | 307 ------------------- build3/xcode.command | 4 - build_and_run_cmake.sh | 7 + build_and_run_premake.sh | 7 + build3/vs2010.bat => build_visual_studio.bat | 5 +- xcode.command | 5 + 6 files changed, 22 insertions(+), 313 deletions(-) delete mode 100644 CMakeLists.txt delete mode 100755 build3/xcode.command create mode 100755 build_and_run_cmake.sh create mode 100755 build_and_run_premake.sh rename build3/vs2010.bat => build_visual_studio.bat (89%) create mode 100755 xcode.command diff --git a/CMakeLists.txt b/CMakeLists.txt deleted file mode 100644 index b34c7f996..000000000 --- a/CMakeLists.txt +++ /dev/null @@ -1,307 +0,0 @@ -cmake_minimum_required(VERSION 2.4.3) -set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) - -#this line has to appear before 'PROJECT' in order to be able to disable incremental linking -SET(MSVC_INCREMENTAL_DEFAULT ON) - -PROJECT(BULLET_PHYSICS) -SET(BULLET_VERSION 2.83) - -IF(COMMAND cmake_policy) - cmake_policy(SET CMP0003 NEW) -ENDIF(COMMAND cmake_policy) - - -IF (NOT CMAKE_BUILD_TYPE) -# SET(CMAKE_BUILD_TYPE "Debug") - SET(CMAKE_BUILD_TYPE "Release") -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}) - -OPTION(USE_DOUBLE_PRECISION "Use double precision" OFF) -OPTION(USE_GRAPHICAL_BENCHMARK "Use Graphical Benchmark" ON) -OPTION(BUILD_SHARED_LIBS "Use shared libraries" OFF) - -OPTION(USE_MSVC_INCREMENTAL_LINKING "Use MSVC Incremental Linking" OFF) -OPTION(USE_CUSTOM_VECTOR_MATH "Use custom vectormath library" OFF) - -#statically linking VC++ isn't supported for WindowsPhone/WindowsStore -IF (CMAKE_SYSTEM_NAME STREQUAL WindowsPhone OR CMAKE_SYSTEM_NAME STREQUAL WindowsStore) - OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" ON) -ELSE () - OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" OFF) -ENDIF (CMAKE_SYSTEM_NAME STREQUAL WindowsPhone OR CMAKE_SYSTEM_NAME STREQUAL WindowsStore) - -#SET(CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:NO") -#SET(CMAKE_EXE_LINKER_FLAGS "/STACK:10000000 /INCREMENTAL:NO") - -#MESSAGE("MSVC_INCREMENTAL_YES_FLAG"+${MSVC_INCREMENTAL_YES_FLAG}) - - -IF(MSVC) - IF (NOT USE_MSVC_INCREMENTAL_LINKING) - #MESSAGE("MSVC_INCREMENTAL_DEFAULT"+${MSVC_INCREMENTAL_DEFAULT}) - SET( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:NO") - - STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags ${CMAKE_EXE_LINKER_FLAGS_DEBUG}) - SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO ${replacementFlags}" ) - MESSAGE("CMAKE_EXE_LINKER_FLAGS_DEBUG=${CMAKE_EXE_LINKER_FLAGS_DEBUG}") - - STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags2 ${CMAKE_EXE_LINKER_FLAGS}) - - SET(CMAKE_EXE_LINKER_FLAGS ${replacementFlag2}) - STRING(REPLACE "INCREMENTAL:YES" "" replacementFlags3 "${CMAKE_EXTRA_LINK_FLAGS}") - - SET(CMAKE_EXTRA_LINK_FLAGS ${replacementFlag3}) - - - STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags3 "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}") - SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO ${replacementFlags3}) - SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/INCREMENTAL:NO ${replacementFlags3}" ) - - ENDIF (NOT USE_MSVC_INCREMENTAL_LINKING) - - IF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL) - #We statically link to reduce dependancies - FOREACH(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO ) - IF(${flag_var} MATCHES "/MD") - STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") - ENDIF(${flag_var} MATCHES "/MD") - IF(${flag_var} MATCHES "/MDd") - STRING(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}") - ENDIF(${flag_var} MATCHES "/MDd") - ENDFOREACH(flag_var) - ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL) - - IF (CMAKE_CL_64) - ADD_DEFINITIONS(-D_WIN64) - ELSE() - OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON) - IF (USE_MSVC_SSE) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE") - ENDIF() - ENDIF() - OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON) - IF (USE_MSVC_FAST_FLOATINGPOINT) - SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast") - ENDIF() -ENDIF(MSVC) - - - -IF (WIN32) -OPTION(INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES "Create MSVC projectfiles that can be distributed" OFF) - -IF (INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) - SET (LIBRARY_OUTPUT_PATH ${BULLET_PHYSICS_SOURCE_DIR}/lib CACHE PATH "Single output directory for building all libraries.") - SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BULLET_PHYSICS_SOURCE_DIR}) - SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BULLET_PHYSICS_SOURCE_DIR}) - SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BULLET_PHYSICS_SOURCE_DIR}) - SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${BULLET_PHYSICS_SOURCE_DIR}) - SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BULLET_PHYSICS_SOURCE_DIR}) -ELSE() - SET (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Single output directory for building all libraries.") -ENDIF() - - - -OPTION(INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES "Create MSVC projectfiles with relative paths" OFF) -OPTION(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES "Add MSVC postfix for executable names (_Debug)" OFF) - -SET(CMAKE_DEBUG_POSTFIX "_Debug" CACHE STRING "Adds a postfix for debug-built libraries.") -SET(CMAKE_MINSIZEREL_POSTFIX "_MinsizeRel" CACHE STRING "Adds a postfix for MinsizeRelease-built libraries.") -SET(CMAKE_RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo" CACHE STRING "Adds a postfix for ReleaseWithDebug-built libraries.") - - - - - -IF (INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) -SET(CMAKE_SUPPRESS_REGENERATION 1) -SET(CMAKE_USE_RELATIVE_PATHS 1) -ENDIF(INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) - -ENDIF (WIN32) - - -OPTION(BUILD_CPU_DEMOS "Build original Bullet CPU examples" ON) - - - -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) -SET( BULLET_DOUBLE_DEF "-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_CRT_SECURE_NO_WARNINGS ) -ADD_DEFINITIONS( -D_CRT_SECURE_NO_DEPRECATE ) -ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) - -IF (USE_GLUT AND MSVC) - string (REPLACE "/D_WINDOWS" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - remove_definitions(-D_WINDOWS ) -ENDIF() - - - -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) - - -#FIND_PACKAGE(GLU) - - - - -IF (APPLE) - FIND_LIBRARY(COCOA_LIBRARY Cocoa) -ENDIF() - -OPTION(BUILD_BULLET3 "Set when you want to build Bullet 3" ON) -OPTION(BUILD_PYBULLET "Set when you want to build pybullet (experimental Python bindings for Bullet)" OFF) - -IF(BUILD_PYBULLET) - IF(WIN32) - FIND_PACKAGE(PythonLibs 3.4 REQUIRED) - SET(BUILD_SHARED_LIBS OFF CACHE BOOL "Shared Libs" FORCE) - ELSE(WIN32) - FIND_PACKAGE(PythonLibs 2.7 REQUIRED) - SET(BUILD_SHARED_LIBS ON CACHE BOOL "Shared Libs" FORCE) - ENDIF(WIN32) -ENDIF(BUILD_PYBULLET) - -IF(BUILD_BULLET3) - IF(APPLE) - MESSAGE("Mac OSX Version is ${_CURRENT_OSX_VERSION}") - IF(_CURRENT_OSX_VERSION VERSION_LESS 10.9) - MESSAGE("Mac OSX below 10.9 has no OpenGL 3 support so please disable the BUILD_OPENGL3_DEMOS option") - #unset(BUILD_OPENGL3_DEMOS CACHE) - - OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build the OpenGL3+ demos" OFF) - ELSE() - OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build the OpenGL3+ demos" ON) - ENDIF() - ELSE() - OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build Bullet 3 OpenGL3+ demos" ON) - ENDIF() -ELSE(BUILD_BULLET3) - unset(BUILD_OPENGL3_DEMOS CACHE) - OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build Bullet 3 OpenGL3+ demos" OFF) -ENDIF(BUILD_BULLET3) -IF(BUILD_OPENGL3_DEMOS) - IF(EXISTS ${BULLET_PHYSICS_SOURCE_DIR}/Demos3 AND IS_DIRECTORY ${BULLET_PHYSICS_SOURCE_DIR}/Demos3) - SUBDIRS(Demos3) - ENDIF() -ELSE() - ADD_DEFINITIONS(-DNO_OPENGL3) -ENDIF(BUILD_OPENGL3_DEMOS) - -OPTION(BUILD_BULLET2_DEMOS "Set when you want to build the Bullet 2 demos" ON) -IF(BUILD_BULLET2_DEMOS) - - IF(EXISTS ${BULLET_PHYSICS_SOURCE_DIR}/examples AND IS_DIRECTORY ${BULLET_PHYSICS_SOURCE_DIR}/examples) - SUBDIRS(examples) - ENDIF() -ENDIF(BUILD_BULLET2_DEMOS) - - - -OPTION(BUILD_EXTRAS "Set when you want to build the extras" ON) -IF(BUILD_EXTRAS) - SUBDIRS(Extras) -ENDIF(BUILD_EXTRAS) - - -#Maya Dynamica plugin is moved to http://dynamica.googlecode.com - -SUBDIRS(src) - -IF("${CMAKE_GENERATOR}" MATCHES "Unix Makefiles") - OPTION(INSTALL_LIBS "Set when you want to install libraries" ON) -ELSE() - IF(APPLE AND FRAMEWORK) - OPTION(INSTALL_LIBS "Set when you want to install libraries" ON) - ELSE() -#by default, don't enable the 'INSTALL' option for Xcode and MSVC projectfiles - OPTION(INSTALL_LIBS "Set when you want to install libraries" OFF) - ENDIF() -ENDIF() - -IF(INSTALL_LIBS) - SET (LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) - SET (LIB_DESTINATION "lib${LIB_SUFFIX}" CACHE STRING "Library directory name") - ## the following are directories where stuff will be installed to - SET(INCLUDE_INSTALL_DIR "include/bullet/" CACHE PATH "The subdirectory to the header prefix") - SET(PKGCONFIG_INSTALL_PREFIX "lib${LIB_SUFFIX}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files") - IF(NOT MSVC) - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/bullet.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc @ONLY) - INSTALL( - FILES - ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc - DESTINATION - ${PKGCONFIG_INSTALL_PREFIX}) - ENDIF(NOT MSVC) -ENDIF(INSTALL_LIBS) - -#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) - -OPTION(BUILD_UNIT_TESTS "Build Unit Tests" ON) - -IF (BUILD_UNIT_TESTS) - ENABLE_TESTING() - SUBDIRS(test) -ENDIF() - -set (BULLET_CONFIG_CMAKE_PATH lib${LIB_SUFFIX}/cmake/bullet ) -list (APPEND BULLET_LIBRARIES LinearMath) -IF(BUILD_BULLET3) - list (APPEND BULLET_LIBRARIES BulletInverseDynamics) -ENDIF(BUILD_BULLET3) -list (APPEND BULLET_LIBRARIES BulletCollision) -list (APPEND BULLET_LIBRARIES BulletDynamics) -list (APPEND BULLET_LIBRARIES BulletSoftBody) -set (BULLET_USE_FILE ${BULLET_CONFIG_CMAKE_PATH}/UseBullet.cmake) -configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/BulletConfig.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/BulletConfig.cmake - @ONLY ESCAPE_QUOTES - ) -install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/UseBullet.cmake - ${CMAKE_CURRENT_BINARY_DIR}/BulletConfig.cmake - DESTINATION ${BULLET_CONFIG_CMAKE_PATH} - ) diff --git a/build3/xcode.command b/build3/xcode.command deleted file mode 100755 index 52a4a4a7c..000000000 --- a/build3/xcode.command +++ /dev/null @@ -1,4 +0,0 @@ - -cd `dirname $0` -./premake4_osx xcode4 - diff --git a/build_and_run_cmake.sh b/build_and_run_cmake.sh new file mode 100755 index 000000000..1405060f4 --- /dev/null +++ b/build_and_run_cmake.sh @@ -0,0 +1,7 @@ +#!/bin/sh +rm CMakeCache.txt +mkdir build_cmake +cd build_cmake +cmake .. +make -j12 +examples/ExampleBrowser/App_ExampleBrowser diff --git a/build_and_run_premake.sh b/build_and_run_premake.sh new file mode 100755 index 000000000..ba43a6a17 --- /dev/null +++ b/build_and_run_premake.sh @@ -0,0 +1,7 @@ +#!/bin/sh +cd build3 +./premake4_linux64 gmake +./premake4_osx gmake +cd gmake +make -j12 +../../bin/App_BulletExampleBrowser_gmake_x64_release diff --git a/build3/vs2010.bat b/build_visual_studio.bat similarity index 89% rename from build3/vs2010.bat rename to build_visual_studio.bat index 7bca3cf71..de3b886c9 100644 --- a/build3/vs2010.bat +++ b/build_visual_studio.bat @@ -1,6 +1,7 @@ rem premake4 --with-pe vs2010 rem premake4 --bullet2demos vs2010 +cd build3 premake4 --targetdir="../bin" vs2010 rem premake4 --targetdir="../server2bin" vs2010 rem cd vs2010 @@ -13,6 +14,6 @@ rem cd vs2010 rem rename 0_Bullet3Solution.sln 0_client.sln rem cd .. rem rename vs2010 vs2010_client +start vs2010/0_Bullet3Solution.sln - -pause \ No newline at end of file +pause diff --git a/xcode.command b/xcode.command new file mode 100755 index 000000000..e5ab2fc23 --- /dev/null +++ b/xcode.command @@ -0,0 +1,5 @@ + +cd `dirname $0` +cd build3 +./premake4_osx xcode4 +open xcode4/0_Bullet3Solution.xcworkspace From b1adc0d9efbec8bae05baea95aa332606fa0dad3 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Tue, 24 May 2016 09:01:03 -0700 Subject: [PATCH 2/3] avoid API change in URDFImporterInterface fix .obj texture loading issue --- data/cube.mtl | 2 +- examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp | 2 +- examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp | 2 +- examples/Importers/ImportURDFDemo/BulletUrdfImporter.h | 2 +- examples/Importers/ImportURDFDemo/URDF2Bullet.cpp | 2 +- examples/Importers/ImportURDFDemo/URDFImporterInterface.h | 4 +++- 6 files changed, 8 insertions(+), 6 deletions(-) diff --git a/data/cube.mtl b/data/cube.mtl index aba4ddc5b..fca828974 100644 --- a/data/cube.mtl +++ b/data/cube.mtl @@ -10,5 +10,5 @@ newmtl cube Ks 0.0000 0.0000 0.0000 Ke 0.0000 0.0000 0.0000 map_Ka cube.tga - map_Kd cube_diffuse.tga + map_Kd floor_diffuse.tga diff --git a/examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp b/examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp index 810099bae..3f6553b81 100644 --- a/examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp +++ b/examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp @@ -95,7 +95,7 @@ int b3ImportMeshUtility::loadAndRegisterMeshFromFile(const std::string& fileName b3ImportMeshData meshData; if (b3ImportMeshUtility::loadAndRegisterMeshFromFileInternal(fileName, meshData)) { - int textureIndex = 0; + int textureIndex = -1; if (meshData.m_textureImage) { diff --git a/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp b/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp index d0238abea..1aac66af3 100644 --- a/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp +++ b/examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp @@ -585,7 +585,7 @@ btCollisionShape* convertURDFToCollisionShape(const UrdfCollision* collision, co return shape; } -int BulletURDFImporter::convertLinkVisualShapes(int linkIndex, const char* pathPrefix, const btTransform& localInertiaFrame, class btCollisionShape* colShape) const +int BulletURDFImporter::convertLinkVisualShapes2(int linkIndex, const char* pathPrefix, const btTransform& localInertiaFrame, class btCollisionShape* colShape) const { int graphicsIndex = -1; diff --git a/examples/Importers/ImportURDFDemo/BulletUrdfImporter.h b/examples/Importers/ImportURDFDemo/BulletUrdfImporter.h index 469c5a43c..c1a2b7c41 100644 --- a/examples/Importers/ImportURDFDemo/BulletUrdfImporter.h +++ b/examples/Importers/ImportURDFDemo/BulletUrdfImporter.h @@ -46,7 +46,7 @@ public: virtual bool getRootTransformInWorld(btTransform& rootTransformInWorld) const; - virtual int convertLinkVisualShapes(int linkIndex, const char* pathPrefix, const btTransform& localInertiaFrame, class btCollisionShape* colShape) const; + virtual int convertLinkVisualShapes2(int linkIndex, const char* pathPrefix, const btTransform& inertialFrame, class btCollisionShape* colShape) const; ///todo(erwincoumans) refactor this convertLinkCollisionShapes/memory allocation diff --git a/examples/Importers/ImportURDFDemo/URDF2Bullet.cpp b/examples/Importers/ImportURDFDemo/URDF2Bullet.cpp index 140cce62c..e3deca4cd 100644 --- a/examples/Importers/ImportURDFDemo/URDF2Bullet.cpp +++ b/examples/Importers/ImportURDFDemo/URDF2Bullet.cpp @@ -213,7 +213,7 @@ void ConvertURDF2BulletInternal(const URDFImporterInterface& u2b, MultiBodyCreat btCompoundShape* compoundShape = u2b.convertLinkCollisionShapes(urdfLinkIndex,pathPrefix,localInertialFrame); - int graphicsIndex = u2b.convertLinkVisualShapes(urdfLinkIndex,pathPrefix,localInertialFrame,compoundShape); + int graphicsIndex = u2b.convertLinkVisualShapes2(urdfLinkIndex,pathPrefix,localInertialFrame,compoundShape); if (compoundShape) diff --git a/examples/Importers/ImportURDFDemo/URDFImporterInterface.h b/examples/Importers/ImportURDFDemo/URDFImporterInterface.h index 25b1769dd..a5203d651 100644 --- a/examples/Importers/ImportURDFDemo/URDFImporterInterface.h +++ b/examples/Importers/ImportURDFDemo/URDFImporterInterface.h @@ -42,7 +42,9 @@ public: virtual bool getRootTransformInWorld(btTransform& rootTransformInWorld) const =0; ///quick hack: need to rethink the API/dependencies of this - virtual int convertLinkVisualShapes(int linkIndex, const char* pathPrefix, const btTransform& inertialFrame, class btCollisionShape* colShape) const = 0; + virtual int convertLinkVisualShapes(int linkIndex, const char* pathPrefix, const btTransform& inertialFrame) const { return -1;} + + virtual int convertLinkVisualShapes2(int linkIndex, const char* pathPrefix, const btTransform& inertialFrame, class btCollisionShape* colShape) const = 0; virtual class btCompoundShape* convertLinkCollisionShapes(int linkIndex, const char* pathPrefix, const btTransform& localInertiaFrame) const = 0; }; From 42d3f42b9f50704532594040380564fe4147e0e6 Mon Sep 17 00:00:00 2001 From: Erwin Coumans Date: Tue, 24 May 2016 09:09:37 -0700 Subject: [PATCH 3/3] re-add CMakeLists.txt accidently removed --- CMakeLists.txt | 307 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 307 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..b34c7f996 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,307 @@ +cmake_minimum_required(VERSION 2.4.3) +set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true) + +#this line has to appear before 'PROJECT' in order to be able to disable incremental linking +SET(MSVC_INCREMENTAL_DEFAULT ON) + +PROJECT(BULLET_PHYSICS) +SET(BULLET_VERSION 2.83) + +IF(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +ENDIF(COMMAND cmake_policy) + + +IF (NOT CMAKE_BUILD_TYPE) +# SET(CMAKE_BUILD_TYPE "Debug") + SET(CMAKE_BUILD_TYPE "Release") +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}) + +OPTION(USE_DOUBLE_PRECISION "Use double precision" OFF) +OPTION(USE_GRAPHICAL_BENCHMARK "Use Graphical Benchmark" ON) +OPTION(BUILD_SHARED_LIBS "Use shared libraries" OFF) + +OPTION(USE_MSVC_INCREMENTAL_LINKING "Use MSVC Incremental Linking" OFF) +OPTION(USE_CUSTOM_VECTOR_MATH "Use custom vectormath library" OFF) + +#statically linking VC++ isn't supported for WindowsPhone/WindowsStore +IF (CMAKE_SYSTEM_NAME STREQUAL WindowsPhone OR CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" ON) +ELSE () + OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" OFF) +ENDIF (CMAKE_SYSTEM_NAME STREQUAL WindowsPhone OR CMAKE_SYSTEM_NAME STREQUAL WindowsStore) + +#SET(CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /INCREMENTAL:NO") +#SET(CMAKE_EXE_LINKER_FLAGS "/STACK:10000000 /INCREMENTAL:NO") + +#MESSAGE("MSVC_INCREMENTAL_YES_FLAG"+${MSVC_INCREMENTAL_YES_FLAG}) + + +IF(MSVC) + IF (NOT USE_MSVC_INCREMENTAL_LINKING) + #MESSAGE("MSVC_INCREMENTAL_DEFAULT"+${MSVC_INCREMENTAL_DEFAULT}) + SET( MSVC_INCREMENTAL_YES_FLAG "/INCREMENTAL:NO") + + STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags ${CMAKE_EXE_LINKER_FLAGS_DEBUG}) + SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/INCREMENTAL:NO ${replacementFlags}" ) + MESSAGE("CMAKE_EXE_LINKER_FLAGS_DEBUG=${CMAKE_EXE_LINKER_FLAGS_DEBUG}") + + STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags2 ${CMAKE_EXE_LINKER_FLAGS}) + + SET(CMAKE_EXE_LINKER_FLAGS ${replacementFlag2}) + STRING(REPLACE "INCREMENTAL:YES" "" replacementFlags3 "${CMAKE_EXTRA_LINK_FLAGS}") + + SET(CMAKE_EXTRA_LINK_FLAGS ${replacementFlag3}) + + + STRING(REPLACE "INCREMENTAL:YES" "INCREMENTAL:NO" replacementFlags3 "${CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO}") + SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO ${replacementFlags3}) + SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO "/INCREMENTAL:NO ${replacementFlags3}" ) + + ENDIF (NOT USE_MSVC_INCREMENTAL_LINKING) + + IF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL) + #We statically link to reduce dependancies + FOREACH(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO ) + IF(${flag_var} MATCHES "/MD") + STRING(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + ENDIF(${flag_var} MATCHES "/MD") + IF(${flag_var} MATCHES "/MDd") + STRING(REGEX REPLACE "/MDd" "/MTd" ${flag_var} "${${flag_var}}") + ENDIF(${flag_var} MATCHES "/MDd") + ENDFOREACH(flag_var) + ENDIF (NOT USE_MSVC_RUNTIME_LIBRARY_DLL) + + IF (CMAKE_CL_64) + ADD_DEFINITIONS(-D_WIN64) + ELSE() + OPTION(USE_MSVC_SSE "Use MSVC /arch:sse option" ON) + IF (USE_MSVC_SSE) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE") + ENDIF() + ENDIF() + OPTION(USE_MSVC_FAST_FLOATINGPOINT "Use MSVC /fp:fast option" ON) + IF (USE_MSVC_FAST_FLOATINGPOINT) + SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /fp:fast") + ENDIF() +ENDIF(MSVC) + + + +IF (WIN32) +OPTION(INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES "Create MSVC projectfiles that can be distributed" OFF) + +IF (INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) + SET (LIBRARY_OUTPUT_PATH ${BULLET_PHYSICS_SOURCE_DIR}/lib CACHE PATH "Single output directory for building all libraries.") + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BULLET_PHYSICS_SOURCE_DIR}) + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${BULLET_PHYSICS_SOURCE_DIR}) + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${BULLET_PHYSICS_SOURCE_DIR}) + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${BULLET_PHYSICS_SOURCE_DIR}) + SET( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${BULLET_PHYSICS_SOURCE_DIR}) +ELSE() + SET (LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib CACHE PATH "Single output directory for building all libraries.") +ENDIF() + + + +OPTION(INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES "Create MSVC projectfiles with relative paths" OFF) +OPTION(INTERNAL_ADD_POSTFIX_EXECUTABLE_NAMES "Add MSVC postfix for executable names (_Debug)" OFF) + +SET(CMAKE_DEBUG_POSTFIX "_Debug" CACHE STRING "Adds a postfix for debug-built libraries.") +SET(CMAKE_MINSIZEREL_POSTFIX "_MinsizeRel" CACHE STRING "Adds a postfix for MinsizeRelease-built libraries.") +SET(CMAKE_RELWITHDEBINFO_POSTFIX "_RelWithDebugInfo" CACHE STRING "Adds a postfix for ReleaseWithDebug-built libraries.") + + + + + +IF (INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) +SET(CMAKE_SUPPRESS_REGENERATION 1) +SET(CMAKE_USE_RELATIVE_PATHS 1) +ENDIF(INTERNAL_CREATE_MSVC_RELATIVE_PATH_PROJECTFILES) + +ENDIF (WIN32) + + +OPTION(BUILD_CPU_DEMOS "Build original Bullet CPU examples" ON) + + + +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) +SET( BULLET_DOUBLE_DEF "-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_CRT_SECURE_NO_WARNINGS ) +ADD_DEFINITIONS( -D_CRT_SECURE_NO_DEPRECATE ) +ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS ) + +IF (USE_GLUT AND MSVC) + string (REPLACE "/D_WINDOWS" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + remove_definitions(-D_WINDOWS ) +ENDIF() + + + +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) + + +#FIND_PACKAGE(GLU) + + + + +IF (APPLE) + FIND_LIBRARY(COCOA_LIBRARY Cocoa) +ENDIF() + +OPTION(BUILD_BULLET3 "Set when you want to build Bullet 3" ON) +OPTION(BUILD_PYBULLET "Set when you want to build pybullet (experimental Python bindings for Bullet)" OFF) + +IF(BUILD_PYBULLET) + IF(WIN32) + FIND_PACKAGE(PythonLibs 3.4 REQUIRED) + SET(BUILD_SHARED_LIBS OFF CACHE BOOL "Shared Libs" FORCE) + ELSE(WIN32) + FIND_PACKAGE(PythonLibs 2.7 REQUIRED) + SET(BUILD_SHARED_LIBS ON CACHE BOOL "Shared Libs" FORCE) + ENDIF(WIN32) +ENDIF(BUILD_PYBULLET) + +IF(BUILD_BULLET3) + IF(APPLE) + MESSAGE("Mac OSX Version is ${_CURRENT_OSX_VERSION}") + IF(_CURRENT_OSX_VERSION VERSION_LESS 10.9) + MESSAGE("Mac OSX below 10.9 has no OpenGL 3 support so please disable the BUILD_OPENGL3_DEMOS option") + #unset(BUILD_OPENGL3_DEMOS CACHE) + + OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build the OpenGL3+ demos" OFF) + ELSE() + OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build the OpenGL3+ demos" ON) + ENDIF() + ELSE() + OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build Bullet 3 OpenGL3+ demos" ON) + ENDIF() +ELSE(BUILD_BULLET3) + unset(BUILD_OPENGL3_DEMOS CACHE) + OPTION(BUILD_OPENGL3_DEMOS "Set when you want to build Bullet 3 OpenGL3+ demos" OFF) +ENDIF(BUILD_BULLET3) +IF(BUILD_OPENGL3_DEMOS) + IF(EXISTS ${BULLET_PHYSICS_SOURCE_DIR}/Demos3 AND IS_DIRECTORY ${BULLET_PHYSICS_SOURCE_DIR}/Demos3) + SUBDIRS(Demos3) + ENDIF() +ELSE() + ADD_DEFINITIONS(-DNO_OPENGL3) +ENDIF(BUILD_OPENGL3_DEMOS) + +OPTION(BUILD_BULLET2_DEMOS "Set when you want to build the Bullet 2 demos" ON) +IF(BUILD_BULLET2_DEMOS) + + IF(EXISTS ${BULLET_PHYSICS_SOURCE_DIR}/examples AND IS_DIRECTORY ${BULLET_PHYSICS_SOURCE_DIR}/examples) + SUBDIRS(examples) + ENDIF() +ENDIF(BUILD_BULLET2_DEMOS) + + + +OPTION(BUILD_EXTRAS "Set when you want to build the extras" ON) +IF(BUILD_EXTRAS) + SUBDIRS(Extras) +ENDIF(BUILD_EXTRAS) + + +#Maya Dynamica plugin is moved to http://dynamica.googlecode.com + +SUBDIRS(src) + +IF("${CMAKE_GENERATOR}" MATCHES "Unix Makefiles") + OPTION(INSTALL_LIBS "Set when you want to install libraries" ON) +ELSE() + IF(APPLE AND FRAMEWORK) + OPTION(INSTALL_LIBS "Set when you want to install libraries" ON) + ELSE() +#by default, don't enable the 'INSTALL' option for Xcode and MSVC projectfiles + OPTION(INSTALL_LIBS "Set when you want to install libraries" OFF) + ENDIF() +ENDIF() + +IF(INSTALL_LIBS) + SET (LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) + SET (LIB_DESTINATION "lib${LIB_SUFFIX}" CACHE STRING "Library directory name") + ## the following are directories where stuff will be installed to + SET(INCLUDE_INSTALL_DIR "include/bullet/" CACHE PATH "The subdirectory to the header prefix") + SET(PKGCONFIG_INSTALL_PREFIX "lib${LIB_SUFFIX}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files") + IF(NOT MSVC) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/bullet.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc @ONLY) + INSTALL( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/bullet.pc + DESTINATION + ${PKGCONFIG_INSTALL_PREFIX}) + ENDIF(NOT MSVC) +ENDIF(INSTALL_LIBS) + +#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) + +OPTION(BUILD_UNIT_TESTS "Build Unit Tests" ON) + +IF (BUILD_UNIT_TESTS) + ENABLE_TESTING() + SUBDIRS(test) +ENDIF() + +set (BULLET_CONFIG_CMAKE_PATH lib${LIB_SUFFIX}/cmake/bullet ) +list (APPEND BULLET_LIBRARIES LinearMath) +IF(BUILD_BULLET3) + list (APPEND BULLET_LIBRARIES BulletInverseDynamics) +ENDIF(BUILD_BULLET3) +list (APPEND BULLET_LIBRARIES BulletCollision) +list (APPEND BULLET_LIBRARIES BulletDynamics) +list (APPEND BULLET_LIBRARIES BulletSoftBody) +set (BULLET_USE_FILE ${BULLET_CONFIG_CMAKE_PATH}/UseBullet.cmake) +configure_file ( ${CMAKE_CURRENT_SOURCE_DIR}/BulletConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/BulletConfig.cmake + @ONLY ESCAPE_QUOTES + ) +install ( FILES ${CMAKE_CURRENT_SOURCE_DIR}/UseBullet.cmake + ${CMAKE_CURRENT_BINARY_DIR}/BulletConfig.cmake + DESTINATION ${BULLET_CONFIG_CMAKE_PATH} + )