ninjatool: quote dollars in variables
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 26 Aug 2020 15:02:03 +0000 (17:02 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 27 Aug 2020 16:52:30 +0000 (18:52 +0200)
Otherwise, dollars (such as in the special $ORIGIN rpath) are
eaten by Make.

Reported-by: Laurent Vivier <lvivier@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
scripts/ninjatool.py

index cc77d51aa84ace3d121b4e18569de2ffc8173d50..c33eafb5a05b5d04164b541837492789358439fa 100755 (executable)
@@ -834,7 +834,8 @@ class Ninja2Make(NinjaParserEventsWithVars):
         self.print()
         for targets in self.build_vars:
             for name, value in self.build_vars[targets].items():
-                self.print('%s: private .var.%s := %s' % (targets, name, value))
+                self.print('%s: private .var.%s := %s' %
+                           (targets, name, value.replace('$', '$$')))
             self.print()
         if not self.seen_default:
             default_targets = sorted(self.all_outs - self.all_ins, key=natural_sort_key)