SCsub 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. if env["platform"] == "ios" or env["platform"] == "macos":
  13. SConscript("coreaudio/SCsub")
  14. SConscript("pulseaudio/SCsub")
  15. if env["platform"] == "windows":
  16. SConscript("wasapi/SCsub")
  17. if not env.msvc:
  18. SConscript("backtrace/SCsub")
  19. if env["xaudio2"]:
  20. if "xaudio2" not in supported:
  21. print_error("Target platform '{}' does not support the XAudio2 audio driver".format(env["platform"]))
  22. Exit(255)
  23. SConscript("xaudio2/SCsub")
  24. # Shared Apple platform drivers
  25. if env["platform"] in ["macos", "ios"]:
  26. SConscript("apple/SCsub")
  27. # Midi drivers
  28. SConscript("alsamidi/SCsub")
  29. if env["platform"] in ["macos", "ios"]:
  30. SConscript("coremidi/SCsub")
  31. SConscript("winmidi/SCsub")
  32. # Graphics drivers
  33. if env["vulkan"]:
  34. SConscript("vulkan/SCsub")
  35. if env["d3d12"]:
  36. if "d3d12" not in supported:
  37. print_error("Target platform '{}' does not support the D3D12 rendering driver".format(env["platform"]))
  38. Exit(255)
  39. SConscript("d3d12/SCsub")
  40. if env["opengl3"]:
  41. SConscript("gl_context/SCsub")
  42. SConscript("gles3/SCsub")
  43. SConscript("egl/SCsub")
  44. if env["metal"]:
  45. if "metal" not in supported:
  46. print_error("Target platform '{}' does not support the Metal rendering driver".format(env["platform"]))
  47. Exit(255)
  48. SConscript("metal/SCsub")
  49. # Core dependencies
  50. SConscript("png/SCsub")
  51. env.add_source_files(env.drivers_sources, "*.cpp")
  52. lib = env.add_library("drivers", env.drivers_sources)
  53. env.Prepend(LIBS=[lib])