diff --git a/CMakeLists.txt b/CMakeLists.txt index ab997bec2..574711312 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,7 @@ 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}) @@ -119,6 +120,10 @@ 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) diff --git a/Extras/CMakeLists.txt b/Extras/CMakeLists.txt index 93f551273..cf85cdf08 100644 --- a/Extras/CMakeLists.txt +++ b/Extras/CMakeLists.txt @@ -1 +1,5 @@ SUBDIRS( Serialize ConvexDecomposition GIMPACTUtils ) + +IF (BUILD_BULLET_MAYA_DYNAMICA_PLUGIN) +SUBDIRS(MayaPlugin) +ENDIF(BUILD_BULLET_MAYA_DYNAMICA_PLUGIN) diff --git a/Extras/MayaPlugin/CMakeLists.txt b/Extras/MayaPlugin/CMakeLists.txt new file mode 100644 index 000000000..ef164bd23 --- /dev/null +++ b/Extras/MayaPlugin/CMakeLists.txt @@ -0,0 +1,80 @@ +CMAKE_MINIMUM_REQUIRED(VERSION 2.4) + +#PROJECT(MayaPlugin) +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +endif(COMMAND cmake_policy) + + + +SET(CMAKE_CXX_WARNING_LEVEL 4) + +#SET (CMAKE_VERBOSE_MAKEFILE TRUE) +FIND_PATH(MAYA_BASE_DIR include/maya/MFn.h PATH /usr/autodesk/maya2008-x64 + /usr/autodesk/maya "C:/Program Files/Autodesk/Maya2008" "C:/Program Files/Autodesk/Maya2009") + +SET(MAYA_INC_DIR ${MAYA_BASE_DIR}/include) +SET(MAYA_LIB_DIR ${MAYA_BASE_DIR}/lib) + +INCLUDE_DIRECTORIES(${MAYA_INC_DIR} ${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Extras/MayaPlugin ) +LINK_DIRECTORIES(${MAYA_LIB_DIR}) + +ADD_DEFINITIONS(-D_BOOL) +ADD_DEFINITIONS(-DREQUIRE_IOSTREAM) + +SET(TARGET_H + box_shape.h bt_sphere_shape.h dSolverNode.h rigid_body_impl.h + box_shape_impl.h collision_shape.h mathUtils.h rigidBodyNode.h + bt_box_shape.h collision_shape_impl.h mayaUtils.h solver.h + bt_collision_shape.h collisionShapeNode.h mesh_shape.h solver_impl.h + bt_convex_hull_shape.h convex_hull_shape.h mesh_shape_impl.h sphere_shape.h + bt_mesh_shape.h convex_hull_shape_impl.h plane_shape.h sphere_shape_impl.h + bt_plane_shape.h dRigidBodyArrayCmd.h plane_shape_impl.h + bt_rigid_body.h dRigidBodyCmd.h rigidBodyArrayNode.h + bt_solver.h dSolverCmd.h rigid_body.h pdbIO.h + shared_ptr.h drawUtils.h +) + +SET(TARGET_SRC + pluginMain.cpp bulletExport.cpp rigidBodyNode.cpp rigidBodyArrayNode.cpp collisionShapeNode.cpp + solver.cpp bt_solver.cpp dSolverNode.cpp dSolverCmd.cpp dRigidBodyCmd.cpp dRigidBodyArrayCmd.cpp + pdbIO.cpp drawUtils.cpp constraint/dHingeConstraintCmd.cpp constraint/dSliderConstraintCmd.cpp + constraint/hingeConstraintNode.cpp constraint/sixdofConstraintNode.cpp constraint/dNailConstraintCmd.cpp + constraint/dsixdofConstraintCmd.cpp constraint/nailConstraintNode.cpp constraint/sliderConstraintNode.cpp +) + +ADD_LIBRARY(BulletMayaDynamica SHARED ${TARGET_H} ${TARGET_SRC}) + + + +IF (WIN32) + SET(MAYA_LIBS OpenMaya Foundation OpenMayaAnim OpenMayaFX OpenMayaUI) + IF (CMAKE_CL_64) + SET_TARGET_PROPERTIES(BulletMayaDynamica PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS /MACHINE:X64") + ELSE (CMAKE_CL_64) + SET_TARGET_PROPERTIES(BulletMayaDynamica PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS /MACHINE:X86") + ENDIF (CMAKE_CL_64) + SET_TARGET_PROPERTIES(BulletMayaDynamica PROPERTIES SUFFIX ".mll") + + LINK_DIRECTORIES(${MAYA_LIB_DIR}) + TARGET_LINK_LIBRARIES(BulletMayaDynamica BulletDynamics BulletCollision LinearMath ${MAYA_LIBS} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}) + SET(CMAKE_SHARED_LINKER_FLAGS "/export:initializePlugin /export:uninitializePlugin") +ELSE (WIN32) + SET(MAYA_LIBS OpenMayalib Foundation OpenMayaAnim OpenMayaFX OpenMayaUI) + LINK_DIRECTORIES(${MAYA_LIB_DIR}) + TARGET_LINK_LIBRARIES(BulletMayaDynamica BulletDynamics BulletCollision LinearMath ${MAYA_LIBS} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY}) +ENDIF(WIN32) + +#OPTION(BUILD_STANDALONE "Build a standalone exporter program") +# +#IF (BUILD_STANDALONE) +# IF (WIN32) +# +# ELSE (WIN32) +# SET(MAYA_LIBS OpenMayalib Foundation OpenMayaAnim) +# ADD_EXECUTABLE(me ${TARGET_H} ${TARGET_SRC} standalone.cpp) +# LINK_DIRECTORIES(${MAYA_LIB_DIR}) +# TARGET_LINK_LIBRARIES(me ${MAYA_LIBS} pthread m imf) +# ENDIF (WIN32) +#ENDIF (BUILD_STANDALONE) + diff --git a/Extras/MayaPlugin/bullet.nsi b/Extras/MayaPlugin/bullet.nsi index 1d6dd0bb3..2a77b5c89 100644 --- a/Extras/MayaPlugin/bullet.nsi +++ b/Extras/MayaPlugin/bullet.nsi @@ -8,14 +8,14 @@ ;-------------------------------- ; The name of the installer -Name "Dynamica Bullet 2.75 physics plugin for Maya 2008" +Name "Dynamica Bullet 2.76 physics plugin for Maya 2009" ; The file to write -OutFile "DynamicaForMaya2008_32bit.exe" +OutFile "DynamicaForMaya2009_64bit.exe" ; The default installation directory -InstallDir $PROGRAMFILES\DynamicaBullet2.75\ +InstallDir $PROGRAMFILES\DynamicaBullet2.76\ UninstPage uninstConfirm UninstPage instfiles @@ -45,8 +45,11 @@ SetOutPath "$INSTDIR\icons" File "icons\*.*" SetOutPath "$INSTDIR\plug-ins" File "BulletMayaPlugin.mll" -File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcp80.dll" -File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcr80.dll" +;File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcp80.dll" +;File "C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86\Microsoft.VC80.CRT\msvcr80.dll" + +File "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcp90.dll" +File "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\redist\x86\Microsoft.VC90.CRT\msvcr90.dll" SetOutPath "$INSTDIR\scripts" File "scripts\*.*" diff --git a/Extras/MayaPlugin/collisionShapeNode.cpp b/Extras/MayaPlugin/collisionShapeNode.cpp index 66f7fd12c..d9218f886 100644 --- a/Extras/MayaPlugin/collisionShapeNode.cpp +++ b/Extras/MayaPlugin/collisionShapeNode.cpp @@ -19,7 +19,6 @@ not be misrepresented as being the original software. Written by: Nicola Candussi */ - //collisionShapeNode.cpp #include