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
This commit is contained in:
Colin Cross
2021-12-08 15:05:51 -08:00
parent 24eb82416b
commit 1c35f243c5

View File

@@ -19,6 +19,7 @@ import (
"strings"
"github.com/google/blueprint"
"github.com/google/blueprint/proptools"
"android/soong/remoteexec"
)
@@ -173,7 +174,7 @@ func (p PackageContext) SourcePathVariableWithEnvOverride(name, path, env string
// 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 @@ func (p PackageContext) HostBinToolVariable(name, path string) blueprint.Variabl
// 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 @@ func (p PackageContext) HostJNIToolVariable(name, path string) blueprint.Variabl
// 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())
})
}