39 lines
		
	
	
		
			982 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			982 B
		
	
	
	
		
			Python
		
	
	
	
	
	
import posixpath
 | 
						|
import os
 | 
						|
 | 
						|
 | 
						|
def BuildModule(env, module):
 | 
						|
    src_dir = str(env.Dir(".").srcdir or os.getcwd())
 | 
						|
    module_sconscript = posixpath.join(src_dir, module, "SConscript")
 | 
						|
    if not os.path.exists(module_sconscript):
 | 
						|
        module_sconscript = posixpath.join(src_dir, f"{module}.scons")
 | 
						|
        if not os.path.exists(module_sconscript):
 | 
						|
            print(f"Cannot build module {module}: scons file not found")
 | 
						|
            Exit(2)
 | 
						|
 | 
						|
    return env.SConscript(
 | 
						|
        module_sconscript,
 | 
						|
        variant_dir=posixpath.join(env.subst("$BUILD_DIR"), module),
 | 
						|
        duplicate=0,
 | 
						|
    )
 | 
						|
 | 
						|
 | 
						|
def BuildModules(env, modules):
 | 
						|
    result = []
 | 
						|
    for module in modules:
 | 
						|
        build_res = env.BuildModule(module)
 | 
						|
        # print("module ", module, build_res)
 | 
						|
        if build_res is None:
 | 
						|
            continue
 | 
						|
        result.append(build_res)
 | 
						|
    return result
 | 
						|
 | 
						|
 | 
						|
def generate(env):
 | 
						|
    env.AddMethod(BuildModule)
 | 
						|
    env.AddMethod(BuildModules)
 | 
						|
 | 
						|
 | 
						|
def exists(env):
 | 
						|
    return True
 |