premake4.lua 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. project "App_PhysicsServer_SharedMemory"
  2. if _OPTIONS["ios"] then
  3. kind "WindowedApp"
  4. else
  5. kind "ConsoleApp"
  6. end
  7. includedirs {".","../../src", "../ThirdPartyLibs"}
  8. links {
  9. "BulletSoftBody", "Bullet3Common","BulletInverseDynamicsUtils", "BulletInverseDynamics", "BulletDynamics","BulletCollision", "LinearMath", "BussIK"
  10. }
  11. if os.is("Linux") then
  12. links{"dl"}
  13. end
  14. language "C++"
  15. myfiles =
  16. {
  17. "b3RobotSimulatorClientAPI_NoDirect.cpp",
  18. "b3RobotSimulatorClientAPI_NoDirect.h",
  19. "IKTrajectoryHelper.cpp",
  20. "IKTrajectoryHelper.h",
  21. "PhysicsClient.cpp",
  22. "PhysicsClientSharedMemory.cpp",
  23. "PhysicsClientExample.cpp",
  24. "PhysicsServerExample.cpp",
  25. "PhysicsServerExampleBullet2.cpp",
  26. "PhysicsServerSharedMemory.cpp",
  27. "PhysicsServerSharedMemory.h",
  28. "PhysicsServer.cpp",
  29. "PhysicsServer.h",
  30. "PhysicsClientC_API.cpp",
  31. "GraphicsClientExample.cpp",
  32. "GraphicsClientExample.h",
  33. "GraphicsServerExample.cpp",
  34. "GraphicsServerExample.h",
  35. "GraphicsSharedMemoryBlock.h",
  36. "GraphicsSharedMemoryCommands.h",
  37. "GraphicsSharedMemoryPublic.h",
  38. "RemoteGUIHelper.cpp",
  39. "RemoteGUIHelper.h",
  40. "SharedMemoryCommands.h",
  41. "SharedMemoryPublic.h",
  42. "PhysicsServer.cpp",
  43. "PosixSharedMemory.cpp",
  44. "Win32SharedMemory.cpp",
  45. "InProcessMemory.cpp",
  46. "PhysicsDirect.cpp",
  47. "PhysicsDirect.h",
  48. "PhysicsDirectC_API.cpp",
  49. "PhysicsDirectC_API.h",
  50. "PhysicsLoopBack.cpp",
  51. "PhysicsLoopBack.h",
  52. "PhysicsLoopBackC_API.cpp",
  53. "PhysicsLoopBackC_API.h",
  54. "PhysicsClientSharedMemory_C_API.cpp",
  55. "PhysicsClientSharedMemory_C_API.h",
  56. "PhysicsClientSharedMemory2_C_API.cpp",
  57. "PhysicsClientSharedMemory2_C_API.h",
  58. "PhysicsClientSharedMemory2.cpp",
  59. "PhysicsClientSharedMemory2.h",
  60. "SharedMemoryCommandProcessor.cpp",
  61. "SharedMemoryCommandProcessor.h",
  62. "PhysicsServerCommandProcessor.cpp",
  63. "PhysicsServerCommandProcessor.h",
  64. "b3PluginManager.cpp",
  65. "b3PluginManager.h",
  66. "plugins/collisionFilterPlugin/collisionFilterPlugin.cpp",
  67. "plugins/pdControlPlugin/pdControlPlugin.cpp",
  68. "plugins/pdControlPlugin/pdControlPlugin.h",
  69. "../Importers/ImportURDFDemo/ConvertRigidBodies2MultiBody.h",
  70. "../Importers/ImportURDFDemo/MultiBodyCreationInterface.h",
  71. "../Importers/ImportURDFDemo/MyMultiBodyCreator.cpp",
  72. "../Importers/ImportURDFDemo/MyMultiBodyCreator.h",
  73. "../Importers/ImportURDFDemo/BulletUrdfImporter.cpp",
  74. "../Importers/ImportURDFDemo/BulletUrdfImporter.h",
  75. "../Importers/ImportURDFDemo/UrdfParser.cpp",
  76. "../Importers/ImportURDFDemo/urdfStringSplit.cpp",
  77. "../Importers/ImportURDFDemo/UrdfParser.cpp",
  78. "../Importers/ImportURDFDemo/UrdfParser.h",
  79. "../Importers/ImportURDFDemo/URDF2Bullet.cpp",
  80. "../Importers/ImportURDFDemo/URDF2Bullet.h",
  81. "../Importers/ImportMJCFDemo/BulletMJCFImporter.cpp",
  82. "../Importers/ImportMJCFDemo/BulletMJCFImporter.h",
  83. "../Utils/b3ResourcePath.cpp",
  84. "../Utils/b3Clock.cpp",
  85. "../Utils/RobotLoggingUtil.cpp",
  86. "../Utils/RobotLoggingUtil.h",
  87. "../Utils/ChromeTraceUtil.cpp",
  88. "../Utils/ChromeTraceUtil.h",
  89. "../../Extras/Serialize/BulletWorldImporter/*",
  90. "../../Extras/Serialize/BulletFileLoader/*",
  91. "../Importers/ImportURDFDemo/URDFImporterInterface.h",
  92. "../Importers/ImportURDFDemo/URDFJointTypes.h",
  93. "../Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp",
  94. "../Importers/ImportObjDemo/LoadMeshFromObj.cpp",
  95. "../Importers/ImportSTLDemo/ImportSTLSetup.h",
  96. "../Importers/ImportSTLDemo/LoadMeshFromSTL.h",
  97. "../Importers/ImportColladaDemo/LoadMeshFromCollada.cpp",
  98. "../Importers/ImportColladaDemo/ColladaGraphicsInstance.h",
  99. "../ThirdPartyLibs/Wavefront/tiny_obj_loader.cpp",
  100. "../ThirdPartyLibs/tinyxml2/tinyxml2.cpp",
  101. "../Importers/ImportMeshUtility/b3ImportMeshUtility.cpp",
  102. "../ThirdPartyLibs/stb_image/stb_image.cpp",
  103. "../ThirdPartyLibs/stb_image/stb_image_write.cpp",
  104. }
  105. files {
  106. myfiles,
  107. "../OpenGLWindow/SimpleCamera.cpp",
  108. "../OpenGLWindow/SimpleCamera.h",
  109. "main.cpp",
  110. }
  111. if (_OPTIONS["enable_static_vr_plugin"]) then
  112. defines("STATIC_LINK_VR_PLUGIN")
  113. files {"plugins/vrSyncPlugin/vrSyncPlugin.cpp"}
  114. end
  115. if (_OPTIONS["enable_static_tinyrenderer_plugin"]) then
  116. files
  117. {
  118. "plugins/tinyRendererPlugin/tinyRendererPlugin.cpp",
  119. "plugins/tinyRendererPlugin/TinyRendererVisualShapeConverter.cpp",
  120. "../TinyRenderer/geometry.cpp",
  121. "../TinyRenderer/model.cpp",
  122. "../TinyRenderer/tgaimage.cpp",
  123. "../TinyRenderer/our_gl.cpp",
  124. "../TinyRenderer/TinyRenderer.cpp"
  125. }
  126. else
  127. defines("SKIP_STATIC_TINYRENDERER_PLUGIN")
  128. end
  129. files {
  130. "../MultiThreading/b3ThreadSupportInterface.cpp",
  131. "../MultiThreading/b3ThreadSupportInterface.h"
  132. }
  133. if os.is("Windows") then
  134. files {
  135. "../MultiThreading/b3Win32ThreadSupport.cpp",
  136. "../MultiThreading/b3Win32ThreadSupport.h"
  137. }
  138. --links {"winmm"}
  139. --defines {"__WINDOWS_MM__", "WIN32"}
  140. end
  141. if os.is("Linux") then
  142. files {
  143. "../MultiThreading/b3PosixThreadSupport.cpp",
  144. "../MultiThreading/b3PosixThreadSupport.h"
  145. }
  146. links {"pthread"}
  147. end
  148. if os.is("MacOSX") then
  149. files {
  150. "../MultiThreading/b3PosixThreadSupport.cpp",
  151. "../MultiThreading/b3PosixThreadSupport.h"
  152. }
  153. links {"pthread"}
  154. --links{"CoreAudio.framework", "coreMIDI.framework", "Cocoa.framework"}
  155. --defines {"__MACOSX_CORE__"}
  156. end
  157. project "App_PhysicsServer_SharedMemory_GUI"
  158. if _OPTIONS["ios"] then
  159. kind "WindowedApp"
  160. else
  161. kind "ConsoleApp"
  162. end
  163. defines {"B3_USE_STANDALONE_EXAMPLE"}
  164. includedirs {"../../src", "../ThirdPartyLibs"}
  165. links {
  166. "BulletSoftBody", "BulletInverseDynamicsUtils", "BulletInverseDynamics", "BulletDynamics","BulletCollision", "LinearMath", "OpenGL_Window","Bullet3Common","BussIK"
  167. }
  168. initOpenGL()
  169. initGlew()
  170. language "C++"
  171. if _OPTIONS["midi"] then
  172. defines {"B3_USE_MIDI"}
  173. includedirs{"../ThirdPartyLibs/midi"}
  174. files {
  175. "../ThirdPartyLibs/midi/RtMidi.cpp",
  176. "../ThirdPartyLibs/midi/RtMidi.h",
  177. "../ThirdPartyLibs/midi/RtError.h",
  178. }
  179. if os.is("Windows") then
  180. links {"winmm"}
  181. defines {"__WINDOWS_MM__", "WIN32"}
  182. end
  183. if os.is("Linux") then
  184. defines {"__LINUX_ALSA__"}
  185. links {"asound","pthread"}
  186. end
  187. if os.is("MacOSX") then
  188. links{"CoreAudio.framework", "coreMIDI.framework", "Cocoa.framework"}
  189. defines {"__MACOSX_CORE__"}
  190. end
  191. end
  192. if ( _OPTIONS["enable_static_tinyrenderer_plugin"]) then
  193. files
  194. {
  195. "plugins/tinyRendererPlugin/tinyRendererPlugin.cpp",
  196. "plugins/tinyRendererPlugin/TinyRendererVisualShapeConverter.cpp",
  197. "../TinyRenderer/geometry.cpp",
  198. "../TinyRenderer/model.cpp",
  199. "../TinyRenderer/tgaimage.cpp",
  200. "../TinyRenderer/our_gl.cpp",
  201. "../TinyRenderer/TinyRenderer.cpp"
  202. }
  203. else
  204. defines("SKIP_STATIC_TINYRENDERER_PLUGIN")
  205. end
  206. files {
  207. myfiles,
  208. "../StandaloneMain/main_opengl_single_example.cpp",
  209. "../ExampleBrowser/OpenGLGuiHelper.cpp",
  210. "../ExampleBrowser/GL_ShapeDrawer.cpp",
  211. "../ExampleBrowser/CollisionShape2TriangleMesh.cpp",
  212. }
  213. if (_OPTIONS["enable_static_vr_plugin"]) then
  214. defines("STATIC_LINK_VR_PLUGIN")
  215. files {"plugins/vrSyncPlugin/vrSyncPlugin.cpp"}
  216. end
  217. if os.is("Linux") then initX11() end
  218. if os.is("MacOSX") then
  219. links{"Cocoa.framework"}
  220. end
  221. files {
  222. "../MultiThreading/b3ThreadSupportInterface.cpp",
  223. "../MultiThreading/b3ThreadSupportInterface.h"
  224. }
  225. if os.is("Windows") then
  226. files {
  227. "../MultiThreading/b3Win32ThreadSupport.cpp",
  228. "../MultiThreading/b3Win32ThreadSupport.h"
  229. }
  230. --links {"winmm"}
  231. --defines {"__WINDOWS_MM__", "WIN32"}
  232. end
  233. if os.is("Linux") then
  234. files {
  235. "../MultiThreading/b3PosixThreadSupport.cpp",
  236. "../MultiThreading/b3PosixThreadSupport.h"
  237. }
  238. links {"pthread"}
  239. end
  240. if os.is("MacOSX") then
  241. files {
  242. "../MultiThreading/b3PosixThreadSupport.cpp",
  243. "../MultiThreading/b3PosixThreadSupport.h"
  244. }
  245. links {"pthread"}
  246. --links{"CoreAudio.framework", "coreMIDI.framework", "Cocoa.framework"}
  247. --defines {"__MACOSX_CORE__"}
  248. end
  249. if os.is("Windows") then
  250. project "App_PhysicsServer_SharedMemory_VR"
  251. --for now, only enable VR under Windows, until compilation issues are resolved on Mac/Linux
  252. defines {"B3_USE_STANDALONE_EXAMPLE","BT_ENABLE_VR"}
  253. if _OPTIONS["ios"] then
  254. kind "WindowedApp"
  255. else
  256. kind "ConsoleApp"
  257. end
  258. if _OPTIONS["midi"] then
  259. defines {"B3_USE_MIDI"}
  260. includedirs{"../ThirdPartyLibs/midi"}
  261. files {
  262. "../ThirdPartyLibs/midi/RtMidi.cpp",
  263. "../ThirdPartyLibs/midi/RtMidi.h",
  264. "../ThirdPartyLibs/midi/RtError.h",
  265. }
  266. if os.is("Windows") then
  267. links {"winmm"}
  268. defines {"__WINDOWS_MM__", "WIN32"}
  269. end
  270. if os.is("Linux") then
  271. defines {"__LINUX_ALSA__"}
  272. links {"asound","pthread"}
  273. end
  274. if os.is("MacOSX") then
  275. links{"CoreAudio.framework", "coreMIDI.framework", "Cocoa.framework"}
  276. defines {"__MACOSX_CORE__"}
  277. end
  278. end
  279. if _OPTIONS["audio"] then
  280. files {
  281. "../TinyAudio/b3ADSR.cpp",
  282. "../TinyAudio/b3AudioListener.cpp",
  283. "../TinyAudio/b3ReadWavFile.cpp",
  284. "../TinyAudio/b3SoundEngine.cpp",
  285. "../TinyAudio/b3SoundSource.cpp",
  286. "../TinyAudio/b3WriteWavFile.cpp",
  287. "../TinyAudio/RtAudio.cpp",
  288. }
  289. defines {"B3_ENABLE_TINY_AUDIO"}
  290. if os.is("Windows") then
  291. links {"winmm","Wsock32","dsound"}
  292. defines {"WIN32","__WINDOWS_MM__","__WINDOWS_DS__"}
  293. end
  294. if os.is("Linux") then initX11()
  295. defines {"__OS_LINUX__","__LINUX_ALSA__"}
  296. links {"asound","pthread"}
  297. end
  298. if os.is("MacOSX") then
  299. links{"Cocoa.framework"}
  300. links{"CoreAudio.framework", "coreMIDI.framework", "Cocoa.framework"}
  301. defines {"__OS_MACOSX__","__MACOSX_CORE__"}
  302. end
  303. end
  304. includedirs {
  305. ".","../../src", "../ThirdPartyLibs",
  306. "../ThirdPartyLibs/openvr/headers",
  307. "../ThirdPartyLibs/openvr/samples/shared"
  308. }
  309. links {
  310. "BulletSoftBody", "BulletInverseDynamicsUtils", "BulletInverseDynamics","Bullet3Common", "BulletDynamics","BulletCollision", "LinearMath","OpenGL_Window","openvr_api","BussIK"
  311. }
  312. language "C++"
  313. initOpenGL()
  314. initGlew()
  315. if ( _OPTIONS["enable_static_tinyrenderer_plugin"]) then
  316. files
  317. {
  318. "plugins/tinyRendererPlugin/tinyRendererPlugin.cpp",
  319. "plugins/tinyRendererPlugin/TinyRendererVisualShapeConverter.cpp",
  320. "../TinyRenderer/geometry.cpp",
  321. "../TinyRenderer/model.cpp",
  322. "../TinyRenderer/tgaimage.cpp",
  323. "../TinyRenderer/our_gl.cpp",
  324. "../TinyRenderer/TinyRenderer.cpp"
  325. }
  326. else
  327. defines("SKIP_STATIC_TINYRENDERER_PLUGIN")
  328. end
  329. files
  330. {
  331. myfiles,
  332. "../StandaloneMain/hellovr_opengl_main.cpp",
  333. "../ExampleBrowser/OpenGLGuiHelper.cpp",
  334. "../ExampleBrowser/GL_ShapeDrawer.cpp",
  335. "../ExampleBrowser/CollisionShape2TriangleMesh.cpp",
  336. "../RenderingExamples/TinyVRGui.cpp",
  337. "../RenderingExamples/TimeSeriesCanvas.cpp",
  338. "../RenderingExamples/TimeSeriesFontData.cpp",
  339. "../ThirdPartyLibs/openvr/samples/shared/lodepng.cpp",
  340. "../ThirdPartyLibs/openvr/samples/shared/lodepng.h",
  341. "../ThirdPartyLibs/openvr/samples/shared/Matrices.cpp",
  342. "../ThirdPartyLibs/openvr/samples/shared/Matrices.h",
  343. "../ThirdPartyLibs/openvr/samples/shared/strtools.cpp",
  344. "../ThirdPartyLibs/openvr/samples/shared/pathtools.cpp",
  345. "../ThirdPartyLibs/openvr/samples/shared/pathtools.h",
  346. "../ThirdPartyLibs/openvr/samples/shared/Vectors.h",
  347. }
  348. if (_OPTIONS["enable_static_vr_plugin"]) then
  349. defines("STATIC_LINK_VR_PLUGIN")
  350. files {"plugins/vrSyncPlugin/vrSyncPlugin.cpp"}
  351. end
  352. if os.is("Windows") then
  353. configuration {"x32"}
  354. libdirs {"../ThirdPartyLibs/openvr/lib/win32"}
  355. configuration {"x64"}
  356. libdirs {"../ThirdPartyLibs/openvr/lib/win64"}
  357. configuration{}
  358. end
  359. if os.is("Linux") then initX11() end
  360. if os.is("MacOSX") then
  361. links{"Cocoa.framework"}
  362. end
  363. files {
  364. "../MultiThreading/b3ThreadSupportInterface.cpp",
  365. "../MultiThreading/b3ThreadSupportInterface.h"
  366. }
  367. if os.is("Windows") then
  368. files {
  369. "../MultiThreading/b3Win32ThreadSupport.cpp",
  370. "../MultiThreading/b3Win32ThreadSupport.h"
  371. }
  372. --links {"winmm"}
  373. --defines {"__WINDOWS_MM__", "WIN32"}
  374. end
  375. if os.is("Linux") then
  376. files {
  377. "../MultiThreading/b3PosixThreadSupport.cpp",
  378. "../MultiThreading/b3PosixThreadSupport.h"
  379. }
  380. links {"pthread"}
  381. end
  382. if os.is("MacOSX") then
  383. files {
  384. "../MultiThreading/b3PosixThreadSupport.cpp",
  385. "../MultiThreading/b3PosixThreadSupport.h"
  386. }
  387. links {"pthread"}
  388. --links{"CoreAudio.framework", "coreMIDI.framework", "Cocoa.framework"}
  389. --defines {"__MACOSX_CORE__"}
  390. end
  391. end
  392. include "udp"
  393. include "tcp"
  394. if (_OPTIONS["enable_static_test_plugin"]) then
  395. include "plugins/testPlugin"
  396. end
  397. if (_OPTIONS["enable_vr_sync_plugin"]) then
  398. include "plugins/vrSyncPlugin"
  399. end
  400. if (_OPTIONS["enable_static_tiny_renderer__plugin"]) then
  401. include "plugins/tinyRendererPlugin"
  402. end
  403. if (_OPTIONS["enable_static_pd_control_plugin"]) then
  404. include "plugins/pdControlPlugin"
  405. end
  406. if (_OPTIONS["enable_static_collision_filter_plugin"]) then
  407. include "plugins/collisionFilterPlugin"
  408. end
  409. if _OPTIONS["enable_egl"] then
  410. include "plugins/eglPlugin"
  411. end
  412. if _OPTIONS["enable_grpc"] then
  413. include "grpc"
  414. include "plugins/grpcPlugin"
  415. end