#!/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") if env["platform"] == "ios" or env["platform"] == "macos": SConscript("coreaudio/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") # Midi drivers SConscript("alsamidi/SCsub") 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") # 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])