Deprecate Snapshot build
Existing snapshot code will no longer work from VNDK deprecation, but it can give confusion to users if we keep code for the snapshot - and it adds complexity on existing code while it is not in use. This change removes all snapshot definition except host snapshot and its usage. Bug: 330100430 Bug: 332986564 Test: AOSP CF build succeeded Change-Id: Ieb6fa43d5e38315c662ce997bc305b744b367c24
This commit is contained in:
@@ -28,7 +28,6 @@ package etc
|
||||
// various `prebuilt_*` mutators.
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -36,7 +35,6 @@ import (
|
||||
"github.com/google/blueprint/proptools"
|
||||
|
||||
"android/soong/android"
|
||||
"android/soong/snapshot"
|
||||
)
|
||||
|
||||
var pctx = android.NewPackageContext("android/soong/etc")
|
||||
@@ -46,7 +44,6 @@ var pctx = android.NewPackageContext("android/soong/etc")
|
||||
func init() {
|
||||
pctx.Import("android/soong/android")
|
||||
RegisterPrebuiltEtcBuildComponents(android.InitRegistrationContext)
|
||||
snapshot.RegisterSnapshotAction(generatePrebuiltSnapshot)
|
||||
}
|
||||
|
||||
func RegisterPrebuiltEtcBuildComponents(ctx android.RegistrationContext) {
|
||||
@@ -142,9 +139,6 @@ type PrebuiltEtc struct {
|
||||
android.ModuleBase
|
||||
android.DefaultableModuleBase
|
||||
|
||||
snapshot.VendorSnapshotModuleInterface
|
||||
snapshot.RecoverySnapshotModuleInterface
|
||||
|
||||
properties prebuiltEtcProperties
|
||||
subdirProperties prebuiltSubdirProperties
|
||||
|
||||
@@ -305,14 +299,6 @@ func (p *PrebuiltEtc) InVendor() bool {
|
||||
return p.ModuleBase.InstallInVendor()
|
||||
}
|
||||
|
||||
func (p *PrebuiltEtc) ExcludeFromVendorSnapshot() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (p *PrebuiltEtc) ExcludeFromRecoverySnapshot() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func (p *PrebuiltEtc) installBaseDir(ctx android.ModuleContext) string {
|
||||
// If soc install dir was specified and SOC specific is set, set the installDirPath to the
|
||||
// specified socInstallDirBase.
|
||||
@@ -686,121 +672,3 @@ func PrebuiltRFSAFactory() android.Module {
|
||||
android.InitDefaultableModule(module)
|
||||
return module
|
||||
}
|
||||
|
||||
// Copy file into the snapshot
|
||||
func copyFile(ctx android.SingletonContext, path android.Path, out string, fake bool) android.OutputPath {
|
||||
if fake {
|
||||
// Create empty file instead for the fake snapshot
|
||||
return snapshot.WriteStringToFileRule(ctx, "", out)
|
||||
} else {
|
||||
return snapshot.CopyFileRule(pctx, ctx, path, out)
|
||||
}
|
||||
}
|
||||
|
||||
// Check if the module is target of the snapshot
|
||||
func isSnapshotAware(ctx android.SingletonContext, m *PrebuiltEtc, image snapshot.SnapshotImage) bool {
|
||||
if !m.Enabled() {
|
||||
return false
|
||||
}
|
||||
|
||||
// Skip if the module is not included in the image
|
||||
if !image.InImage(m)() {
|
||||
return false
|
||||
}
|
||||
|
||||
// When android/prebuilt.go selects between source and prebuilt, it sets
|
||||
// HideFromMake on the other one to avoid duplicate install rules in make.
|
||||
if m.IsHideFromMake() {
|
||||
return false
|
||||
}
|
||||
|
||||
// There are some prebuilt_etc module with multiple definition of same name.
|
||||
// Check if the target would be included from the build
|
||||
if !m.ExportedToMake() {
|
||||
return false
|
||||
}
|
||||
|
||||
// Skip if the module is in the predefined path list to skip
|
||||
if image.IsProprietaryPath(ctx.ModuleDir(m), ctx.DeviceConfig()) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Skip if the module should be excluded
|
||||
if image.ExcludeFromSnapshot(m) || image.ExcludeFromDirectedSnapshot(ctx.DeviceConfig(), m.BaseModuleName()) {
|
||||
return false
|
||||
}
|
||||
|
||||
// Skip from other exceptional cases
|
||||
if m.Target().Os.Class != android.Device {
|
||||
return false
|
||||
}
|
||||
if m.Target().NativeBridge == android.NativeBridgeEnabled {
|
||||
return false
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
func generatePrebuiltSnapshot(s snapshot.SnapshotSingleton, ctx android.SingletonContext, snapshotArchDir string) snapshot.SnapshotPaths {
|
||||
/*
|
||||
Snapshot zipped artifacts directory structure for etc modules:
|
||||
{SNAPSHOT_ARCH}/
|
||||
arch-{TARGET_ARCH}-{TARGET_ARCH_VARIANT}/
|
||||
etc/
|
||||
(prebuilt etc files)
|
||||
arch-{TARGET_2ND_ARCH}-{TARGET_2ND_ARCH_VARIANT}/
|
||||
etc/
|
||||
(prebuilt etc files)
|
||||
NOTICE_FILES/
|
||||
(notice files)
|
||||
*/
|
||||
var snapshotOutputs android.Paths
|
||||
var snapshotNotices android.Paths
|
||||
installedNotices := make(map[string]bool)
|
||||
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
m, ok := module.(*PrebuiltEtc)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
|
||||
if !isSnapshotAware(ctx, m, s.Image) {
|
||||
return
|
||||
}
|
||||
|
||||
targetArch := "arch-" + m.Target().Arch.ArchType.String()
|
||||
|
||||
snapshotLibOut := filepath.Join(snapshotArchDir, targetArch, "etc", m.BaseModuleName())
|
||||
outputs, _ := m.OutputFiles("")
|
||||
for _, output := range outputs {
|
||||
cp := copyFile(ctx, output, snapshotLibOut, s.Fake)
|
||||
snapshotOutputs = append(snapshotOutputs, cp)
|
||||
}
|
||||
|
||||
prop := snapshot.SnapshotJsonFlags{}
|
||||
propOut := snapshotLibOut + ".json"
|
||||
prop.InitBaseSnapshotProps(m)
|
||||
prop.RelativeInstallPath = m.SubDir()
|
||||
|
||||
if m.properties.Filename != nil {
|
||||
prop.Filename = *m.properties.Filename
|
||||
}
|
||||
|
||||
j, err := json.Marshal(prop)
|
||||
if err != nil {
|
||||
ctx.Errorf("json marshal to %q failed: %#v", propOut, err)
|
||||
return
|
||||
}
|
||||
snapshotOutputs = append(snapshotOutputs, snapshot.WriteStringToFileRule(ctx, string(j), propOut))
|
||||
|
||||
for _, notice := range m.EffectiveLicenseFiles() {
|
||||
if _, ok := installedNotices[notice.String()]; !ok {
|
||||
installedNotices[notice.String()] = true
|
||||
snapshotNotices = append(snapshotNotices, notice)
|
||||
}
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
return snapshot.SnapshotPaths{OutputFiles: snapshotOutputs, NoticeFiles: snapshotNotices}
|
||||
}
|
||||
|
Reference in New Issue
Block a user