Files
bullet3/Extras/MayaPlugin/CMakeLists.txt
erwin.coumans 729a883b71 attempt to let Maya plugin build under Linux using cmake
Thanks redpawfx for the feedback, see http://code.google.com/p/bullet/issues/detail?id=221

improvements in cmake (disable this incremental linking)
2010-02-16 04:30:53 +00:00

96 lines
3.9 KiB
CMake

CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
#PROJECT(MayaPlugin)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif(COMMAND cmake_policy)
IF ( UNIX AND NOT APPLE )
ADD_DEFINITIONS(-DLINUX)
ENDIF()
SET(CMAKE_CXX_WARNING_LEVEL 4)
#SET (CMAKE_VERBOSE_MAKEFILE TRUE)
FIND_PATH(MAYA_BASE_DIR include/maya/MFn.h PATH
/usr/autodesk/maya2009-x64
/usr/autodesk/maya2008-x64
/usr/autodesk/maya
"C:/Program Files/Autodesk/Maya2008"
"C:/Program Files/Autodesk/Maya2009"
"C:/Program Files/Autodesk/Maya8.5"
"C:/Program Files (x86)/Autodesk/Maya2010"
)
IF (MAYA_BASE_DIR)
message ("Maya found at location " ${MAYA_BASE_DIR})
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(BulletMayaPlugin SHARED ${TARGET_H} ${TARGET_SRC})
IF (WIN32)
SET(MAYA_LIBS OpenMaya Foundation OpenMayaAnim OpenMayaFX OpenMayaUI)
IF (CMAKE_CL_64)
SET_TARGET_PROPERTIES(BulletMayaPlugin PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS /MACHINE:X64")
ELSE (CMAKE_CL_64)
SET_TARGET_PROPERTIES(BulletMayaPlugin PROPERTIES LINK_FLAGS "/SUBSYSTEM:WINDOWS /MACHINE:X86")
ENDIF (CMAKE_CL_64)
SET_TARGET_PROPERTIES(BulletMayaPlugin PROPERTIES SUFFIX ".mll")
LINK_DIRECTORIES(${MAYA_LIB_DIR})
TARGET_LINK_LIBRARIES(BulletMayaPlugin 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(BulletMayaPlugin 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)
ELSE()
MESSAGE("Maya not found, try adding your Maya path in Bullet/Extras/MayaPlugin/CMakeListst.txt under FIND_PATH(MAYA_BASE_DIR ...")
ENDIF()