demos.lua 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. -- Here are the lists of demos to build. Add/remove new
  2. -- demos here and everything else should just work
  3. local demos =
  4. {
  5. "boxstack",
  6. "buggy",
  7. "chain1",
  8. "chain2",
  9. "collision",
  10. "crash",
  11. "cylvssphere",
  12. "feedback",
  13. "friction",
  14. "gyroscopic",
  15. "heightfield",
  16. "hinge",
  17. "I",
  18. "jointPR",
  19. "jointPU",
  20. "joints",
  21. "kinematic",
  22. "motion",
  23. "motor",
  24. "ode",
  25. "piston",
  26. "plane2d",
  27. "slider",
  28. "space",
  29. "space_stress",
  30. "step"
  31. }
  32. if (not options["no-trimesh"]) then
  33. table.insert(demos, "basket")
  34. table.insert(demos, "cyl")
  35. table.insert(demos, "moving_trimesh")
  36. table.insert(demos, "trimesh")
  37. end
  38. -- Output is placed in a directory named for the target toolset.
  39. packagepath = options["target"]
  40. -- Factory function for demo packages
  41. function makedemo(index, name)
  42. package = newpackage()
  43. package.name = "demo_" .. name
  44. package.kind = "exe"
  45. package.language = "c++"
  46. package.path = packagepath
  47. package.objdir = "obj/"..name
  48. package.includepaths =
  49. {
  50. "../../include",
  51. "../../ode/src"
  52. }
  53. package.defines = { "_CRT_SECURE_NO_DEPRECATE" }
  54. if (options.target == "vs6" or options.target == "vs2002" or options.target == "vs2003") then
  55. package.config.DebugLib.buildflags = { "static-runtime" }
  56. package.config.ReleaseLib.buildflags = { "static-runtime" }
  57. end
  58. package.links = { "ode", "drawstuff" }
  59. if (windows) then
  60. table.insert(package.links, { "user32", "winmm", "gdi32", "opengl32", "glu32" })
  61. else
  62. table.insert(package.links, { "GL", "GLU" })
  63. end
  64. if (name == "chain1") then
  65. package.files = { "../../ode/demo/demo_" .. name .. ".c" }
  66. else
  67. package.files = { "../../ode/demo/demo_" .. name .. ".cpp" }
  68. end
  69. if (windows) then
  70. table.insert(package.defines, "WIN32")
  71. table.insert(package.files, "../../drawstuff/src/resources.rc")
  72. end
  73. if (not options["enable-static-only"]) then
  74. table.insert(package.config["DebugSingleDLL"].defines, "dSINGLE")
  75. table.insert(package.config["ReleaseSingleDLL"].defines, "dSINGLE")
  76. table.insert(package.config["DebugDoubleDLL"].defines, "dDOUBLE")
  77. table.insert(package.config["ReleaseDoubleDLL"].defines, "dDOUBLE")
  78. end
  79. if (not options["enable-shared-only"]) then
  80. table.insert(package.config["DebugSingleLib"].defines, "dSINGLE")
  81. table.insert(package.config["ReleaseSingleLib"].defines, "dSINGLE")
  82. table.insert(package.config["DebugDoubleLib"].defines, "dDOUBLE")
  83. table.insert(package.config["ReleaseDoubleLib"].defines, "dDOUBLE")
  84. end
  85. end
  86. table.foreach(demos, makedemo)