summaryrefslogtreecommitdiff
path: root/android/module.go
diff options
context:
space:
mode:
Diffstat (limited to 'android/module.go')
-rw-r--r--android/module.go89
1 files changed, 0 insertions, 89 deletions
diff --git a/android/module.go b/android/module.go
index c08d2f42e..66f6e1bcd 100644
--- a/android/module.go
+++ b/android/module.go
@@ -15,9 +15,6 @@
package android
import (
- "crypto/md5"
- "encoding/hex"
- "encoding/json"
"fmt"
"net/url"
"path/filepath"
@@ -247,31 +244,6 @@ func SortedUniqueNamedPaths(l NamedPaths) NamedPaths {
return l[:k+1]
}
-// soongConfigTrace holds all references to VendorVars. Uses []string for blueprint:"mutated"
-type soongConfigTrace struct {
- Bools []string `json:",omitempty"`
- Strings []string `json:",omitempty"`
- IsSets []string `json:",omitempty"`
-}
-
-func (c *soongConfigTrace) isEmpty() bool {
- return len(c.Bools) == 0 && len(c.Strings) == 0 && len(c.IsSets) == 0
-}
-
-// Returns hash of serialized trace records (empty string if there's no trace recorded)
-func (c *soongConfigTrace) hash() string {
- // Use MD5 for speed. We don't care collision or preimage attack
- if c.isEmpty() {
- return ""
- }
- j, err := json.Marshal(c)
- if err != nil {
- panic(fmt.Errorf("json marshal of %#v failed: %#v", *c, err))
- }
- hash := md5.Sum(j)
- return hex.EncodeToString(hash[:])
-}
-
type nameProperties struct {
// The name of the module. Must be unique across all modules.
Name *string
@@ -523,14 +495,6 @@ type commonProperties struct {
// constants in image.go, but can also be set to a custom value by individual module types.
ImageVariation string `blueprint:"mutated"`
- // SoongConfigTrace records accesses to VendorVars (soong_config). The trace will be hashed
- // and used as a subdir of PathForModuleOut. Note that we mainly focus on incremental
- // builds among similar products (e.g. aosp_cf_x86_64_phone and aosp_cf_x86_64_foldable),
- // and there are variables other than soong_config, which isn't captured by soong config
- // trace, but influence modules among products.
- SoongConfigTrace soongConfigTrace `blueprint:"mutated"`
- SoongConfigTraceHash string `blueprint:"mutated"`
-
// The team (defined by the owner/vendor) who owns the property.
Team *string `android:"path"`
}
@@ -2614,8 +2578,6 @@ type HostToolProvider interface {
func init() {
RegisterParallelSingletonType("buildtarget", BuildTargetSingleton)
- RegisterParallelSingletonType("soongconfigtrace", soongConfigTraceSingletonFunc)
- FinalDepsMutators(registerSoongConfigTraceMutator)
}
func BuildTargetSingleton() Singleton {
@@ -2777,54 +2739,3 @@ func CheckBlueprintSyntax(ctx BaseModuleContext, filename string, contents strin
bpctx := ctx.blueprintBaseModuleContext()
return blueprint.CheckBlueprintSyntax(bpctx.ModuleFactories(), filename, contents)
}
-
-func registerSoongConfigTraceMutator(ctx RegisterMutatorsContext) {
- ctx.BottomUp("soongconfigtrace", soongConfigTraceMutator).Parallel()
-}
-
-// soongConfigTraceMutator accumulates recorded soong_config trace from children. Also it normalizes
-// SoongConfigTrace to make it consistent.
-func soongConfigTraceMutator(ctx BottomUpMutatorContext) {
- trace := &ctx.Module().base().commonProperties.SoongConfigTrace
- ctx.VisitDirectDeps(func(m Module) {
- childTrace := &m.base().commonProperties.SoongConfigTrace
- trace.Bools = append(trace.Bools, childTrace.Bools...)
- trace.Strings = append(trace.Strings, childTrace.Strings...)
- trace.IsSets = append(trace.IsSets, childTrace.IsSets...)
- })
- trace.Bools = SortedUniqueStrings(trace.Bools)
- trace.Strings = SortedUniqueStrings(trace.Strings)
- trace.IsSets = SortedUniqueStrings(trace.IsSets)
-
- ctx.Module().base().commonProperties.SoongConfigTraceHash = trace.hash()
-}
-
-// soongConfigTraceSingleton writes a map from each module's config hash value to trace data.
-func soongConfigTraceSingletonFunc() Singleton {
- return &soongConfigTraceSingleton{}
-}
-
-type soongConfigTraceSingleton struct {
-}
-
-func (s *soongConfigTraceSingleton) GenerateBuildActions(ctx SingletonContext) {
- outFile := PathForOutput(ctx, "soong_config_trace.json")
-
- traces := make(map[string]*soongConfigTrace)
- ctx.VisitAllModules(func(module Module) {
- trace := &module.base().commonProperties.SoongConfigTrace
- if !trace.isEmpty() {
- hash := module.base().commonProperties.SoongConfigTraceHash
- traces[hash] = trace
- }
- })
-
- j, err := json.Marshal(traces)
- if err != nil {
- ctx.Errorf("json marshal to %q failed: %#v", outFile, err)
- return
- }
-
- WriteFileRule(ctx, outFile, string(j))
- ctx.Phony("soong_config_trace", outFile)
-}