Added support for custom tools via config and wrapper for env.Depends().
This commit is contained in:
parent
30e7e348c6
commit
2dd5bd4c05
16
SConscript
16
SConscript
@ -86,6 +86,15 @@ def _wrap_default(default):
|
|||||||
default(arg)
|
default(arg)
|
||||||
return _wrapped
|
return _wrapped
|
||||||
|
|
||||||
|
def _wrap_depends(depends):
|
||||||
|
def _wrapped(env, dependant, dependency):
|
||||||
|
if isinstance(dependant, dict) and '_target' in dependant:
|
||||||
|
dependant = dependant['_target']
|
||||||
|
if isinstance(dependency, dict) and '_target' in dependency:
|
||||||
|
dependency = dependency['_target']
|
||||||
|
depends(dependant, dependency)
|
||||||
|
return _wrapped
|
||||||
|
|
||||||
def _get_fallback_cache_dir() -> str:
|
def _get_fallback_cache_dir() -> str:
|
||||||
return Dir('#cache').abspath
|
return Dir('#cache').abspath
|
||||||
|
|
||||||
@ -205,7 +214,11 @@ vars.Add('CCFLAGS', 'C/C++ Compiler Flags')
|
|||||||
vars.Add('LINKFLAGS', 'Linker Flags')
|
vars.Add('LINKFLAGS', 'Linker Flags')
|
||||||
vars.Add('PYTHON', 'Python Executable', 'python')
|
vars.Add('PYTHON', 'Python Executable', 'python')
|
||||||
|
|
||||||
env = Environment(tools = ['default', 'compilation_db', 'unity_build'], variables = vars)
|
tools = ['default', 'compilation_db', 'unity_build']
|
||||||
|
if 'TOOLS' in config:
|
||||||
|
tools.extend(config['TOOLS'])
|
||||||
|
|
||||||
|
env = Environment(tools = tools, variables = vars)
|
||||||
env['RECIPES_FOLDERS'] = [Dir('recipes')]
|
env['RECIPES_FOLDERS'] = [Dir('recipes')]
|
||||||
env['SYSTEM_CACHE_DIR'] = os.path.join(_find_system_cache_dir(), 'spp_cache')
|
env['SYSTEM_CACHE_DIR'] = os.path.join(_find_system_cache_dir(), 'spp_cache')
|
||||||
env['CLONE_DIR'] = os.path.join(env['SYSTEM_CACHE_DIR'], 'cloned')
|
env['CLONE_DIR'] = os.path.join(env['SYSTEM_CACHE_DIR'], 'cloned')
|
||||||
@ -331,6 +344,7 @@ env.AddMethod(_wrap_builder(env.StaticLibrary, is_lib = True), 'StaticLibrary')
|
|||||||
env.AddMethod(_wrap_builder(env.SharedLibrary, is_lib = True), 'SharedLibrary')
|
env.AddMethod(_wrap_builder(env.SharedLibrary, is_lib = True), 'SharedLibrary')
|
||||||
env.AddMethod(_wrap_builder(env.Program), 'Program')
|
env.AddMethod(_wrap_builder(env.Program), 'Program')
|
||||||
env.AddMethod(_wrap_default(env.Default), 'Default')
|
env.AddMethod(_wrap_default(env.Default), 'Default')
|
||||||
|
env.AddMethod(_wrap_depends(env.Depends), 'Depends')
|
||||||
|
|
||||||
env.AddMethod(_wrap_builder(env.UnityProgram), 'UnityProgram')
|
env.AddMethod(_wrap_builder(env.UnityProgram), 'UnityProgram')
|
||||||
env.AddMethod(_wrap_builder(env.UnityLibrary, is_lib = True), 'UnityLibrary')
|
env.AddMethod(_wrap_builder(env.UnityLibrary, is_lib = True), 'UnityLibrary')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user