diff options
author | Gabe Black <gabeblack@google.com> | 2019-02-27 16:26:39 -0800 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-02-28 22:29:36 +0000 |
commit | b48e4a90bfb06612b1402088243e49ef2a1b846f (patch) | |
tree | c2bcc2a0edd4c1d4cd172e73756d527cec933d3b /src/systemc | |
parent | 21a4cc9692e30390547bf99887840ee32a75233b (diff) | |
download | gem5-b48e4a90bfb06612b1402088243e49ef2a1b846f.tar.xz |
systemc: Move systemc disabling checks to SConsopts.
This will ensure that the value of USE_SYSTEMC is consistent throughout
the build. It also has the side effect that USE_SYSTEMC can be forced
to a particular value if you're confident you know what you're doing
and want to override these checks.
Change-Id: I0f2d1153245ff17ce4a828c6b7496cb9ded6bd5b
Reviewed-on: https://gem5-review.googlesource.com/c/16810
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Diffstat (limited to 'src/systemc')
-rw-r--r-- | src/systemc/SConscript | 21 | ||||
-rw-r--r-- | src/systemc/SConsopts | 23 |
2 files changed, 26 insertions, 18 deletions
diff --git a/src/systemc/SConscript b/src/systemc/SConscript index c820b457e..b2673947f 100644 --- a/src/systemc/SConscript +++ b/src/systemc/SConscript @@ -27,22 +27,9 @@ Import('*') -from m5.util import compareVersions -from m5.util.terminal import termcap +if not env['USE_SYSTEMC']: + Return() -if env['USE_SYSTEMC']: - if ('GCC_VERSION' in env and \ - compareVersions(env['GCC_VERSION'], '5.0') < 0) or \ - env['PLATFORM'] == 'darwin': +env.UseSystemcCheck(warn=True) - if env['PLATFORM'] == 'darwin': - print(termcap.Yellow + termcap.Bold + - 'Warning: Disabling systemc on Mac OS.' + termcap.Normal) - else: - print(termcap.Yellow + termcap.Bold + - 'Warning: Disabling systemc on gcc versions less than 5.0.' + - termcap.Normal) - env['USE_SYSTEMC'] = False - Return() - - env.Append(CPPPATH=Dir('ext')) +env.Append(CPPPATH=Dir('ext')) diff --git a/src/systemc/SConsopts b/src/systemc/SConsopts index fc0abb2ad..172de5724 100644 --- a/src/systemc/SConsopts +++ b/src/systemc/SConsopts @@ -27,8 +27,29 @@ Import('*') +from m5.util import compareVersions +from m5.util.terminal import termcap + +def use_systemc_check(env, warn=False): + if ('GCC_VERSION' in env and + compareVersions(env['GCC_VERSION'], '5.0') < 0): + if warn: + print(termcap.Yellow + termcap.Bold + + 'Warning: Systemc may not work on gcc versions less ' + 'than 5.0.' + termcap.Normal) + return False + elif env['PLATFORM'] == 'darwin': + if warn: + print(termcap.Yellow + termcap.Bold + + 'Warning: Systemc may not work on Mac OS.' + termcap.Normal) + return False + return True + +main.AddMethod(use_systemc_check, 'UseSystemcCheck') + sticky_vars.AddVariables( - BoolVariable('USE_SYSTEMC', 'Enable SystemC API support', True) + BoolVariable('USE_SYSTEMC', 'Enable SystemC API support', + main.UseSystemcCheck()) ) export_vars.append('USE_SYSTEMC') |