diff options
author | 2024-10-09 17:32:52 +0000 | |
---|---|---|
committer | 2024-10-09 23:28:28 +0000 | |
commit | f2c53982accce35e0f2262c9f9c8579fac36ca9f (patch) | |
tree | b95bf6cfa43122acbf2d865ca359df71e7a5ad25 | |
parent | 4541689941b9d00ba4588ea8e716d6cf0707b274 (diff) |
Introduce android_device module type
android_device module works as an entry point for building a specific
device image. The module can specify the name of the partition modules
that it depend on. Note that the board-specific configurations are not
specified in this module type. This will be specified in the
"configuration" modules, and the android_device module can specify the
name of the "configuration" module that it will inherit the board
configurations from.
Test: m nothing
Bug: 372486444
Change-Id: Iaaa065adc2f1018f68a33132e83caa8a6f168f80
-rw-r--r-- | filesystem/Android.bp | 1 | ||||
-rw-r--r-- | filesystem/android_device.go | 73 |
2 files changed, 74 insertions, 0 deletions
diff --git a/filesystem/Android.bp b/filesystem/Android.bp index a08f7cf17..23ec3da81 100644 --- a/filesystem/Android.bp +++ b/filesystem/Android.bp @@ -16,6 +16,7 @@ bootstrap_go_package { ], srcs: [ "aconfig_files.go", + "android_device.go", "avb_add_hash_footer.go", "avb_gen_vbmeta_image.go", "bootimg.go", diff --git a/filesystem/android_device.go b/filesystem/android_device.go new file mode 100644 index 000000000..68e60532e --- /dev/null +++ b/filesystem/android_device.go @@ -0,0 +1,73 @@ +// Copyright (C) 2024 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package filesystem + +import ( + "android/soong/android" + + "github.com/google/blueprint" + "github.com/google/blueprint/proptools" +) + +type PartitionNameProperties struct { + // Name of the Boot_partition_name partition filesystem module + Boot_partition_name *string + // Name of the System partition filesystem module + System_partition_name *string + // Name of the System_ext partition filesystem module + System_ext_partition_name *string + // Name of the Product partition filesystem module + Product_partition_name *string + // Name of the Vendor partition filesystem module + Vendor_partition_name *string +} + +type androidDevice struct { + android.ModuleBase + + partitionProps PartitionNameProperties +} + +func AndroidDeviceFactory() android.Module { + module := &androidDevice{} + module.AddProperties(&module.partitionProps) + android.InitAndroidMultiTargetsArchModule(module, android.DeviceSupported, android.MultilibCommon) + + return module +} + +type partitionDepTagType struct { + blueprint.BaseDependencyTag +} + +var filesystemDepTag partitionDepTagType + +func (a *androidDevice) DepsMutator(ctx android.BottomUpMutatorContext) { + addDependencyIfDefined := func(dep *string) { + if dep != nil { + ctx.AddDependency(ctx.Module(), filesystemDepTag, proptools.String(dep)) + } + } + + addDependencyIfDefined(a.partitionProps.Boot_partition_name) + addDependencyIfDefined(a.partitionProps.System_partition_name) + addDependencyIfDefined(a.partitionProps.System_ext_partition_name) + addDependencyIfDefined(a.partitionProps.Product_partition_name) + addDependencyIfDefined(a.partitionProps.Vendor_partition_name) +} + +func (a *androidDevice) GenerateAndroidBuildActions(ctx android.ModuleContext) { + +} |