scons: Add an "All" compound debug flag
Add an "All" compound debug flag, which encapsulates all debug flags. Since this is the broadest compound flag, allowing users to include it would imply in extremely generic includes. Moreover, it is highly unlikely that any correct C++ code would ever use all debug flags. Therefore, a header file for this flag is not generated to force users to directly include only the debug flags they need. Change-Id: If40f2f708be1495fa2b2380266164d5d44d7cffa Signed-off-by: Daniel R. Carvalho <odanrc@yahoo.com.br> Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/39077 Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Nathanael Premillieu <nathanael.premillieu@huawei.com> Maintainer: Bobby R. Bruce <bbruce@ucdavis.edu>
This commit is contained in:
committed by
Daniel Carvalho
parent
b8dfb95284
commit
83c8f1f5db
@@ -633,6 +633,19 @@ def CompoundFlag(name, flags, desc=None):
|
||||
def DebugFormatFlag(name, desc=None):
|
||||
DebugFlag(name, desc, True)
|
||||
|
||||
# Create a compound debug flag that encapsulates all flags: "All". This
|
||||
# flag should not be used within C++ code - it is a compound meta flag
|
||||
def _createAllDebugFlag():
|
||||
simple_flags = []
|
||||
for name,flag in sorted(debug_flags.items()):
|
||||
n, compound, desc, fmt = flag
|
||||
assert n == name
|
||||
if not compound and not fmt:
|
||||
simple_flags.append(n)
|
||||
|
||||
CompoundFlag("All", simple_flags,
|
||||
"Controls all debug flags. It should not be used within C++ code.")
|
||||
|
||||
Export('DebugFlag')
|
||||
Export('CompoundFlag')
|
||||
Export('DebugFormatFlag')
|
||||
@@ -1174,6 +1187,8 @@ namespace Debug {
|
||||
|
||||
code.write(str(target[0]))
|
||||
|
||||
# Generate the files for the debug and debug-format flags
|
||||
_createAllDebugFlag()
|
||||
for name,flag in sorted(debug_flags.items()):
|
||||
n, compound, desc, fmt = flag
|
||||
assert n == name
|
||||
|
||||
@@ -43,7 +43,11 @@ def help():
|
||||
for name, flag in filter(lambda kv: isinstance(kv[1], CompoundFlag),
|
||||
sorted_flags):
|
||||
print(" %s: %s" % (name, flag.desc))
|
||||
printList([ c.name for c in flag.kids() ], indent=8)
|
||||
# The list of kids for flag "All" is too long, so it is not printed
|
||||
if name != "All":
|
||||
printList([ c.name for c in flag.kids() ], indent=8)
|
||||
else:
|
||||
print(" All Base Flags")
|
||||
print()
|
||||
print("Formatting Flags:")
|
||||
for name, flag in filter(lambda kv: isinstance(kv[1], SimpleFlag)
|
||||
|
||||
Reference in New Issue
Block a user