diff --git a/configure.py b/configure.py index da9479cef96..52a3563d52e 100755 --- a/configure.py +++ b/configure.py @@ -3205,6 +3205,14 @@ def __init__(self, asFilename, enmBuildTarget = None, oEnvMgr = None, cchKeyAlig super().__init__(asFilename, enmBuildTarget, oEnvMgr, cchKeyAlign); self.sKeyword = 'set' if enmBuildTarget == BuildTarget.WINDOWS else 'export'; + def formatValue(self, sVal): + """ + Formats an environment variable value for the target shell. + """ + if self.enmBuildTarget == BuildTarget.WINDOWS: + return sVal; + return shlex.quote(sVal); + def write(self, sKey, oVal = None): """ Writes an environment variable appropriate for the platform. @@ -3216,12 +3224,12 @@ def write(self, sKey, oVal = None): sValStr = ' '.join(map(str, oVal)); else: sValStr = str(oVal); - super().write_raw(f"{self.sKeyword} {sKey}={sValStr}"); + super().write_raw(f"{self.sKeyword} {sKey}={self.formatValue(sValStr)}"); return; if sKey in self.oEnvMgr.env \ and sKey is not None: - super().write_raw(f"{self.sKeyword} {sKey}={oVal if oVal else self.oEnvMgr[sKey]}"); + super().write_raw(f"{self.sKeyword} {sKey}={self.formatValue(oVal if oVal else self.oEnvMgr[sKey])}"); def write_all(self, asPrefixInclude = None, asPrefixExclude = None): """