Import('env') env.drivers_sources=[] if ("builtin_zlib" in env and env["builtin_zlib"] == "yes"): SConscript("zlib/SCsub"); # OS drivers SConscript('unix/SCsub'); SConscript('windows/SCsub'); # Sounds drivers SConscript('alsa/SCsub'); SConscript('pulseaudio/SCsub'); if (env["platform"] == "windows"): SConscript("rtaudio/SCsub"); if (env["xaudio2"] == "yes"): SConscript("xaudio2/SCsub"); # Graphics drivers SConscript('gles2/SCsub'); SConscript('gl_context/SCsub'); # Core dependencies SConscript("png/SCsub"); SConscript("nrex/SCsub"); # Tools override # FIXME: Should likely be integrated in the tools/ codebase if (env["tools"]=="yes"): SConscript("convex_decomp/SCsub"); if env['vsproj']=="yes": env.AddToVSProject(env.drivers_sources) # Split drivers, this used to be needed for windows until separate builders for windows were created # FIXME: Check if still needed now that the drivers were made more lightweight if (env.split_drivers): import string num = 0 cur_base = "" max_src = 64 list = [] lib_list = [] for f in env.drivers_sources: fname = "" if type(f) == type(""): fname = env.File(f).path else: fname = env.File(f)[0].path fname = fname.replace("\\", "/") base = string.join(fname.split("/")[:2], "/") if base != cur_base and len(list) > max_src: if num > 0: lib = env.Library("drivers"+str(num), list) lib_list.append(lib) list = [] num = num+1 cur_base = base list.append(f) lib = env.Library("drivers"+str(num), list) lib_list.append(lib) if len(lib_list) > 0: import os, sys if os.name=='posix' and sys.platform=='msys': env.Replace(ARFLAGS=['rcsT']) lib = env.Library("drivers_collated", lib_list) lib_list = [lib] drivers_base=[] env.add_source_files(drivers_base,"*.cpp") lib_list.insert(0, env.Library("drivers", drivers_base)) env.Prepend(LIBS=lib_list) else: env.add_source_files(env.drivers_sources,"*.cpp") lib = env.Library("drivers",env.drivers_sources) env.Prepend(LIBS=[lib])