CMakeLists.txt 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. INCLUDE_DIRECTORIES(
  2. ${BULLET_PHYSICS_SOURCE_DIR}/src
  3. ${BULLET_PHYSICS_SOURCE_DIR}/examples
  4. ${BULLET_PHYSICS_SOURCE_DIR}/examples/SharedMemory
  5. ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs
  6. ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/enet/include
  7. ${BULLET_PHYSICS_SOURCE_DIR}/examples/ThirdPartyLibs/clsocket/src
  8. )
  9. ADD_DEFINITIONS(-DSTATIC_LINK_SPD_PLUGIN)
  10. SET(BulletRobotics_INCLUDES
  11. ../../examples/CommonInterfaces/Common2dCanvasInterface.h
  12. ../../examples/CommonInterfaces/CommonCallbacks.h
  13. ../../examples/CommonInterfaces/CommonCameraInterface.h
  14. ../../examples/CommonInterfaces/CommonExampleInterface.h
  15. ../../examples/CommonInterfaces/CommonFileIOInterface.h
  16. ../../examples/CommonInterfaces/CommonGraphicsAppInterface.h
  17. ../../examples/CommonInterfaces/CommonGUIHelperInterface.h
  18. ../../examples/CommonInterfaces/CommonMultiBodyBase.h
  19. ../../examples/CommonInterfaces/CommonParameterInterface.h
  20. ../../examples/CommonInterfaces/CommonRenderInterface.h
  21. ../../examples/CommonInterfaces/CommonRigidBodyBase.h
  22. ../../examples/CommonInterfaces/CommonWindowInterface.h
  23. ../../examples/OpenGLWindow/SimpleCamera.h
  24. ../../examples/TinyRenderer/geometry.h
  25. ../../examples/TinyRenderer/model.h
  26. ../../examples/TinyRenderer/tgaimage.h
  27. ../../examples/TinyRenderer/our_gl.h
  28. ../../examples/TinyRenderer/TinyRenderer.h
  29. ../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.h
  30. ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.h
  31. ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.h
  32. ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.h
  33. ../../examples/SharedMemory/IKTrajectoryHelper.h
  34. ../../examples/SharedMemory/plugins/tinyRendererPlugin/tinyRendererPlugin.h
  35. ../../examples/SharedMemory/plugins/tinyRendererPlugin/TinyRendererVisualShapeConverter.h
  36. ../../examples/SharedMemory/InProcessMemory.h
  37. ../../examples/SharedMemory/PhysicsServer.h
  38. ../../examples/SharedMemory/PhysicsClient.h
  39. ../../examples/SharedMemory/PhysicsServerSharedMemory.h
  40. ../../examples/SharedMemory/PhysicsDirect.h
  41. ../../examples/SharedMemory/PhysicsDirectC_API.h
  42. ../../examples/SharedMemory/PhysicsServerCommandProcessor.h
  43. ../../examples/SharedMemory/b3PluginManager.h
  44. ../../examples/SharedMemory/PhysicsClientSharedMemory.h
  45. ../../examples/SharedMemory/PhysicsClientSharedMemory_C_API.h
  46. ../../examples/SharedMemory/PhysicsClientC_API.h
  47. ../../examples/SharedMemory/SharedMemoryPublic.h
  48. ../../examples/SharedMemory/Win32SharedMemory.h
  49. ../../examples/SharedMemory/PosixSharedMemory.h
  50. ../../examples/Utils/b3ResourcePath.h
  51. ../../examples/Utils/RobotLoggingUtil.h
  52. ../../examples/Utils/b3Clock.h
  53. ../../examples/Utils/b3ResourcePath.h
  54. ../../examples/Utils/ChromeTraceUtil.h
  55. ../../examples/Utils/b3ERPCFMHelper.hpp
  56. ../../examples/Utils/b3ReferenceFrameHelper.hpp
  57. ../../examples/ThirdPartyLibs/tinyxml2/tinyxml2.h
  58. ../../examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.h
  59. ../../examples/ThirdPartyLibs/stb_image/stb_image.h
  60. ../../examples/ThirdPartyLibs/BussIK/Jacobian.h
  61. ../../examples/ThirdPartyLibs/BussIK/LinearR2.h
  62. ../../examples/ThirdPartyLibs/BussIK/LinearR3.h
  63. ../../examples/ThirdPartyLibs/BussIK/LinearR4.h
  64. ../../examples/ThirdPartyLibs/BussIK/MatrixRmn.h
  65. ../../examples/ThirdPartyLibs/BussIK/Node.h
  66. ../../examples/ThirdPartyLibs/BussIK/Tree.h
  67. ../../examples/ThirdPartyLibs/BussIK/VectorRn.h
  68. ../../examples/Importers/ImportColladaDemo/LoadMeshFromCollada.h
  69. ../../examples/Importers/ImportObjDemo/LoadMeshFromObj.h
  70. ../../examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.h
  71. ../../examples/Importers/ImportMJCFDemo/BulletMJCFImporter.h
  72. ../../examples/Importers/ImportURDFDemo/BulletUrdfImporter.h
  73. ../../examples/Importers/ImportURDFDemo/MyMultiBodyCreator.h
  74. ../../examples/Importers/ImportURDFDemo/URDF2Bullet.h
  75. ../../examples/Importers/ImportURDFDemo/UrdfParser.h
  76. ../../examples/Importers/ImportURDFDemo/urdfStringSplit.h
  77. ../../examples/Importers/ImportURDFDemo/URDFImporterInterface.h
  78. ../../examples/Importers/ImportURDFDemo/URDFJointTypes.h
  79. ../../examples/Importers/ImportURDFDemo/SDFAudioTypes.h
  80. ../../examples/Importers/ImportURDFDemo/UrdfRenderingInterface.h
  81. ../../examples/Importers/ImportURDFDemo/MultiBodyCreationInterface.h
  82. ../../examples/Importers/ImportMeshUtility/b3ImportMeshUtility.h
  83. ../../examples/MultiThreading/b3PosixThreadSupport.h
  84. ../../examples/MultiThreading/b3Win32ThreadSupport.h
  85. ../../examples/MultiThreading/b3ThreadSupportInterface.h
  86. )
  87. SET(BulletRobotics_SRCS ${BulletRobotics_INCLUDES}
  88. ../../examples/SharedMemory/plugins/stablePDPlugin/SpAlg.cpp
  89. ../../examples/SharedMemory/plugins/stablePDPlugin/SpAlg.h
  90. ../../examples/SharedMemory/plugins/stablePDPlugin/Shape.cpp
  91. ../../examples/SharedMemory/plugins/stablePDPlugin/Shape.h
  92. ../../examples/SharedMemory/plugins/stablePDPlugin/RBDUtil.cpp
  93. ../../examples/SharedMemory/plugins/stablePDPlugin/RBDUtil.h
  94. ../../examples/SharedMemory/plugins/stablePDPlugin/RBDModel.cpp
  95. ../../examples/SharedMemory/plugins/stablePDPlugin/RBDModel.h
  96. ../../examples/SharedMemory/plugins/stablePDPlugin/MathUtil.cpp
  97. ../../examples/SharedMemory/plugins/stablePDPlugin/MathUtil.h
  98. ../../examples/SharedMemory/plugins/stablePDPlugin/KinTree.cpp
  99. ../../examples/SharedMemory/plugins/stablePDPlugin/KinTree.h
  100. ../../examples/SharedMemory/plugins/stablePDPlugin/BulletConversion.cpp
  101. ../../examples/SharedMemory/plugins/stablePDPlugin/BulletConversion.h
  102. ../../examples/OpenGLWindow/SimpleCamera.cpp
  103. ../../examples/TinyRenderer/geometry.cpp
  104. ../../examples/TinyRenderer/model.cpp
  105. ../../examples/TinyRenderer/tgaimage.cpp
  106. ../../examples/TinyRenderer/our_gl.cpp
  107. ../../examples/TinyRenderer/TinyRenderer.cpp
  108. ../../examples/SharedMemory/plugins/collisionFilterPlugin/collisionFilterPlugin.cpp
  109. ../../examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp
  110. ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoGUI.cpp
  111. ../../examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp
  112. ../../examples/SharedMemory/IKTrajectoryHelper.cpp
  113. ../../examples/SharedMemory/plugins/tinyRendererPlugin/tinyRendererPlugin.cpp
  114. ../../examples/SharedMemory/plugins/tinyRendererPlugin/TinyRendererVisualShapeConverter.cpp
  115. ../../examples/SharedMemory/InProcessMemory.cpp
  116. ../../examples/SharedMemory/PhysicsClient.cpp
  117. ../../examples/SharedMemory/PhysicsServer.cpp
  118. ../../examples/SharedMemory/PhysicsServerSharedMemory.cpp
  119. ../../examples/SharedMemory/PhysicsDirect.cpp
  120. ../../examples/SharedMemory/PhysicsDirectC_API.cpp
  121. ../../examples/SharedMemory/PhysicsServerCommandProcessor.cpp
  122. ../../examples/SharedMemory/b3PluginManager.cpp
  123. ../../examples/SharedMemory/PhysicsClientSharedMemory.cpp
  124. ../../examples/SharedMemory/PhysicsClientSharedMemory_C_API.cpp
  125. ../../examples/SharedMemory/PhysicsClientC_API.cpp
  126. ../../examples/SharedMemory/Win32SharedMemory.cpp
  127. ../../examples/SharedMemory/PosixSharedMemory.cpp
  128. ../../examples/Utils/b3ResourcePath.cpp
  129. ../../examples/Utils/RobotLoggingUtil.cpp
  130. ../../examples/Utils/b3Clock.cpp
  131. ../../examples/Utils/b3ResourcePath.cpp
  132. ../../examples/Utils/ChromeTraceUtil.cpp
  133. ../../examples/ThirdPartyLibs/tinyxml2/tinyxml2.cpp
  134. ../../examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.cpp
  135. ../../examples/ThirdPartyLibs/stb_image/stb_image.cpp
  136. ../../examples/ThirdPartyLibs/BussIK/Jacobian.cpp
  137. ../../examples/ThirdPartyLibs/BussIK/LinearR2.cpp
  138. ../../examples/ThirdPartyLibs/BussIK/LinearR3.cpp
  139. ../../examples/ThirdPartyLibs/BussIK/LinearR4.cpp
  140. ../../examples/ThirdPartyLibs/BussIK/MatrixRmn.cpp
  141. ../../examples/ThirdPartyLibs/BussIK/Misc.cpp
  142. ../../examples/ThirdPartyLibs/BussIK/Node.cpp
  143. ../../examples/ThirdPartyLibs/BussIK/Tree.cpp
  144. ../../examples/ThirdPartyLibs/BussIK/VectorRn.cpp
  145. ../../examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp
  146. ../../examples/Importers/ImportObjDemo/LoadMeshFromObj.cpp
  147. ../../examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp
  148. ../../examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp
  149. ../../examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp
  150. ../../examples/Importers/ImportURDFDemo/MyMultiBodyCreator.cpp
  151. ../../examples/Importers/ImportURDFDemo/URDF2Bullet.cpp
  152. ../../examples/Importers/ImportURDFDemo/UrdfParser.cpp
  153. ../../examples/Importers/ImportURDFDemo/urdfStringSplit.cpp
  154. ../../examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp
  155. ../../examples/MultiThreading/b3PosixThreadSupport.cpp
  156. ../../examples/MultiThreading/b3Win32ThreadSupport.cpp
  157. ../../examples/MultiThreading/b3ThreadSupportInterface.cpp
  158. )
  159. IF(ENABLE_VHACD)
  160. ADD_DEFINITIONS(-DBT_ENABLE_VHACD)
  161. SET(BulletRobotics_SRCS ${BulletRobotics_SRCS}
  162. ../../Extras/VHACD/test/src/main_vhacd.cpp
  163. ../../Extras/VHACD/src/VHACD.cpp
  164. ../../Extras/VHACD/src/vhacdICHull.cpp
  165. ../../Extras/VHACD/src/vhacdManifoldMesh.cpp
  166. ../../Extras/VHACD/src/vhacdMesh.cpp
  167. ../../Extras/VHACD/src/vhacdVolume.cpp
  168. )
  169. INCLUDE_DIRECTORIES(
  170. ../../Extras/VHACD/inc
  171. ../../Extras/VHACD/public
  172. )
  173. ENDIF(ENABLE_VHACD)
  174. IF(BUILD_CLSOCKET)
  175. ADD_DEFINITIONS(-DBT_ENABLE_CLSOCKET)
  176. ENDIF(BUILD_CLSOCKET)
  177. IF(WIN32)
  178. IF(BUILD_ENET)
  179. ADD_DEFINITIONS(-DWIN32 -DBT_ENABLE_ENET)
  180. ENDIF(BUILD_ENET)
  181. IF(BUILD_CLSOCKET)
  182. ADD_DEFINITIONS(-DWIN32)
  183. ENDIF(BUILD_CLSOCKET)
  184. ELSE(WIN32)
  185. IF(BUILD_ENET)
  186. ADD_DEFINITIONS(-DHAS_SOCKLEN_T -DBT_ENABLE_ENET)
  187. ENDIF(BUILD_ENET)
  188. IF(BUILD_CLSOCKET)
  189. ADD_DEFINITIONS(${OSDEF})
  190. ENDIF(BUILD_CLSOCKET)
  191. IF(NOT APPLE)
  192. FIND_PACKAGE(Threads)
  193. LINK_LIBRARIES( ${CMAKE_THREAD_LIBS_INIT} ${DL} )
  194. ENDIF(NOT APPLE)
  195. ENDIF(WIN32)
  196. IF(BUILD_ENET)
  197. set(BulletRobotics_ENET_INCLUDES
  198. ../../examples/SharedMemory/PhysicsClientUDP.h
  199. ../../examples/SharedMemory/PhysicsClientUDP_C_API.h
  200. ../../examples/ThirdPartyLibs/enet/include/enet/win32.h
  201. ../../examples/ThirdPartyLibs/enet/include/enet/unix.h
  202. ../../examples/ThirdPartyLibs/enet/include/enet/callbacks.h
  203. ../../examples/ThirdPartyLibs/enet/include/enet/list.h
  204. ../../examples/ThirdPartyLibs/enet/include/enet/protocol.h
  205. )
  206. set(BulletRobotics_ENET_SRCS
  207. ../../examples/SharedMemory/PhysicsClientUDP.cpp
  208. ../../examples/SharedMemory/PhysicsClientUDP_C_API.cpp
  209. ../../examples/ThirdPartyLibs/enet/win32.c
  210. ../../examples/ThirdPartyLibs/enet/unix.c
  211. ../../examples/ThirdPartyLibs/enet/callbacks.c
  212. ../../examples/ThirdPartyLibs/enet/compress.c
  213. ../../examples/ThirdPartyLibs/enet/host.c
  214. ../../examples/ThirdPartyLibs/enet/list.c
  215. ../../examples/ThirdPartyLibs/enet/packet.c
  216. ../../examples/ThirdPartyLibs/enet/peer.c
  217. ../../examples/ThirdPartyLibs/enet/protocol.c
  218. )
  219. set(BulletRobotics_INCLUDES
  220. ${BulletRobotics_INCLUDES}
  221. ${BulletRobotics_ENET_INCLUDES}
  222. )
  223. set(BulletRobotics_SRCS
  224. ${BulletRobotics_SRCS}
  225. ${BulletRobotics_ENET_INCLUDES}
  226. ${BulletRobotics_ENET_SRCS}
  227. )
  228. ENDIF(BUILD_ENET)
  229. IF(BUILD_CLSOCKET)
  230. set(BulletRobotics_CLSOCKET_SRCS
  231. ../../examples/SharedMemory/PhysicsClientTCP.cpp
  232. ../../examples/SharedMemory/PhysicsClientTCP_C_API.cpp
  233. ../../examples/ThirdPartyLibs/clsocket/src/SimpleSocket.cpp
  234. ../../examples/ThirdPartyLibs/clsocket/src/ActiveSocket.cpp
  235. ../../examples/ThirdPartyLibs/clsocket/src/PassiveSocket.cpp
  236. )
  237. set(BulletRobotics_SRCS
  238. ${BulletRobotics_SRCS}
  239. ${BulletRobotics_CLSOCKET_SRCS}
  240. )
  241. ENDIF()
  242. ADD_DEFINITIONS(-DPHYSICS_SERVER_DIRECT)
  243. ADD_LIBRARY(BulletRobotics ${BulletRobotics_SRCS})
  244. SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES VERSION ${BULLET_VERSION})
  245. SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES SOVERSION ${BULLET_VERSION})
  246. IF (BUILD_SHARED_LIBS)
  247. TARGET_LINK_LIBRARIES(BulletRobotics BulletInverseDynamicsUtils BulletWorldImporter BulletFileLoader BulletSoftBody BulletDynamics BulletCollision BulletInverseDynamics LinearMath Bullet3Common)
  248. ENDIF (BUILD_SHARED_LIBS)
  249. INSTALL (
  250. DIRECTORY ${CMAKE_SOURCE_DIR}/examples/
  251. DESTINATION include/bullet
  252. FILES_MATCHING PATTERN "*.h*")
  253. INSTALL(TARGETS
  254. BulletRobotics
  255. LIBRARY DESTINATION lib${LIB_SUFFIX}
  256. ARCHIVE DESTINATION lib${LIB_SUFFIX}
  257. )
  258. IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK)
  259. SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES FRAMEWORK true)
  260. SET_TARGET_PROPERTIES(BulletRobotics PROPERTIES PUBLIC_HEADER "PhysicsClientC_API.h" )
  261. ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK)
  262. IF(NOT MSVC)
  263. SET(PKGCONFIG_INSTALL_PREFIX "lib${LIB_SUFFIX}/pkgconfig/" CACHE STRING "Base directory for pkgconfig files")
  264. CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/bullet_robotics.pc.cmake
  265. ${CMAKE_CURRENT_BINARY_DIR}/bullet_robotics.pc @ONLY)
  266. INSTALL(
  267. FILES
  268. ${CMAKE_CURRENT_BINARY_DIR}/bullet_robotics.pc
  269. DESTINATION
  270. ${PKGCONFIG_INSTALL_PREFIX}
  271. )
  272. ENDIF(NOT MSVC)