setup.py 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487
  1. from setuptools import find_packages
  2. from sys import platform as _platform
  3. import sys
  4. import glob
  5. from distutils.core import setup
  6. from distutils.extension import Extension
  7. from distutils.util import get_platform
  8. from glob import glob
  9. #see http://stackoverflow.com/a/8719066/295157
  10. import os
  11. platform = get_platform()
  12. print(platform)
  13. CXX_FLAGS = ''
  14. CXX_FLAGS += '-DGWEN_COMPILE_STATIC '
  15. CXX_FLAGS += '-DBT_USE_DOUBLE_PRECISION '
  16. CXX_FLAGS += '-DBT_ENABLE_ENET '
  17. CXX_FLAGS += '-DBT_ENABLE_CLSOCKET '
  18. CXX_FLAGS += '-DB3_DUMP_PYTHON_VERSION '
  19. # libraries += [current_python]
  20. libraries = []
  21. include_dirs = []
  22. try:
  23. import numpy
  24. NP_DIRS = [numpy.get_include()]
  25. except:
  26. print("numpy is disabled. getCameraImage maybe slower.")
  27. else:
  28. print("numpy is enabled.")
  29. CXX_FLAGS += '-DPYBULLET_USE_NUMPY '
  30. for d in NP_DIRS:
  31. print("numpy_include_dirs = %s" % d)
  32. include_dirs += NP_DIRS
  33. sources = ["examples/pybullet/pybullet.c"]\
  34. +["examples/ExampleBrowser/InProcessExampleBrowser.cpp"]\
  35. +["examples/TinyRenderer/geometry.cpp"]\
  36. +["examples/TinyRenderer/model.cpp"]\
  37. +["examples/TinyRenderer/tgaimage.cpp"]\
  38. +["examples/TinyRenderer/our_gl.cpp"]\
  39. +["examples/TinyRenderer/TinyRenderer.cpp"]\
  40. +["examples/SharedMemory/plugins/pdControlPlugin/pdControlPlugin.cpp"]\
  41. +["examples/SharedMemory/b3RobotSimulatorClientAPI_NoDirect.cpp"]\
  42. +["examples/SharedMemory/IKTrajectoryHelper.cpp"]\
  43. +["examples/SharedMemory/InProcessMemory.cpp"]\
  44. +["examples/SharedMemory/PhysicsClient.cpp"]\
  45. +["examples/SharedMemory/PhysicsServer.cpp"]\
  46. +["examples/SharedMemory/PhysicsServerExample.cpp"]\
  47. +["examples/SharedMemory/PhysicsServerExampleBullet2.cpp"]\
  48. +["examples/SharedMemory/SharedMemoryInProcessPhysicsC_API.cpp"]\
  49. +["examples/SharedMemory/PhysicsServerSharedMemory.cpp"]\
  50. +["examples/SharedMemory/PhysicsDirect.cpp"]\
  51. +["examples/SharedMemory/PhysicsDirectC_API.cpp"]\
  52. +["examples/SharedMemory/PhysicsServerCommandProcessor.cpp"]\
  53. +["examples/SharedMemory/PhysicsClientSharedMemory.cpp"]\
  54. +["examples/SharedMemory/PhysicsClientSharedMemory_C_API.cpp"]\
  55. +["examples/SharedMemory/PhysicsClientC_API.cpp"]\
  56. +["examples/SharedMemory/Win32SharedMemory.cpp"]\
  57. +["examples/SharedMemory/PosixSharedMemory.cpp"]\
  58. +["examples/SharedMemory/plugins/tinyRendererPlugin/TinyRendererVisualShapeConverter.cpp"]\
  59. +["examples/SharedMemory/plugins/tinyRendererPlugin/tinyRendererPlugin.cpp"]\
  60. +["examples/SharedMemory/PhysicsClientUDP.cpp"]\
  61. +["examples/SharedMemory/PhysicsClientUDP_C_API.cpp"]\
  62. +["examples/SharedMemory/PhysicsClientTCP.cpp"]\
  63. +["examples/SharedMemory/PhysicsClientTCP_C_API.cpp"]\
  64. +["examples/SharedMemory/b3PluginManager.cpp"]\
  65. +["examples/Utils/b3ResourcePath.cpp"]\
  66. +["examples/Utils/RobotLoggingUtil.cpp"]\
  67. +["examples/Utils/ChromeTraceUtil.cpp"]\
  68. +["examples/Utils/b3Clock.cpp"]\
  69. +["examples/Utils/b3Quickprof.cpp"]\
  70. +["examples/ThirdPartyLibs/tinyxml2/tinyxml2.cpp"]\
  71. +["examples/ThirdPartyLibs/Wavefront/tiny_obj_loader.cpp"]\
  72. +["examples/ThirdPartyLibs/stb_image/stb_image.cpp"]\
  73. +["examples/Importers/ImportColladaDemo/LoadMeshFromCollada.cpp"]\
  74. +["examples/Importers/ImportObjDemo/LoadMeshFromObj.cpp"]\
  75. +["examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp"]\
  76. +["examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp"]\
  77. +["examples/Importers/ImportURDFDemo/BulletUrdfImporter.cpp"]\
  78. +["examples/Importers/ImportURDFDemo/MyMultiBodyCreator.cpp"]\
  79. +["examples/Importers/ImportURDFDemo/URDF2Bullet.cpp"]\
  80. +["examples/Importers/ImportURDFDemo/UrdfParser.cpp"]\
  81. +["examples/Importers/ImportURDFDemo/urdfStringSplit.cpp"]\
  82. +["examples/Importers/ImportMeshUtility/b3ImportMeshUtility.cpp"]\
  83. +["examples/MultiThreading/b3PosixThreadSupport.cpp"]\
  84. +["examples/MultiThreading/b3Win32ThreadSupport.cpp"]\
  85. +["examples/MultiThreading/b3ThreadSupportInterface.cpp"]\
  86. +["examples/ThirdPartyLibs/enet/callbacks.c"]\
  87. +["examples/ThirdPartyLibs/enet/compress.c"]\
  88. +["examples/ThirdPartyLibs/enet/host.c"]\
  89. +["examples/ThirdPartyLibs/enet/list.c"]\
  90. +["examples/ThirdPartyLibs/enet/packet.c"]\
  91. +["examples/ThirdPartyLibs/enet/peer.c"]\
  92. +["examples/ThirdPartyLibs/enet/protocol.c"]\
  93. +["examples/ExampleBrowser/OpenGLGuiHelper.cpp"]\
  94. +["examples/ExampleBrowser/OpenGLExampleBrowser.cpp"]\
  95. +["examples/ExampleBrowser/CollisionShape2TriangleMesh.cpp"]\
  96. +["examples/ExampleBrowser/GL_ShapeDrawer.cpp"]\
  97. +["examples/OpenGLWindow/SimpleOpenGL2Renderer.cpp"]\
  98. +["examples/OpenGLWindow/GLInstancingRenderer.cpp"]\
  99. +["examples/OpenGLWindow/SimpleOpenGL3App.cpp"]\
  100. +["examples/OpenGLWindow/GLPrimitiveRenderer.cpp"]\
  101. +["examples/OpenGLWindow/TwFonts.cpp"]\
  102. +["examples/OpenGLWindow/GLRenderToTexture.cpp"]\
  103. +["examples/OpenGLWindow/LoadShader.cpp"]\
  104. +["examples/OpenGLWindow/OpenSans.cpp"]\
  105. +["examples/OpenGLWindow/SimpleCamera.cpp"]\
  106. +["examples/OpenGLWindow/fontstash.cpp"]\
  107. +["examples/OpenGLWindow/SimpleOpenGL2App.cpp"]\
  108. +["examples/OpenGLWindow/opengl_fontstashcallbacks.cpp"]\
  109. +["examples/ExampleBrowser/GwenGUISupport/GraphingTexture.cpp"]\
  110. +["examples/ExampleBrowser/GwenGUISupport/GwenProfileWindow.cpp"]\
  111. +["examples/ExampleBrowser/GwenGUISupport/gwenUserInterface.cpp"]\
  112. +["examples/ExampleBrowser/GwenGUISupport/GwenParameterInterface.cpp"]\
  113. +["examples/ExampleBrowser/GwenGUISupport/GwenTextureWindow.cpp"]\
  114. +["src/LinearMath/btAlignedAllocator.cpp"]\
  115. +["src/LinearMath/btGeometryUtil.cpp"]\
  116. +["src/LinearMath/btSerializer.cpp"]\
  117. +["src/LinearMath/btVector3.cpp"]\
  118. +["src/LinearMath/btConvexHull.cpp"]\
  119. +["src/LinearMath/btPolarDecomposition.cpp"]\
  120. +["src/LinearMath/btSerializer64.cpp"]\
  121. +["src/LinearMath/btConvexHullComputer.cpp"]\
  122. +["src/LinearMath/btQuickprof.cpp"]\
  123. +["src/LinearMath/btThreads.cpp"]\
  124. +["src/LinearMath/TaskScheduler/btTaskScheduler.cpp"]\
  125. +["src/LinearMath/TaskScheduler/btThreadSupportPosix.cpp"]\
  126. +["src/LinearMath/TaskScheduler/btThreadSupportWin32.cpp"]\
  127. +["src/BulletCollision/BroadphaseCollision/btAxisSweep3.cpp"]\
  128. +["src/BulletCollision/BroadphaseCollision/btDbvt.cpp"]\
  129. +["src/BulletCollision/BroadphaseCollision/btOverlappingPairCache.cpp"]\
  130. +["src/BulletCollision/BroadphaseCollision/btBroadphaseProxy.cpp"]\
  131. +["src/BulletCollision/BroadphaseCollision/btDbvtBroadphase.cpp"]\
  132. +["src/BulletCollision/BroadphaseCollision/btQuantizedBvh.cpp"]\
  133. +["src/BulletCollision/BroadphaseCollision/btCollisionAlgorithm.cpp"]\
  134. +["src/BulletCollision/BroadphaseCollision/btDispatcher.cpp"]\
  135. +["src/BulletCollision/BroadphaseCollision/btSimpleBroadphase.cpp"]\
  136. +["src/BulletCollision/CollisionDispatch/SphereTriangleDetector.cpp"]\
  137. +["src/BulletCollision/CollisionDispatch/btCompoundCollisionAlgorithm.cpp"]\
  138. +["src/BulletCollision/CollisionDispatch/btHashedSimplePairCache.cpp"]\
  139. +["src/BulletCollision/CollisionDispatch/btActivatingCollisionAlgorithm.cpp"]\
  140. +["src/BulletCollision/CollisionDispatch/btCompoundCompoundCollisionAlgorithm.cpp"]\
  141. +["src/BulletCollision/CollisionDispatch/btInternalEdgeUtility.cpp"]\
  142. +["src/BulletCollision/CollisionDispatch/btBox2dBox2dCollisionAlgorithm.cpp"]\
  143. +["src/BulletCollision/CollisionDispatch/btConvex2dConvex2dAlgorithm.cpp"]\
  144. +["src/BulletCollision/CollisionDispatch/btManifoldResult.cpp"]\
  145. +["src/BulletCollision/CollisionDispatch/btBoxBoxCollisionAlgorithm.cpp"]\
  146. +["src/BulletCollision/CollisionDispatch/btConvexConcaveCollisionAlgorithm.cpp"]\
  147. +["src/BulletCollision/CollisionDispatch/btSimulationIslandManager.cpp"]\
  148. +["src/BulletCollision/CollisionDispatch/btBoxBoxDetector.cpp"]\
  149. +["src/BulletCollision/CollisionDispatch/btConvexConvexAlgorithm.cpp"]\
  150. +["src/BulletCollision/CollisionDispatch/btSphereBoxCollisionAlgorithm.cpp"]\
  151. +["src/BulletCollision/CollisionDispatch/btCollisionDispatcher.cpp"]\
  152. +["src/BulletCollision/CollisionDispatch/btConvexPlaneCollisionAlgorithm.cpp"]\
  153. +["src/BulletCollision/CollisionDispatch/btSphereSphereCollisionAlgorithm.cpp"]\
  154. +["src/BulletCollision/CollisionDispatch/btCollisionObject.cpp"]\
  155. +["src/BulletCollision/CollisionDispatch/btDefaultCollisionConfiguration.cpp"]\
  156. +["src/BulletCollision/CollisionDispatch/btSphereTriangleCollisionAlgorithm.cpp"]\
  157. +["src/BulletCollision/CollisionDispatch/btCollisionWorld.cpp"]\
  158. +["src/BulletCollision/CollisionDispatch/btEmptyCollisionAlgorithm.cpp"]\
  159. +["src/BulletCollision/CollisionDispatch/btUnionFind.cpp"]\
  160. +["src/BulletCollision/CollisionDispatch/btCollisionWorldImporter.cpp"]\
  161. +["src/BulletCollision/CollisionDispatch/btGhostObject.cpp"]\
  162. +["src/BulletCollision/NarrowPhaseCollision/btContinuousConvexCollision.cpp"]\
  163. +["src/BulletCollision/NarrowPhaseCollision/btGjkEpaPenetrationDepthSolver.cpp"]\
  164. +["src/BulletCollision/NarrowPhaseCollision/btPolyhedralContactClipping.cpp"]\
  165. +["src/BulletCollision/NarrowPhaseCollision/btConvexCast.cpp"]\
  166. +["src/BulletCollision/NarrowPhaseCollision/btGjkPairDetector.cpp"]\
  167. +["src/BulletCollision/NarrowPhaseCollision/btRaycastCallback.cpp"]\
  168. +["src/BulletCollision/NarrowPhaseCollision/btGjkConvexCast.cpp"]\
  169. +["src/BulletCollision/NarrowPhaseCollision/btMinkowskiPenetrationDepthSolver.cpp"]\
  170. +["src/BulletCollision/NarrowPhaseCollision/btSubSimplexConvexCast.cpp"]\
  171. +["src/BulletCollision/NarrowPhaseCollision/btGjkEpa2.cpp"]\
  172. +["src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp"]\
  173. +["src/BulletCollision/NarrowPhaseCollision/btVoronoiSimplexSolver.cpp"]\
  174. +["src/BulletCollision/CollisionShapes/btBox2dShape.cpp"]\
  175. +["src/BulletCollision/CollisionShapes/btConvexPolyhedron.cpp"]\
  176. +["src/BulletCollision/CollisionShapes/btShapeHull.cpp"]\
  177. +["src/BulletCollision/CollisionShapes/btBoxShape.cpp"]\
  178. +["src/BulletCollision/CollisionShapes/btConvexShape.cpp"]\
  179. +["src/BulletCollision/CollisionShapes/btSphereShape.cpp"]\
  180. +["src/BulletCollision/CollisionShapes/btBvhTriangleMeshShape.cpp"]\
  181. +["src/BulletCollision/CollisionShapes/btConvexTriangleMeshShape.cpp"]\
  182. +["src/BulletCollision/CollisionShapes/btStaticPlaneShape.cpp"]\
  183. +["src/BulletCollision/CollisionShapes/btCapsuleShape.cpp"]\
  184. +["src/BulletCollision/CollisionShapes/btCylinderShape.cpp"]\
  185. +["src/BulletCollision/CollisionShapes/btStridingMeshInterface.cpp"]\
  186. +["src/BulletCollision/CollisionShapes/btCollisionShape.cpp"]\
  187. +["src/BulletCollision/CollisionShapes/btEmptyShape.cpp"]\
  188. +["src/BulletCollision/CollisionShapes/btTetrahedronShape.cpp"]\
  189. +["src/BulletCollision/CollisionShapes/btCompoundShape.cpp"]\
  190. +["src/BulletCollision/CollisionShapes/btHeightfieldTerrainShape.cpp"]\
  191. +["src/BulletCollision/CollisionShapes/btTriangleBuffer.cpp"]\
  192. +["src/BulletCollision/CollisionShapes/btConcaveShape.cpp"]\
  193. +["src/BulletCollision/CollisionShapes/btMinkowskiSumShape.cpp"]\
  194. +["src/BulletCollision/CollisionShapes/btTriangleCallback.cpp"]\
  195. +["src/BulletCollision/CollisionShapes/btConeShape.cpp"]\
  196. +["src/BulletCollision/CollisionShapes/btMultiSphereShape.cpp"]\
  197. +["src/BulletCollision/CollisionShapes/btTriangleIndexVertexArray.cpp"]\
  198. +["src/BulletCollision/CollisionShapes/btConvex2dShape.cpp"]\
  199. +["src/BulletCollision/CollisionShapes/btMultimaterialTriangleMeshShape.cpp"]\
  200. +["src/BulletCollision/CollisionShapes/btTriangleIndexVertexMaterialArray.cpp"]\
  201. +["src/BulletCollision/CollisionShapes/btConvexHullShape.cpp"]\
  202. +["src/BulletCollision/CollisionShapes/btOptimizedBvh.cpp"]\
  203. +["src/BulletCollision/CollisionShapes/btTriangleMesh.cpp"]\
  204. +["src/BulletCollision/CollisionShapes/btConvexInternalShape.cpp"]\
  205. +["src/BulletCollision/CollisionShapes/btPolyhedralConvexShape.cpp"]\
  206. +["src/BulletCollision/CollisionShapes/btTriangleMeshShape.cpp"]\
  207. +["src/BulletCollision/CollisionShapes/btConvexPointCloudShape.cpp"]\
  208. +["src/BulletCollision/CollisionShapes/btScaledBvhTriangleMeshShape.cpp"]\
  209. +["src/BulletCollision/CollisionShapes/btSdfCollisionShape.cpp"]\
  210. +["src/BulletCollision/CollisionShapes/btMiniSDF.cpp"]\
  211. +["src/BulletCollision/CollisionShapes/btUniformScalingShape.cpp"]\
  212. +["src/BulletCollision/Gimpact/btContactProcessing.cpp"]\
  213. +["src/BulletCollision/Gimpact/btGImpactQuantizedBvh.cpp"]\
  214. +["src/BulletCollision/Gimpact/btTriangleShapeEx.cpp"]\
  215. +["src/BulletCollision/Gimpact/gim_memory.cpp"]\
  216. +["src/BulletCollision/Gimpact/btGImpactBvh.cpp"]\
  217. +["src/BulletCollision/Gimpact/btGImpactShape.cpp"]\
  218. +["src/BulletCollision/Gimpact/gim_box_set.cpp"]\
  219. +["src/BulletCollision/Gimpact/gim_tri_collision.cpp"]\
  220. +["src/BulletCollision/Gimpact/btGImpactCollisionAlgorithm.cpp"]\
  221. +["src/BulletCollision/Gimpact/btGenericPoolAllocator.cpp"]\
  222. +["src/BulletCollision/Gimpact/gim_contact.cpp"]\
  223. +["src/BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp"]\
  224. +["src/BulletDynamics/Dynamics/btRigidBody.cpp"]\
  225. +["src/BulletDynamics/Dynamics/btSimulationIslandManagerMt.cpp"]\
  226. +["src/BulletDynamics/Dynamics/btDiscreteDynamicsWorldMt.cpp"]\
  227. +["src/BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp"]\
  228. +["src/BulletDynamics/ConstraintSolver/btBatchedConstraints.cpp"]\
  229. +["src/BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp"]\
  230. +["src/BulletDynamics/ConstraintSolver/btGeneric6DofSpringConstraint.cpp"]\
  231. +["src/BulletDynamics/ConstraintSolver/btSliderConstraint.cpp"]\
  232. +["src/BulletDynamics/ConstraintSolver/btContactConstraint.cpp"]\
  233. +["src/BulletDynamics/ConstraintSolver/btHinge2Constraint.cpp"]\
  234. +["src/BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp"]\
  235. +["src/BulletDynamics/ConstraintSolver/btFixedConstraint.cpp"]\
  236. +["src/BulletDynamics/ConstraintSolver/btHingeConstraint.cpp"]\
  237. +["src/BulletDynamics/ConstraintSolver/btTypedConstraint.cpp"]\
  238. +["src/BulletDynamics/ConstraintSolver/btGearConstraint.cpp"]\
  239. +["src/BulletDynamics/ConstraintSolver/btNNCGConstraintSolver.cpp"]\
  240. +["src/BulletDynamics/ConstraintSolver/btUniversalConstraint.cpp"]\
  241. +["src/BulletDynamics/ConstraintSolver/btGeneric6DofConstraint.cpp"]\
  242. +["src/BulletDynamics/ConstraintSolver/btPoint2PointConstraint.cpp"]\
  243. +["src/BulletDynamics/ConstraintSolver/btGeneric6DofSpring2Constraint.cpp"]\
  244. +["src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp"]\
  245. +["src/BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolverMt.cpp"]\
  246. +["src/BulletDynamics/MLCPSolvers/btDantzigLCP.cpp"]\
  247. +["src/BulletDynamics/MLCPSolvers/btLemkeAlgorithm.cpp"]\
  248. +["src/BulletDynamics/MLCPSolvers/btMLCPSolver.cpp"]\
  249. +["src/BulletDynamics/Featherstone/btMultiBody.cpp"]\
  250. +["src/BulletDynamics/Featherstone/btMultiBodyDynamicsWorld.cpp"]\
  251. +["src/BulletDynamics/Featherstone/btMultiBodyJointMotor.cpp"]\
  252. +["src/BulletDynamics/Featherstone/btMultiBodyGearConstraint.cpp"]\
  253. +["src/BulletDynamics/Featherstone/btMultiBodyConstraint.cpp"]\
  254. +["src/BulletDynamics/Featherstone/btMultiBodyFixedConstraint.cpp"]\
  255. +["src/BulletDynamics/Featherstone/btMultiBodyPoint2Point.cpp"]\
  256. +["src/BulletDynamics/Featherstone/btMultiBodyConstraintSolver.cpp"]\
  257. +["src/BulletDynamics/Featherstone/btMultiBodyJointLimitConstraint.cpp"]\
  258. +["src/BulletDynamics/Featherstone/btMultiBodySliderConstraint.cpp"]\
  259. +["src/BulletDynamics/Vehicle/btRaycastVehicle.cpp"]\
  260. +["src/BulletDynamics/Vehicle/btWheelInfo.cpp"]\
  261. +["src/BulletDynamics/Character/btKinematicCharacterController.cpp"]\
  262. +["src/Bullet3Common/b3AlignedAllocator.cpp"]\
  263. +["src/Bullet3Common/b3Logging.cpp"]\
  264. +["src/Bullet3Common/b3Vector3.cpp"]\
  265. +["examples/ThirdPartyLibs/clsocket/src/ActiveSocket.cpp"]\
  266. +["examples/ThirdPartyLibs/clsocket/src/PassiveSocket.cpp"]\
  267. +["examples/ThirdPartyLibs/clsocket/src/SimpleSocket.cpp"]\
  268. +["Extras/Serialize/BulletFileLoader/bChunk.cpp"]\
  269. +["Extras/Serialize/BulletFileLoader/bDNA.cpp"]\
  270. +["Extras/Serialize/BulletFileLoader/bFile.cpp"]\
  271. +["Extras/Serialize/BulletFileLoader/btBulletFile.cpp"]\
  272. +["Extras/Serialize/BulletWorldImporter/btMultiBodyWorldImporter.cpp"]\
  273. +["Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp"]\
  274. +["Extras/Serialize/BulletWorldImporter/btWorldImporter.cpp"]\
  275. +["Extras/InverseDynamics/CloneTreeCreator.cpp"]\
  276. +["Extras/InverseDynamics/IDRandomUtil.cpp"]\
  277. +["Extras/InverseDynamics/MultiBodyTreeDebugGraph.cpp"]\
  278. +["Extras/InverseDynamics/User2InternalIndex.cpp"]\
  279. +["Extras/InverseDynamics/CoilCreator.cpp"]\
  280. +["Extras/InverseDynamics/MultiBodyNameMap.cpp"]\
  281. +["Extras/InverseDynamics/RandomTreeCreator.cpp"]\
  282. +["Extras/InverseDynamics/btMultiBodyTreeCreator.cpp"]\
  283. +["Extras/InverseDynamics/DillCreator.cpp"]\
  284. +["Extras/InverseDynamics/MultiBodyTreeCreator.cpp"]\
  285. +["Extras/InverseDynamics/SimpleTreeCreator.cpp"]\
  286. +["Extras/InverseDynamics/invdyn_bullet_comparison.cpp"]\
  287. +["src/BulletSoftBody/btDefaultSoftBodySolver.cpp"]\
  288. +["src/BulletSoftBody/btSoftBodyHelpers.cpp"]\
  289. +["src/BulletSoftBody/btSoftRigidCollisionAlgorithm.cpp"]\
  290. +["src/BulletSoftBody/btSoftBody.cpp"]\
  291. +["src/BulletSoftBody/btSoftBodyRigidBodyCollisionConfiguration.cpp"]\
  292. +["src/BulletSoftBody/btSoftRigidDynamicsWorld.cpp"]\
  293. +["src/BulletSoftBody/btSoftBodyConcaveCollisionAlgorithm.cpp"]\
  294. +["src/BulletSoftBody/btSoftMultiBodyDynamicsWorld.cpp"]\
  295. +["src/BulletSoftBody/btSoftSoftCollisionAlgorithm.cpp"]\
  296. +["src/BulletInverseDynamics/IDMath.cpp"]\
  297. +["src/BulletInverseDynamics/MultiBodyTree.cpp"]\
  298. +["src/BulletInverseDynamics/details/MultiBodyTreeImpl.cpp"]\
  299. +["src/BulletInverseDynamics/details/MultiBodyTreeInitCache.cpp"]\
  300. +["examples/ThirdPartyLibs/BussIK/Jacobian.cpp"]\
  301. +["examples/ThirdPartyLibs/BussIK/LinearR2.cpp"]\
  302. +["examples/ThirdPartyLibs/BussIK/LinearR3.cpp"]\
  303. +["examples/ThirdPartyLibs/BussIK/LinearR4.cpp"]\
  304. +["examples/ThirdPartyLibs/BussIK/MatrixRmn.cpp"]\
  305. +["examples/ThirdPartyLibs/BussIK/Misc.cpp"]\
  306. +["examples/ThirdPartyLibs/BussIK/Node.cpp"]\
  307. +["examples/ThirdPartyLibs/BussIK/Tree.cpp"]\
  308. +["examples/ThirdPartyLibs/BussIK/VectorRn.cpp"]\
  309. +["examples/ThirdPartyLibs/Gwen/Anim.cpp"]\
  310. +["examples/ThirdPartyLibs/Gwen/DragAndDrop.cpp"]\
  311. +["examples/ThirdPartyLibs/Gwen/Hook.cpp"]\
  312. +["examples/ThirdPartyLibs/Gwen/ToolTip.cpp"]\
  313. +["examples/ThirdPartyLibs/Gwen/events.cpp"]\
  314. +["examples/ThirdPartyLibs/Gwen/BaseRender.cpp"]\
  315. +["examples/ThirdPartyLibs/Gwen/Gwen.cpp"]\
  316. +["examples/ThirdPartyLibs/Gwen/Skin.cpp"]\
  317. +["examples/ThirdPartyLibs/Gwen/Utility.cpp"]\
  318. +["examples/ThirdPartyLibs/Gwen/inputhandler.cpp"]\
  319. +["examples/ThirdPartyLibs/Gwen/Controls/Base.cpp"]\
  320. +["examples/ThirdPartyLibs/Gwen/Controls/Button.cpp"]\
  321. +["examples/ThirdPartyLibs/Gwen/Controls/Canvas.cpp"]\
  322. +["examples/ThirdPartyLibs/Gwen/Controls/CheckBox.cpp"]\
  323. +["examples/ThirdPartyLibs/Gwen/Controls/ColorControls.cpp"]\
  324. +["examples/ThirdPartyLibs/Gwen/Controls/ColorPicker.cpp"]\
  325. +["examples/ThirdPartyLibs/Gwen/Controls/ComboBox.cpp"]\
  326. +["examples/ThirdPartyLibs/Gwen/Controls/CrossSplitter.cpp"]\
  327. +["examples/ThirdPartyLibs/Gwen/Controls/DockBase.cpp"]\
  328. +["examples/ThirdPartyLibs/Gwen/Controls/DockedTabControl.cpp"]\
  329. +["examples/ThirdPartyLibs/Gwen/Controls/Dragger.cpp"]\
  330. +["examples/ThirdPartyLibs/Gwen/Controls/GroupBox.cpp"]\
  331. +["examples/ThirdPartyLibs/Gwen/Controls/HSVColorPicker.cpp"]\
  332. +["examples/ThirdPartyLibs/Gwen/Controls/HorizontalScrollBar.cpp"]\
  333. +["examples/ThirdPartyLibs/Gwen/Controls/ImagePanel.cpp"]\
  334. +["examples/ThirdPartyLibs/Gwen/Controls/HorizontalSlider.cpp"]\
  335. +["examples/ThirdPartyLibs/Gwen/Controls/Label.cpp"]\
  336. +["examples/ThirdPartyLibs/Gwen/Controls/LabelClickable.cpp"]\
  337. +["examples/ThirdPartyLibs/Gwen/Controls/ListBox.cpp"]\
  338. +["examples/ThirdPartyLibs/Gwen/Controls/MenuItem.cpp"]\
  339. +["examples/ThirdPartyLibs/Gwen/Controls/Menu.cpp"]\
  340. +["examples/ThirdPartyLibs/Gwen/Controls/MenuStrip.cpp"]\
  341. +["examples/ThirdPartyLibs/Gwen/Controls/NumericUpDown.cpp"]\
  342. +["examples/ThirdPartyLibs/Gwen/Controls/PanelListPanel.cpp"]\
  343. +["examples/ThirdPartyLibs/Gwen/Controls/ProgressBar.cpp"]\
  344. +["examples/ThirdPartyLibs/Gwen/Controls/Properties.cpp"]\
  345. +["examples/ThirdPartyLibs/Gwen/Controls/RadioButton.cpp"]\
  346. +["examples/ThirdPartyLibs/Gwen/Controls/RadioButtonController.cpp"]\
  347. +["examples/ThirdPartyLibs/Gwen/Controls/ResizableControl.cpp"]\
  348. +["examples/ThirdPartyLibs/Gwen/Controls/Resizer.cpp"]\
  349. +["examples/ThirdPartyLibs/Gwen/Controls/RichLabel.cpp"]\
  350. +["examples/ThirdPartyLibs/Gwen/Controls/ScrollBar.cpp"]\
  351. +["examples/ThirdPartyLibs/Gwen/Controls/ScrollBarBar.cpp"]\
  352. +["examples/ThirdPartyLibs/Gwen/Controls/ScrollBarButton.cpp"]\
  353. +["examples/ThirdPartyLibs/Gwen/Controls/ScrollControl.cpp"]\
  354. +["examples/ThirdPartyLibs/Gwen/Controls/Slider.cpp"]\
  355. +["examples/ThirdPartyLibs/Gwen/Controls/SplitterBar.cpp"]\
  356. +["examples/ThirdPartyLibs/Gwen/Controls/TabButton.cpp"]\
  357. +["examples/ThirdPartyLibs/Gwen/Controls/TabControl.cpp"]\
  358. +["examples/ThirdPartyLibs/Gwen/Controls/TabStrip.cpp"]\
  359. +["examples/ThirdPartyLibs/Gwen/Controls/Text.cpp"]\
  360. +["examples/ThirdPartyLibs/Gwen/Controls/TextBox.cpp"]\
  361. +["examples/ThirdPartyLibs/Gwen/Controls/TextBoxNumeric.cpp"]\
  362. +["examples/ThirdPartyLibs/Gwen/Controls/TreeControl.cpp"]\
  363. +["examples/ThirdPartyLibs/Gwen/Controls/TreeNode.cpp"]\
  364. +["examples/ThirdPartyLibs/Gwen/Controls/VerticalScrollBar.cpp"]\
  365. +["examples/ThirdPartyLibs/Gwen/Controls/VerticalSlider.cpp"]\
  366. +["examples/ThirdPartyLibs/Gwen/Controls/WindowControl.cpp"]\
  367. +["examples/ThirdPartyLibs/Gwen/Controls/Dialog/FileOpen.cpp"]\
  368. +["examples/ThirdPartyLibs/Gwen/Controls/Dialog/FileSave.cpp"]\
  369. +["examples/ThirdPartyLibs/Gwen/Controls/Dialog/Query.cpp"]\
  370. +["examples/ThirdPartyLibs/Gwen/Platforms/Null.cpp"]\
  371. +["examples/ThirdPartyLibs/Gwen/Platforms/Windows.cpp"]\
  372. +["examples/ThirdPartyLibs/Gwen/Renderers/OpenGL_DebugFont.cpp"]\
  373. if _platform == "linux" or _platform == "linux2":
  374. libraries = ['dl','pthread']
  375. CXX_FLAGS += '-D_LINUX '
  376. CXX_FLAGS += '-DGLEW_STATIC '
  377. CXX_FLAGS += '-DGLEW_INIT_OPENGL11_FUNCTIONS=1 '
  378. CXX_FLAGS += '-DGLEW_DYNAMIC_LOAD_ALL_GLX_FUNCTIONS=1 '
  379. CXX_FLAGS += '-DDYNAMIC_LOAD_X11_FUNCTIONS '
  380. CXX_FLAGS += '-DHAS_SOCKLEN_T '
  381. CXX_FLAGS += '-fno-inline-functions-called-once'
  382. sources = sources + ["examples/ThirdPartyLibs/enet/unix.c"]\
  383. +["examples/OpenGLWindow/X11OpenGLWindow.cpp"]\
  384. +["examples/ThirdPartyLibs/glad/glad.c"]\
  385. +["examples/ThirdPartyLibs/glad/glad_glx.c"]
  386. include_dirs += ["examples/ThirdPartyLibs/optionalX11"]
  387. elif _platform == "win32":
  388. print("win32!")
  389. libraries = ['Ws2_32','Winmm','User32','Opengl32','kernel32','glu32','Gdi32','Comdlg32']
  390. CXX_FLAGS += '-DWIN32 '
  391. CXX_FLAGS += '-DGLEW_STATIC '
  392. sources = sources + ["examples/ThirdPartyLibs/enet/win32.c"]\
  393. +["examples/OpenGLWindow/Win32Window.cpp"]\
  394. +["examples/OpenGLWindow/Win32OpenGLWindow.cpp"]\
  395. +["examples/ThirdPartyLibs/glad/glad.c"]
  396. elif _platform == "darwin":
  397. print("darwin!")
  398. os.environ['LDFLAGS'] = '-framework Cocoa -framework OpenGL'
  399. CXX_FLAGS += '-DB3_NO_PYTHON_FRAMEWORK '
  400. CXX_FLAGS += '-DHAS_SOCKLEN_T '
  401. CXX_FLAGS += '-D_DARWIN '
  402. # CXX_FLAGS += '-framework Cocoa '
  403. sources = sources + ["examples/ThirdPartyLibs/enet/unix.c"]\
  404. +["examples/OpenGLWindow/MacOpenGLWindow.cpp"]\
  405. +["examples/ThirdPartyLibs/glad/glad.c"]\
  406. +["examples/OpenGLWindow/MacOpenGLWindowObjC.m"]
  407. else:
  408. print("bsd!")
  409. libraries = ['GL','GLEW','pthread']
  410. os.environ['LDFLAGS'] = '-L/usr/X11R6/lib'
  411. CXX_FLAGS += '-D_BSD '
  412. CXX_FLAGS += '-I/usr/X11R6/include '
  413. CXX_FLAGS += '-DHAS_SOCKLEN_T '
  414. CXX_FLAGS += '-fno-inline-functions-called-once'
  415. sources = ["examples/ThirdPartyLibs/enet/unix.c"]\
  416. +["examples/OpenGLWindow/X11OpenGLWindow.cpp"]\
  417. +["examples/ThirdPartyLibs/glad/glad.c"]\
  418. + sources
  419. setup_py_dir = os.path.dirname(os.path.realpath(__file__))
  420. need_files = []
  421. datadir = "examples/pybullet/gym/pybullet_data"
  422. hh = setup_py_dir + "/" + datadir
  423. for root, dirs, files in os.walk(hh):
  424. for fn in files:
  425. ext = os.path.splitext(fn)[1][1:]
  426. if ext and ext in 'yaml index meta data-00000-of-00001 png gif jpg urdf sdf obj mtl dae off stl STL xml '.split():
  427. fn = root + "/" + fn
  428. need_files.append(fn[1+len(hh):])
  429. print("found resource files: %i" % len(need_files))
  430. for n in need_files: print("-- %s" % n)
  431. print("packages")
  432. print(find_packages('examples/pybullet/gym'))
  433. print("-----")
  434. setup(
  435. name = 'pybullet',
  436. version='2.0.5',
  437. description='Official Python Interface for the Bullet Physics SDK specialized for Robotics Simulation and Reinforcement Learning',
  438. long_description='pybullet is an easy to use Python module for physics simulation, robotics and deep reinforcement learning based on the Bullet Physics SDK. With pybullet you can load articulated bodies from URDF, SDF and other file formats. pybullet provides forward dynamics simulation, inverse dynamics computation, forward and inverse kinematics and collision detection and ray intersection queries. Aside from physics simulation, pybullet supports to rendering, with a CPU renderer and OpenGL visualization and support for virtual reality headsets.',
  439. url='https://github.com/bulletphysics/bullet3',
  440. author='Erwin Coumans, Yunfei Bai, Jasmine Hsu',
  441. author_email='[email protected]',
  442. license='zlib',
  443. platforms='any',
  444. keywords=['game development', 'virtual reality', 'physics simulation', 'robotics', 'collision detection', 'opengl'],
  445. ext_modules = [Extension("pybullet",
  446. sources = sources,
  447. libraries = libraries,
  448. extra_compile_args=CXX_FLAGS.split(),
  449. include_dirs = include_dirs + ["src","examples/ThirdPartyLibs","examples/ThirdPartyLibs/glad", "examples/ThirdPartyLibs/enet/include","examples/ThirdPartyLibs/clsocket/src"]
  450. ) ],
  451. classifiers=['Development Status :: 5 - Production/Stable',
  452. 'License :: OSI Approved :: zlib/libpng License',
  453. 'Operating System :: Microsoft :: Windows',
  454. 'Operating System :: POSIX :: Linux',
  455. 'Operating System :: MacOS',
  456. 'Intended Audience :: Science/Research',
  457. "Programming Language :: Python",
  458. 'Programming Language :: Python :: 2.7',
  459. 'Programming Language :: Python :: 3.4',
  460. 'Programming Language :: Python :: 3.5',
  461. 'Programming Language :: Python :: 3.6',
  462. 'Topic :: Games/Entertainment :: Simulation',
  463. 'Topic :: Scientific/Engineering :: Artificial Intelligence',
  464. 'Framework :: Robot Framework'],
  465. package_dir = { '': 'examples/pybullet/gym'},
  466. packages=[x for x in find_packages('examples/pybullet/gym')],
  467. package_data = { 'pybullet_data': need_files }
  468. )