summaryrefslogtreecommitdiff
path: root/apex/apex_singleton.go
diff options
context:
space:
mode:
author Chan Wang <chanwang@google.com> 2025-01-14 15:53:05 +0000
committer Chan Wang <chanwang@google.com> 2025-01-14 21:25:48 +0000
commit8256360f4f4458475e6a6ef97c501057c1f3e8e8 (patch)
treea558ff576b26855ce83f31154c97d02e9d358321 /apex/apex_singleton.go
parent5ccdca9babe6139206710a3c0595f35412c92d63 (diff)
Resend aosp/3446212
Not revert^2 to bypass potential auto-merge issue, because the previous change failed to auto-merge into internal branch (b/389693264 logged for it) Bug: 380222284 Bug: 383062486 Test: m nothing --no-skip-soong-tests Change-Id: I0a002cfc83163efaf6f282586f80f15a9e7fdac2
Diffstat (limited to 'apex/apex_singleton.go')
-rw-r--r--apex/apex_singleton.go39
1 files changed, 14 insertions, 25 deletions
diff --git a/apex/apex_singleton.go b/apex/apex_singleton.go
index d46104e40..7b3acb509 100644
--- a/apex/apex_singleton.go
+++ b/apex/apex_singleton.go
@@ -18,7 +18,6 @@ package apex
import (
"encoding/json"
- "strings"
"github.com/google/blueprint"
@@ -59,9 +58,9 @@ var (
// Diff two given lists while ignoring comments in the allowed deps file.
diffAllowedApexDepsInfoRule = pctx.AndroidStaticRule("diffAllowedApexDepsInfoRule", blueprint.RuleParams{
- Description: "Diff ${allowed_deps_list} and ${new_allowed_deps}",
+ Description: "Diff ${allowed_deps} and ${new_allowed_deps}",
Command: `
- if grep -v -h '^#' ${allowed_deps_list} | sort -u -f| diff -B -u - ${new_allowed_deps}; then
+ if grep -v '^#' ${allowed_deps} | diff -B - ${new_allowed_deps}; then
touch ${out};
else
echo;
@@ -85,15 +84,10 @@ var (
exit 1;
fi;
`,
- }, "allowed_deps_list", "new_allowed_deps")
+ }, "allowed_deps", "new_allowed_deps")
)
func (s *apexDepsInfoSingleton) GenerateBuildActions(ctx android.SingletonContext) {
- allowedDepsSources := []android.OptionalPath{android.ExistentPathForSource(ctx, "packages/modules/common/build/allowed_deps.txt")}
- extraAllowedDepsPath := ctx.Config().ExtraAllowedDepsTxt()
- if extraAllowedDepsPath != "" {
- allowedDepsSources = append(allowedDepsSources, android.ExistentPathForSource(ctx, extraAllowedDepsPath))
- }
updatableFlatLists := android.Paths{}
ctx.VisitAllModules(func(module android.Module) {
if binaryInfo, ok := module.(android.ApexBundleDepsInfoIntf); ok {
@@ -105,42 +99,37 @@ func (s *apexDepsInfoSingleton) GenerateBuildActions(ctx android.SingletonContex
}
}
})
+
+ allowedDepsSource := android.ExistentPathForSource(ctx, "packages/modules/common/build/allowed_deps.txt")
newAllowedDeps := android.PathForOutput(ctx, "apex", "depsinfo", "new-allowed-deps.txt")
s.allowedApexDepsInfoCheckResult = android.PathForOutput(ctx, newAllowedDeps.Rel()+".check")
- hasOneValidDepsPath := false
- for _, allowedDepsSource := range allowedDepsSources {
- if allowedDepsSource.Valid() {
- hasOneValidDepsPath = true
- updatableFlatLists = append(updatableFlatLists, allowedDepsSource.Path())
- }
- }
- allowedDepsStrList := make([]string, len(allowedDepsSources))
- for _, value := range allowedDepsSources {
- allowedDepsStrList = append(allowedDepsStrList, value.String())
- }
- allowedDepsListString := strings.Join(allowedDepsStrList, " ")
- if !hasOneValidDepsPath {
+
+ if !allowedDepsSource.Valid() {
// Unbundled projects may not have packages/modules/common/ checked out; ignore those.
ctx.Build(pctx, android.BuildParams{
Rule: android.Touch,
Output: s.allowedApexDepsInfoCheckResult,
})
} else {
+ allowedDeps := allowedDepsSource.Path()
+
ctx.Build(pctx, android.BuildParams{
Rule: generateApexDepsInfoFilesRule,
- Inputs: updatableFlatLists,
+ Inputs: append(updatableFlatLists, allowedDeps),
Output: newAllowedDeps,
})
+
ctx.Build(pctx, android.BuildParams{
Rule: diffAllowedApexDepsInfoRule,
Input: newAllowedDeps,
Output: s.allowedApexDepsInfoCheckResult,
Args: map[string]string{
- "allowed_deps_list": allowedDepsListString,
- "new_allowed_deps": newAllowedDeps.String(),
+ "allowed_deps": allowedDeps.String(),
+ "new_allowed_deps": newAllowedDeps.String(),
},
})
}
+
ctx.Phony("apex-allowed-deps-check", s.allowedApexDepsInfoCheckResult)
}