From e035575ea0bd061025661017701453992228ea0c Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Mon, 8 Feb 2021 02:33:52 -0800 Subject: [PATCH] scons: Move MakeAction into gem5_scons. That will make it usable from builders defined outside of SConstruct. Change-Id: Id1231a1a370b7d519a382db892ded93c604eb56f Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/40968 Tested-by: kokoro Reviewed-by: Giacomo Travaglini Maintainer: Giacomo Travaglini --- SConstruct | 24 ++++++------------------ site_scons/gem5_scons/__init__.py | 28 ++++++++++++++++++++++++---- 2 files changed, 30 insertions(+), 22 deletions(-) diff --git a/SConstruct b/SConstruct index d23541413d..3e2df39cfb 100755 --- a/SConstruct +++ b/SConstruct @@ -122,15 +122,20 @@ AddOption('--with-systemc-tests', action='store_true', from gem5_scons import Transform, error, warning, summarize_warnings from gem5_scons import TempFileSpawn, parse_build_path, EnvDefaults +from gem5_scons import MakeAction, MakeActionTool import gem5_scons +Export('MakeAction') + ######################################################################## # # Set up the main build environment. # ######################################################################## -main = Environment(tools=['default', 'git', TempFileSpawn, EnvDefaults]) +main = Environment(tools=[ + 'default', 'git', TempFileSpawn, EnvDefaults, MakeActionTool + ]) main.Tool(SCons.Tool.FindTool(['gcc', 'clang'], main)) main.Tool(SCons.Tool.FindTool(['g++', 'clang++'], main)) @@ -256,23 +261,6 @@ main.Append(CPPPATH=[Dir('ext')]) # Add shared top-level headers main.Prepend(CPPPATH=Dir('include')) -if GetOption('verbose'): - def MakeAction(action, string, *args, **kwargs): - return Action(action, *args, **kwargs) -else: - MakeAction = Action - main['CCCOMSTR'] = Transform("CC") - main['CXXCOMSTR'] = Transform("CXX") - main['ASCOMSTR'] = Transform("AS") - main['ARCOMSTR'] = Transform("AR", 0) - main['LINKCOMSTR'] = Transform("LINK", 0) - main['SHLINKCOMSTR'] = Transform("SHLINK", 0) - main['RANLIBCOMSTR'] = Transform("RANLIB", 0) - main['M4COMSTR'] = Transform("M4") - main['SHCCCOMSTR'] = Transform("SHCC") - main['SHCXXCOMSTR'] = Transform("SHCXX") -Export('MakeAction') - # Initialize the Link-Time Optimization (LTO) flags main['LTO_CCFLAGS'] = [] main['LTO_LDFLAGS'] = [] diff --git a/site_scons/gem5_scons/__init__.py b/site_scons/gem5_scons/__init__.py index ae407fb5bd..91764b058e 100644 --- a/site_scons/gem5_scons/__init__.py +++ b/site_scons/gem5_scons/__init__.py @@ -238,7 +238,27 @@ def parse_build_path(target): return os.path.join('/', *path_dirs), variant_dir -__all__ = [ - 'Configure', 'EnvDefaults', 'Transform', 'warning', 'error', - 'parse_build_dir' -] +# The MakeAction wrapper, and a SCons tool to set up the *COMSTR variables. +if SCons.Script.GetOption('verbose'): + def MakeAction(action, string, *args, **kwargs): + return SCons.Script.Action(action, *args, **kwargs) + + def MakeActionTool(env): + pass +else: + MakeAction = SCons.Script.Action + + def MakeActionTool(env): + env['CCCOMSTR'] = Transform("CC") + env['CXXCOMSTR'] = Transform("CXX") + env['ASCOMSTR'] = Transform("AS") + env['ARCOMSTR'] = Transform("AR", 0) + env['LINKCOMSTR'] = Transform("LINK", 0) + env['SHLINKCOMSTR'] = Transform("SHLINK", 0) + env['RANLIBCOMSTR'] = Transform("RANLIB", 0) + env['M4COMSTR'] = Transform("M4") + env['SHCCCOMSTR'] = Transform("SHCC") + env['SHCXXCOMSTR'] = Transform("SHCXX") + +__all__ = ['Configure', 'EnvDefaults', 'Transform', 'warning', 'error', + 'MakeAction', 'MakeActionTool']