Change-Id: Ie9c902819ed0750a04f8318911fa914701c2a0fe Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/56755 Maintainer: Gabe Black <gabe.black@gmail.com> Tested-by: kokoro <noreply+kokoro@google.com> Reviewed-by: Bobby Bruce <bbruce@ucdavis.edu>
25 lines
643 B
Python
25 lines
643 B
Python
# Evaluates an expression (e.g. "X86_64 || (X86_32 && X86_LOCAL_APIC)") in the
|
|
# context of a configuration. Note that this always yields a tristate value (n,
|
|
# m, or y).
|
|
#
|
|
# Usage:
|
|
#
|
|
# $ make [ARCH=<arch>] scriptconfig SCRIPT=Kconfiglib/examples/eval_expr.py SCRIPT_ARG=<expr>
|
|
|
|
import sys
|
|
|
|
import kconfiglib
|
|
|
|
|
|
if len(sys.argv) < 3:
|
|
sys.exit("Pass the expression to evaluate with SCRIPT_ARG=<expression>")
|
|
|
|
kconf = kconfiglib.Kconfig(sys.argv[1])
|
|
expr = sys.argv[2]
|
|
|
|
# Enable modules so that m doesn't get demoted to n
|
|
kconf.modules.set_value(2)
|
|
|
|
print("the expression '{}' evaluates to {}"
|
|
.format(expr, kconf.eval_string(expr)))
|