diff options
author | 2025-01-13 00:39:47 -0800 | |
---|---|---|
committer | 2025-01-13 00:39:47 -0800 | |
commit | 9873d74e7e99dcdf1351d9ea331613eb5cb14af1 (patch) | |
tree | e2be5afd0af94f514bfcdf91e401501365fa000c /apex/apex_singleton.go | |
parent | 0d02c06f24e6958b30062387b0e57d364a67f3a1 (diff) |
Revert "Revert "Added EXTRA_ALLOWED_DEPS_TXT to allow arbitrary ..."
Revert submission 3444766-non-aosp-allowed-deps
Reason for revert: <Droidmonitor created revert due to b/389580262.Will be verified through ABTD for standard investigation.>
Reverted changes: /q/submissionid:3444766-non-aosp-allowed-deps
Change-Id: I0f62307e4b3ca8fbc53303576f42929b5eebeadf
Diffstat (limited to 'apex/apex_singleton.go')
-rw-r--r-- | apex/apex_singleton.go | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/apex/apex_singleton.go b/apex/apex_singleton.go index 7b3acb509..d46104e40 100644 --- a/apex/apex_singleton.go +++ b/apex/apex_singleton.go @@ -18,6 +18,7 @@ package apex import ( "encoding/json" + "strings" "github.com/google/blueprint" @@ -58,9 +59,9 @@ var ( // Diff two given lists while ignoring comments in the allowed deps file. diffAllowedApexDepsInfoRule = pctx.AndroidStaticRule("diffAllowedApexDepsInfoRule", blueprint.RuleParams{ - Description: "Diff ${allowed_deps} and ${new_allowed_deps}", + Description: "Diff ${allowed_deps_list} and ${new_allowed_deps}", Command: ` - if grep -v '^#' ${allowed_deps} | diff -B - ${new_allowed_deps}; then + if grep -v -h '^#' ${allowed_deps_list} | sort -u -f| diff -B -u - ${new_allowed_deps}; then touch ${out}; else echo; @@ -84,10 +85,15 @@ var ( exit 1; fi; `, - }, "allowed_deps", "new_allowed_deps") + }, "allowed_deps_list", "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 { @@ -99,37 +105,42 @@ 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") - - if !allowedDepsSource.Valid() { + 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 { // 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: append(updatableFlatLists, allowedDeps), + Inputs: updatableFlatLists, Output: newAllowedDeps, }) - ctx.Build(pctx, android.BuildParams{ Rule: diffAllowedApexDepsInfoRule, Input: newAllowedDeps, Output: s.allowedApexDepsInfoCheckResult, Args: map[string]string{ - "allowed_deps": allowedDeps.String(), - "new_allowed_deps": newAllowedDeps.String(), + "allowed_deps_list": allowedDepsListString, + "new_allowed_deps": newAllowedDeps.String(), }, }) } - ctx.Phony("apex-allowed-deps-check", s.allowedApexDepsInfoCheckResult) } |