scons: Make env['USE_PYTHON'] a source for createEnumStrings.
authorGabe Black <gabeblack@google.com>
Sat, 6 May 2017 01:01:33 +0000 (18:01 -0700)
committerGabe Black <gabeblack@google.com>
Mon, 8 May 2017 08:45:20 +0000 (08:45 +0000)
That clues scons in to the fact that the contents of the target of that
function depends on the value of that construction variable.

Change-Id: I803322ea1a178152da3d95dffffe20acd4271c88
Reviewed-on: https://gem5-review.googlesource.com/3083
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Reviewed-by: Paul Rosenfeld <prosenfeld@micron.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>

src/SConscript

index fd67533200ba8e3d4331ce0789fb54e6775607b7..c15da03acd5a51fbf0a01e7913a44c9bdebf6473 100755 (executable)
@@ -630,14 +630,15 @@ def createSimObjectCxxConfig(is_header):
     return body
 
 def createEnumStrings(target, source, env):
-    assert len(target) == 1 and len(source) == 1
+    assert len(target) == 1 and len(source) == 2
 
     name = str(source[0].get_contents())
+    use_python = source[1].read()
     obj = all_enums[name]
 
     code = code_formatter()
     obj.cxx_def(code)
-    if env['USE_PYTHON']:
+    if use_python:
         obj.pybind_def(code)
     code.write(target[0].abspath)
 
@@ -732,7 +733,7 @@ for name,enum in sorted(all_enums.iteritems()):
     extra_deps = [ py_source.tnode ]
 
     cc_file = File('enums/%s.cc' % name)
-    env.Command(cc_file, Value(name),
+    env.Command(cc_file, [Value(name), Value(env['USE_PYTHON'])],
                 MakeAction(createEnumStrings, Transform("ENUM STR")))
     env.Depends(cc_file, depends + extra_deps)
     Source(cc_file)