diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2022-08-01 23:30:21 -0400 |
---|---|---|
committer | Eli Schwartz <eschwartz@archlinux.org> | 2022-08-22 11:46:34 -0400 |
commit | e19e9ce6f196f7c127a2668b5df0ada1d50806df (patch) | |
tree | 2458b53d4a04501bd2b518fd05a74c6c5b90a11c /mesonbuild/interpreter/interpreter.py | |
parent | d395b1a7682cdc9387b452fd2904d394eb1c0cd2 (diff) | |
download | meson-e19e9ce6f196f7c127a2668b5df0ada1d50806df.zip meson-e19e9ce6f196f7c127a2668b5df0ada1d50806df.tar.gz meson-e19e9ce6f196f7c127a2668b5df0ada1d50806df.tar.bz2 |
interpreter: add a special class to track the lifecycle of get_option() strings
Diffstat (limited to 'mesonbuild/interpreter/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter/interpreter.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py index 9873888..8caf010 100644 --- a/mesonbuild/interpreter/interpreter.py +++ b/mesonbuild/interpreter/interpreter.py @@ -445,6 +445,7 @@ class Interpreter(InterpreterBase, HoldableObject): str: P_OBJ.StringHolder, P_OBJ.MesonVersionString: P_OBJ.MesonVersionStringHolder, P_OBJ.DependencyVariableString: P_OBJ.DependencyVariableStringHolder, + P_OBJ.OptionString: P_OBJ.OptionStringHolder, # Meson types mesonlib.File: OBJ.FileHolder, @@ -1094,6 +1095,8 @@ class Interpreter(InterpreterBase, HoldableObject): opt.name = optname return opt elif isinstance(opt, coredata.UserOption): + if isinstance(opt.value, str): + return P_OBJ.OptionString(opt.value, f'{{{optname}}}') return opt.value return opt @@ -2845,6 +2848,9 @@ class Interpreter(InterpreterBase, HoldableObject): ret = os.path.join(*parts).replace('\\', '/') if isinstance(parts[0], P_OBJ.DependencyVariableString) and '..' not in other: return P_OBJ.DependencyVariableString(ret) + elif isinstance(parts[0], P_OBJ.OptionString): + name = os.path.join(parts[0].optname, other) + return P_OBJ.OptionString(ret, name) else: return ret |