2016-10-17 14:50:25 +08:00
|
|
|
#!/usr/bin/env python
|
2024-06-12 04:19:07 +08:00
|
|
|
from misc.utility.scons_hints import *
|
2016-10-17 14:50:25 +08:00
|
|
|
|
2024-09-28 01:30:51 +08:00
|
|
|
from methods import print_error
|
|
|
|
|
2020-03-30 14:28:32 +08:00
|
|
|
Import("env")
|
2015-05-04 05:18:56 +08:00
|
|
|
|
2016-10-31 01:57:40 +08:00
|
|
|
env.drivers_sources = []
|
2024-08-21 14:58:18 +08:00
|
|
|
supported = env.get("supported", [])
|
2016-05-22 07:07:32 +08:00
|
|
|
|
2016-10-15 18:39:28 +08:00
|
|
|
# OS drivers
|
2020-03-30 14:28:32 +08:00
|
|
|
SConscript("unix/SCsub")
|
|
|
|
SConscript("windows/SCsub")
|
2016-10-15 18:39:28 +08:00
|
|
|
|
|
|
|
# Sounds drivers
|
2020-03-30 14:28:32 +08:00
|
|
|
SConscript("alsa/SCsub")
|
2024-02-21 20:02:10 +08:00
|
|
|
if env["platform"] == "ios" or env["platform"] == "macos":
|
|
|
|
SConscript("coreaudio/SCsub")
|
2020-03-30 14:28:32 +08:00
|
|
|
SConscript("pulseaudio/SCsub")
|
|
|
|
if env["platform"] == "windows":
|
2017-08-28 01:01:34 +08:00
|
|
|
SConscript("wasapi/SCsub")
|
2022-05-13 20:42:07 +08:00
|
|
|
if not env.msvc:
|
|
|
|
SConscript("backtrace/SCsub")
|
2020-03-30 14:28:32 +08:00
|
|
|
if env["xaudio2"]:
|
2024-08-21 14:58:18 +08:00
|
|
|
if "xaudio2" not in supported:
|
2024-09-28 01:30:51 +08:00
|
|
|
print_error("Target platform '{}' does not support the XAudio2 audio driver".format(env["platform"]))
|
2024-08-21 14:58:18 +08:00
|
|
|
Exit(255)
|
2016-11-01 07:24:30 +08:00
|
|
|
SConscript("xaudio2/SCsub")
|
2016-10-15 18:39:28 +08:00
|
|
|
|
2018-07-14 20:11:28 +08:00
|
|
|
# Midi drivers
|
2020-03-30 14:28:32 +08:00
|
|
|
SConscript("alsamidi/SCsub")
|
|
|
|
SConscript("coremidi/SCsub")
|
|
|
|
SConscript("winmidi/SCsub")
|
2018-07-14 20:11:28 +08:00
|
|
|
|
2016-10-15 18:39:28 +08:00
|
|
|
# Graphics drivers
|
2021-05-26 00:26:38 +08:00
|
|
|
if env["vulkan"]:
|
2020-03-30 14:28:32 +08:00
|
|
|
SConscript("vulkan/SCsub")
|
2023-01-09 23:56:16 +08:00
|
|
|
if env["d3d12"]:
|
2024-08-21 14:58:18 +08:00
|
|
|
if "d3d12" not in supported:
|
2024-09-28 01:30:51 +08:00
|
|
|
print_error("Target platform '{}' does not support the D3D12 rendering driver".format(env["platform"]))
|
2024-08-21 14:58:18 +08:00
|
|
|
Exit(255)
|
2023-01-09 23:56:16 +08:00
|
|
|
SConscript("d3d12/SCsub")
|
2021-10-26 01:16:40 +08:00
|
|
|
if env["opengl3"]:
|
2020-11-19 02:11:30 +08:00
|
|
|
SConscript("gl_context/SCsub")
|
2021-10-26 01:16:40 +08:00
|
|
|
SConscript("gles3/SCsub")
|
2021-11-12 20:49:49 +08:00
|
|
|
SConscript("egl/SCsub")
|
2024-02-20 02:52:00 +08:00
|
|
|
if env["metal"]:
|
2024-08-21 14:58:18 +08:00
|
|
|
if "metal" not in supported:
|
2024-09-28 01:30:51 +08:00
|
|
|
print_error("Target platform '{}' does not support the Metal rendering driver".format(env["platform"]))
|
2024-08-21 14:58:18 +08:00
|
|
|
Exit(255)
|
2024-02-20 02:52:00 +08:00
|
|
|
SConscript("metal/SCsub")
|
2015-05-04 05:18:56 +08:00
|
|
|
|
2016-10-15 18:39:28 +08:00
|
|
|
# Core dependencies
|
2016-11-01 07:24:30 +08:00
|
|
|
SConscript("png/SCsub")
|
2016-10-15 18:39:28 +08:00
|
|
|
|
2019-12-10 02:22:08 +08:00
|
|
|
env.add_source_files(env.drivers_sources, "*.cpp")
|
|
|
|
|
|
|
|
lib = env.add_library("drivers", env.drivers_sources)
|
|
|
|
env.Prepend(LIBS=[lib])
|