Add compile_data for android apps
Compile_data is a property on rust rules to declare extra files that are used by the compiler. In rust's case this happens commonly with `include_str!()`. Other compilers like javac or aapt2 don't often reach out to other files, so it's not as neccessary. But they will follow symlinks. We're making a change to only include symlinks themselves in sbox sandboxes, and the targets of the symlinks must be listed explicitly. For this, we need compile_data to list the targets of symlinks. Bug: 307824623 Test: m out/soong/.intermediates/frameworks/base/tools/aapt2/integration-tests/SymlinkTest/AaptSymlinkTest/android_common/lint/lint-baseline.xml with the symlink change Change-Id: I33eb9cbe4b6eb25e3f33ea0ac9dade88c3d4a624
This commit is contained in:
@@ -23,6 +23,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"android/soong/testing"
|
"android/soong/testing"
|
||||||
|
|
||||||
"github.com/google/blueprint"
|
"github.com/google/blueprint"
|
||||||
"github.com/google/blueprint/proptools"
|
"github.com/google/blueprint/proptools"
|
||||||
|
|
||||||
@@ -139,6 +140,12 @@ type appProperties struct {
|
|||||||
// PRODUCT_CHARACTERISTICS.
|
// PRODUCT_CHARACTERISTICS.
|
||||||
Generate_product_characteristics_rro *bool
|
Generate_product_characteristics_rro *bool
|
||||||
|
|
||||||
|
// A list of files or dependencies to make available to the build sandbox. This is
|
||||||
|
// useful if source files are symlinks, the targets of the symlinks must be listed here.
|
||||||
|
// Note that currently not all actions implemented by android_apps are sandboxed, so you
|
||||||
|
// may only see this being necessary in lint builds.
|
||||||
|
Compile_data []string
|
||||||
|
|
||||||
ProductCharacteristicsRROPackageName *string `blueprint:"mutated"`
|
ProductCharacteristicsRROPackageName *string `blueprint:"mutated"`
|
||||||
ProductCharacteristicsRROManifestModuleName *string `blueprint:"mutated"`
|
ProductCharacteristicsRROManifestModuleName *string `blueprint:"mutated"`
|
||||||
}
|
}
|
||||||
@@ -798,6 +805,7 @@ func (a *AndroidApp) generateAndroidBuildActions(ctx android.ModuleContext) {
|
|||||||
a.linter.mergedManifest = a.aapt.mergedManifestFile
|
a.linter.mergedManifest = a.aapt.mergedManifestFile
|
||||||
a.linter.manifest = a.aapt.manifestPath
|
a.linter.manifest = a.aapt.manifestPath
|
||||||
a.linter.resources = a.aapt.resourceFiles
|
a.linter.resources = a.aapt.resourceFiles
|
||||||
|
a.linter.compile_data = android.PathsForModuleSrc(ctx, a.appProperties.Compile_data)
|
||||||
a.linter.buildModuleReportZip = ctx.Config().UnbundledBuildApps()
|
a.linter.buildModuleReportZip = ctx.Config().UnbundledBuildApps()
|
||||||
|
|
||||||
dexJarFile, packageResources := a.dexBuildActions(ctx)
|
dexJarFile, packageResources := a.dexBuildActions(ctx)
|
||||||
|
@@ -93,6 +93,7 @@ type linter struct {
|
|||||||
outputs lintOutputs
|
outputs lintOutputs
|
||||||
properties LintProperties
|
properties LintProperties
|
||||||
extraMainlineLintErrors []string
|
extraMainlineLintErrors []string
|
||||||
|
compile_data android.Paths
|
||||||
|
|
||||||
reports android.Paths
|
reports android.Paths
|
||||||
|
|
||||||
@@ -448,7 +449,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
|||||||
|
|
||||||
srcsList := android.PathForModuleOut(ctx, "lint", "lint-srcs.list")
|
srcsList := android.PathForModuleOut(ctx, "lint", "lint-srcs.list")
|
||||||
srcsListRsp := android.PathForModuleOut(ctx, "lint-srcs.list.rsp")
|
srcsListRsp := android.PathForModuleOut(ctx, "lint-srcs.list.rsp")
|
||||||
rule.Command().Text("cp").FlagWithRspFileInputList("", srcsListRsp, l.srcs).Output(srcsList)
|
rule.Command().Text("cp").FlagWithRspFileInputList("", srcsListRsp, l.srcs).Output(srcsList).Implicits(l.compile_data)
|
||||||
|
|
||||||
lintPaths := l.writeLintProjectXML(ctx, rule, srcsList)
|
lintPaths := l.writeLintProjectXML(ctx, rule, srcsList)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user