mirror of
https://github.com/godotengine/godot.git
synced 2025-10-19 16:03:29 +00:00

Made possible by EIREXE, xsellier and the SDL team. This commit includes statically linked SDL3 for Windows, Linux and macOS. The vendored copy of SDL3 was setup to only build the required subsystems for gamepad/joystick support, with some patches to be able to make it as minimal as possible and reduce the impact on binary size and code size. Co-authored-by: Álex Román Núñez <eirexe123@gmail.com> Co-authored-by: Xavier Sellier <xsellier@gmail.com> Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
74 lines
2 KiB
Python
74 lines
2 KiB
Python
#!/usr/bin/env python
|
|
from misc.utility.scons_hints import *
|
|
|
|
from methods import print_error
|
|
|
|
Import("env")
|
|
|
|
env.drivers_sources = []
|
|
supported = env.get("supported", [])
|
|
|
|
# OS drivers
|
|
SConscript("unix/SCsub")
|
|
SConscript("windows/SCsub")
|
|
|
|
# Sounds drivers
|
|
SConscript("alsa/SCsub")
|
|
SConscript("pulseaudio/SCsub")
|
|
if env["platform"] == "windows":
|
|
SConscript("wasapi/SCsub")
|
|
if not env.msvc:
|
|
SConscript("backtrace/SCsub")
|
|
if env["xaudio2"]:
|
|
if "xaudio2" not in supported:
|
|
print_error("Target platform '{}' does not support the XAudio2 audio driver".format(env["platform"]))
|
|
Exit(255)
|
|
SConscript("xaudio2/SCsub")
|
|
|
|
# Shared Apple platform drivers
|
|
if env["platform"] in ["macos", "ios", "visionos"]:
|
|
SConscript("apple/SCsub")
|
|
SConscript("coreaudio/SCsub")
|
|
if env["platform"] in ["ios", "visionos"]:
|
|
SConscript("apple_embedded/SCsub")
|
|
|
|
# Accessibility
|
|
if env["accesskit"] and env["platform"] in ["macos", "windows", "linuxbsd"]:
|
|
SConscript("accesskit/SCsub")
|
|
|
|
# Midi drivers
|
|
SConscript("alsamidi/SCsub")
|
|
if env["platform"] in ["macos"]:
|
|
SConscript("coremidi/SCsub")
|
|
SConscript("winmidi/SCsub")
|
|
|
|
# Graphics drivers
|
|
if env["vulkan"]:
|
|
SConscript("vulkan/SCsub")
|
|
if env["d3d12"]:
|
|
if "d3d12" not in supported:
|
|
print_error("Target platform '{}' does not support the D3D12 rendering driver".format(env["platform"]))
|
|
Exit(255)
|
|
SConscript("d3d12/SCsub")
|
|
if env["opengl3"]:
|
|
SConscript("gl_context/SCsub")
|
|
SConscript("gles3/SCsub")
|
|
SConscript("egl/SCsub")
|
|
if env["metal"]:
|
|
if "metal" not in supported:
|
|
print_error("Target platform '{}' does not support the Metal rendering driver".format(env["platform"]))
|
|
Exit(255)
|
|
SConscript("metal/SCsub")
|
|
|
|
# Input drivers
|
|
if env["sdl"] and env["platform"] in ["linuxbsd", "macos", "windows"]:
|
|
# TODO: Evaluate support for Android, iOS, and Web.
|
|
SConscript("sdl/SCsub")
|
|
|
|
# Core dependencies
|
|
SConscript("png/SCsub")
|
|
|
|
env.add_source_files(env.drivers_sources, "*.cpp")
|
|
|
|
lib = env.add_library("drivers", env.drivers_sources)
|
|
env.Prepend(LIBS=[lib])
|