SCsub 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/usr/bin/env python
  2. from misc.utility.scons_hints import *
  3. from methods import print_error
  4. Import("env")
  5. env.drivers_sources = []
  6. supported = env.get("supported", [])
  7. # OS drivers
  8. SConscript("unix/SCsub")
  9. SConscript("windows/SCsub")
  10. # Sounds drivers
  11. SConscript("alsa/SCsub")
  12. SConscript("pulseaudio/SCsub")
  13. if env["platform"] == "windows":
  14. SConscript("wasapi/SCsub")
  15. if not env.msvc:
  16. SConscript("backtrace/SCsub")
  17. if env["xaudio2"]:
  18. if "xaudio2" not in supported:
  19. print_error("Target platform '{}' does not support the XAudio2 audio driver".format(env["platform"]))
  20. Exit(255)
  21. SConscript("xaudio2/SCsub")
  22. # Shared Apple platform drivers
  23. if env["platform"] in ["macos", "ios", "visionos"]:
  24. SConscript("apple/SCsub")
  25. SConscript("coreaudio/SCsub")
  26. if env["platform"] in ["ios", "visionos"]:
  27. SConscript("apple_embedded/SCsub")
  28. # Accessibility
  29. if env["accesskit"] and env["platform"] in ["macos", "windows", "linuxbsd"]:
  30. SConscript("accesskit/SCsub")
  31. # Midi drivers
  32. SConscript("alsamidi/SCsub")
  33. if env["platform"] in ["macos"]:
  34. SConscript("coremidi/SCsub")
  35. SConscript("winmidi/SCsub")
  36. # Graphics drivers
  37. if env["vulkan"]:
  38. SConscript("vulkan/SCsub")
  39. if env["d3d12"]:
  40. if "d3d12" not in supported:
  41. print_error("Target platform '{}' does not support the D3D12 rendering driver".format(env["platform"]))
  42. Exit(255)
  43. SConscript("d3d12/SCsub")
  44. if env["opengl3"]:
  45. SConscript("gl_context/SCsub")
  46. SConscript("gles3/SCsub")
  47. SConscript("egl/SCsub")
  48. if env["metal"]:
  49. if "metal" not in supported:
  50. print_error("Target platform '{}' does not support the Metal rendering driver".format(env["platform"]))
  51. Exit(255)
  52. SConscript("metal/SCsub")
  53. # Input drivers
  54. if env["sdl"] and env["platform"] in ["linuxbsd", "macos", "windows"]:
  55. # TODO: Evaluate support for Android, iOS, and Web.
  56. SConscript("sdl/SCsub")
  57. # Core dependencies
  58. SConscript("png/SCsub")
  59. env.add_source_files(env.drivers_sources, "*.cpp")
  60. lib = env.add_library("drivers", env.drivers_sources)
  61. env.Prepend(LIBS=[lib])