diff options
Diffstat (limited to 'filesystem/android_device.go')
-rw-r--r-- | filesystem/android_device.go | 73 |
1 files changed, 73 insertions, 0 deletions
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) { + +} |