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) | ||||
|     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: | ||||
|     return Dir('#cache').abspath | ||||
| 
 | ||||
| @ -205,7 +214,11 @@ vars.Add('CCFLAGS', 'C/C++ Compiler Flags') | ||||
| vars.Add('LINKFLAGS', 'Linker Flags') | ||||
| 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['SYSTEM_CACHE_DIR'] = os.path.join(_find_system_cache_dir(), 'spp_cache') | ||||
| 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.Program), 'Program') | ||||
| 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.UnityLibrary, is_lib = True), 'UnityLibrary') | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user