scons: Move lib splitting method to methods.py
Apparently it might still be necessary for some console ports.
This commit is contained in:
parent
51ad1c1668
commit
e34a5324c8
|
@ -100,6 +100,7 @@ env_base.__class__.disable_module = methods.disable_module
|
|||
|
||||
env_base.__class__.add_source_files = methods.add_source_files
|
||||
env_base.__class__.use_windows_spawn_fix = methods.use_windows_spawn_fix
|
||||
env_base.__class__.split_lib = methods.split_lib
|
||||
|
||||
env_base["x86_libtheora_opt_gcc"]=False
|
||||
env_base["x86_libtheora_opt_vc"]=False
|
||||
|
|
|
@ -35,6 +35,9 @@ if (env["tools"]=="yes"):
|
|||
if env['vsproj']=="yes":
|
||||
env.AddToVSProject(env.drivers_sources)
|
||||
|
||||
env.add_source_files(env.drivers_sources,"*.cpp")
|
||||
lib = env.Library("drivers",env.drivers_sources)
|
||||
env.Prepend(LIBS=[lib])
|
||||
if env.split_drivers:
|
||||
env.split_lib("drivers")
|
||||
else:
|
||||
env.add_source_files(env.drivers_sources,"*.cpp")
|
||||
lib = env.Library("drivers",env.drivers_sources)
|
||||
env.Prepend(LIBS=[lib])
|
||||
|
|
44
methods.py
44
methods.py
|
@ -1402,6 +1402,50 @@ def use_windows_spawn_fix(self, platform=None):
|
|||
self['SPAWN'] = mySpawn
|
||||
|
||||
|
||||
def split_lib(self, libname):
|
||||
import string
|
||||
env = self
|
||||
|
||||
num = 0
|
||||
cur_base = ""
|
||||
max_src = 64
|
||||
list = []
|
||||
lib_list = []
|
||||
|
||||
for f in getattr(env, libname + "_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(libname + str(num), list)
|
||||
lib_list.append(lib)
|
||||
list = []
|
||||
num = num + 1
|
||||
cur_base = base
|
||||
list.append(f)
|
||||
|
||||
lib = env.Library(libname + 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(libname + "_collated", lib_list)
|
||||
lib_list = [lib]
|
||||
|
||||
lib_base = []
|
||||
env.add_source_files(lib_base, "*.cpp")
|
||||
lib_list.insert(0, env.Library(libname, lib_base))
|
||||
|
||||
env.Prepend(LIBS = lib_list)
|
||||
|
||||
|
||||
def save_active_platforms(apnames,ap):
|
||||
|
||||
for x in ap:
|
||||
|
|
Loading…
Reference in New Issue