Escape Host*Variable contents
There are tests with "$" in the name, which becomes part of the
path. Escape Host*Variable so that the path to a host binary
in a test doesn't get treated as a ninja variable.
Test: genrule_test.go
Change-Id: Ie50b13e94d8a30743c70b7f7c28bbab8afa73e5f
diff --git a/android/package_ctx.go b/android/package_ctx.go
index c19debb..f354db8 100644
--- a/android/package_ctx.go
+++ b/android/package_ctx.go
@@ -19,6 +19,7 @@
"strings"
"github.com/google/blueprint"
+ "github.com/google/blueprint/proptools"
"android/soong/remoteexec"
)
@@ -173,7 +174,7 @@
// package-scoped variable's initialization.
func (p PackageContext) HostBinToolVariable(name, path string) blueprint.Variable {
return p.VariableFunc(name, func(ctx PackageVarContext) string {
- return ctx.Config().HostToolPath(ctx, path).String()
+ return proptools.NinjaAndShellEscape(ctx.Config().HostToolPath(ctx, path).String())
})
}
@@ -183,7 +184,7 @@
// package-scoped variable's initialization.
func (p PackageContext) HostJNIToolVariable(name, path string) blueprint.Variable {
return p.VariableFunc(name, func(ctx PackageVarContext) string {
- return ctx.Config().HostJNIToolPath(ctx, path).String()
+ return proptools.NinjaAndShellEscape(ctx.Config().HostJNIToolPath(ctx, path).String())
})
}
@@ -193,7 +194,7 @@
// part of a package-scoped variable's initialization.
func (p PackageContext) HostJavaToolVariable(name, path string) blueprint.Variable {
return p.VariableFunc(name, func(ctx PackageVarContext) string {
- return ctx.Config().HostJavaToolPath(ctx, path).String()
+ return proptools.NinjaAndShellEscape(ctx.Config().HostJavaToolPath(ctx, path).String())
})
}