aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreter/interpreter.py')
-rw-r--r--mesonbuild/interpreter/interpreter.py6
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