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>
This commit is contained in:
Gabe Black
2019-02-27 16:26:39 -08:00
parent 21a4cc9692
commit b48e4a90bf
2 changed files with 26 additions and 18 deletions

View File

@@ -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'))

View File

@@ -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')