java_sdk_library: Use WriteFileRule for writing permissions.xml
Use the `WriteFileRule` to write the permissions file for shared libraries instead of generating a custom bash rule. Test: TH Change-Id: I904cf0742bfec46ed45ec7801bb9bd3dc3047185
This commit is contained in:
@@ -3238,14 +3238,14 @@ func formattedOptionalAttribute(attrName string, value *string) string {
|
||||
if value == nil {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf(` %s=\"%s\"\n`, attrName, *value)
|
||||
return fmt.Sprintf(" %s=\"%s\"\n", attrName, *value)
|
||||
}
|
||||
|
||||
func formattedDependenciesAttribute(dependencies []string) string {
|
||||
if dependencies == nil {
|
||||
return ""
|
||||
}
|
||||
return fmt.Sprintf(` dependency=\"%s\"\n`, strings.Join(dependencies, ":"))
|
||||
return fmt.Sprintf(" dependency=\"%s\"\n", strings.Join(dependencies, ":"))
|
||||
}
|
||||
|
||||
func (module *sdkLibraryXml) permissionsContents(ctx android.ModuleContext) string {
|
||||
@@ -3262,28 +3262,28 @@ func (module *sdkLibraryXml) permissionsContents(ctx android.ModuleContext) stri
|
||||
// similarly, min_device_sdk is only understood from T. So if a library is using that, we need to use the apex-library to make sure this library is not loaded before T
|
||||
var libraryTag string
|
||||
if module.properties.Min_device_sdk != nil {
|
||||
libraryTag = ` <apex-library\n`
|
||||
libraryTag = " <apex-library\n"
|
||||
} else {
|
||||
libraryTag = ` <library\n`
|
||||
libraryTag = " <library\n"
|
||||
}
|
||||
|
||||
return strings.Join([]string{
|
||||
`<?xml version=\"1.0\" encoding=\"utf-8\"?>\n`,
|
||||
`<!-- Copyright (C) 2018 The Android Open Source Project\n`,
|
||||
`\n`,
|
||||
` Licensed under the Apache License, Version 2.0 (the \"License\");\n`,
|
||||
` you may not use this file except in compliance with the License.\n`,
|
||||
` You may obtain a copy of the License at\n`,
|
||||
`\n`,
|
||||
` http://www.apache.org/licenses/LICENSE-2.0\n`,
|
||||
`\n`,
|
||||
` Unless required by applicable law or agreed to in writing, software\n`,
|
||||
` distributed under the License is distributed on an \"AS IS\" BASIS,\n`,
|
||||
` WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n`,
|
||||
` See the License for the specific language governing permissions and\n`,
|
||||
` limitations under the License.\n`,
|
||||
`-->\n`,
|
||||
`<permissions>\n`,
|
||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n",
|
||||
"<!-- Copyright (C) 2018 The Android Open Source Project\n",
|
||||
"\n",
|
||||
" Licensed under the Apache License, Version 2.0 (the \"License\");\n",
|
||||
" you may not use this file except in compliance with the License.\n",
|
||||
" You may obtain a copy of the License at\n",
|
||||
"\n",
|
||||
" http://www.apache.org/licenses/LICENSE-2.0\n",
|
||||
"\n",
|
||||
" Unless required by applicable law or agreed to in writing, software\n",
|
||||
" distributed under the License is distributed on an \"AS IS\" BASIS,\n",
|
||||
" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
|
||||
" See the License for the specific language governing permissions and\n",
|
||||
" limitations under the License.\n",
|
||||
"-->\n",
|
||||
"<permissions>\n",
|
||||
libraryTag,
|
||||
libNameAttr,
|
||||
filePathAttr,
|
||||
@@ -3292,8 +3292,9 @@ func (module *sdkLibraryXml) permissionsContents(ctx android.ModuleContext) stri
|
||||
minSdkAttr,
|
||||
maxSdkAttr,
|
||||
dependenciesAttr,
|
||||
` />\n`,
|
||||
`</permissions>\n`}, "")
|
||||
" />\n",
|
||||
"</permissions>\n",
|
||||
}, "")
|
||||
}
|
||||
|
||||
func (module *sdkLibraryXml) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
@@ -3305,12 +3306,7 @@ func (module *sdkLibraryXml) GenerateAndroidBuildActions(ctx android.ModuleConte
|
||||
xmlContent := module.permissionsContents(ctx)
|
||||
|
||||
module.outputFilePath = android.PathForModuleOut(ctx, libName+".xml").OutputPath
|
||||
rule := android.NewRuleBuilder(pctx, ctx)
|
||||
rule.Command().
|
||||
Text("/bin/bash -c \"echo -e '" + xmlContent + "'\" > ").
|
||||
Output(module.outputFilePath)
|
||||
|
||||
rule.Build("java_sdk_xml", "Permission XML")
|
||||
android.WriteFileRuleVerbatim(ctx, module.outputFilePath, xmlContent)
|
||||
|
||||
module.installDirPath = android.PathForModuleInstall(ctx, "etc", module.SubDir())
|
||||
}
|
||||
|
Reference in New Issue
Block a user