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. SConscript("coremidi/SCsub")
  30. SConscript("winmidi/SCsub")
  31. # Graphics drivers
  32. if env["vulkan"]:
  33. SConscript("vulkan/SCsub")
  34. if env["d3d12"]:
  35. if "d3d12" not in supported:
  36. print_error("Target platform '{}' does not support the D3D12 rendering driver".format(env["platform"]))
  37. Exit(255)
  38. SConscript("d3d12/SCsub")
  39. if env["opengl3"]:
  40. SConscript("gl_context/SCsub")
  41. SConscript("gles3/SCsub")
  42. SConscript("egl/SCsub")
  43. if env["metal"]:
  44. if "metal" not in supported:
  45. print_error("Target platform '{}' does not support the Metal rendering driver".format(env["platform"]))
  46. Exit(255)
  47. SConscript("metal/SCsub")
  48. # Core dependencies
  49. SConscript("png/SCsub")
  50. env.add_source_files(env.drivers_sources, "*.cpp")
  51. lib = env.add_library("drivers", env.drivers_sources)
  52. env.Prepend(LIBS=[lib])