From b48e4a90bfb06612b1402088243e49ef2a1b846f Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 27 Feb 2019 16:26:39 -0800 Subject: [PATCH] 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 Maintainer: Gabe Black --- src/systemc/SConscript | 21 ++++----------------- 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') -- 2.30.2