-
Dirk Pranke authored
gclient's existing functionality for handling variables is ambiguous: the value of a variable can either be a string literal or an expression fragment. The implementation is required to parse a value as an expression, and, if it is legal, treat it as an expression instead of a literal. This means that gclient_gn_args_file = 'src/build/args.gni' gclient_gn_args = ['xcode_version'] vars = { 'xcode_version': 'xcode-12' } would cause a problem because gclient would try to parse the variable as an expression, and 'xcode' would not be defined. This patch adds a workaround for this, where you can instead use the Str() function to explicitly tell gclient to treat the value as a string and not a potential expression. The above example would be changed to: gclient_gn_args_file = 'src/build/args.gni' gclient_gn_args = ['xcode_version'] vars = { 'xcode_version': Str('xcode-12') } The variable may still be used in every context where it was legal to be used before. Bug: 1099242 Change-Id: Ic2a17eea5f7098113bdba0557fe29e1a931a74b8 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/2268406Reviewed-by: Ben Pastene <bpastene@chromium.org> Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org> Commit-Queue: Dirk Pranke <dpranke@google.com>
c7eed83f