[rust] Escape flags for bindgen
Bindgen flags and cflags should be escaped, as they may contain shell globs or other special characters. Test: Updated Soong test passes. Change-Id: I3df8ef25391f53a191f0494c5ff8c641d4d4b6f8
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/proptools"
|
||||
|
||||
"android/soong/android"
|
||||
ccConfig "android/soong/cc/config"
|
||||
@@ -113,15 +114,17 @@ func (b *bindgenDecorator) generateSource(ctx android.ModuleContext, deps PathDe
|
||||
cflags = append(cflags, "-isystem "+include.String())
|
||||
}
|
||||
|
||||
esc := proptools.NinjaAndShellEscapeList
|
||||
|
||||
// Module defined clang flags and include paths
|
||||
cflags = append(cflags, b.Properties.Cflags...)
|
||||
cflags = append(cflags, esc(b.Properties.Cflags)...)
|
||||
for _, include := range b.Properties.Local_include_dirs {
|
||||
cflags = append(cflags, "-I"+android.PathForModuleSrc(ctx, include).String())
|
||||
implicits = append(implicits, android.PathForModuleSrc(ctx, include))
|
||||
}
|
||||
|
||||
bindgenFlags := defaultBindgenFlags
|
||||
bindgenFlags = append(bindgenFlags, strings.Join(b.Properties.Bindgen_flags, " "))
|
||||
bindgenFlags = append(bindgenFlags, esc(b.Properties.Bindgen_flags)...)
|
||||
|
||||
wrapperFile := android.OptionalPathForModuleSrc(ctx, b.Properties.Wrapper_src)
|
||||
if !wrapperFile.Valid() {
|
||||
|
Reference in New Issue
Block a user