blob: 68e60532e1e1aa26be083e647e84b489d66d1df6 [file] [log] [blame]
Jihoon Kangf2c53982024-10-09 17:32:52 +00001// Copyright (C) 2024 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15package filesystem
16
17import (
18 "android/soong/android"
19
20 "github.com/google/blueprint"
21 "github.com/google/blueprint/proptools"
22)
23
24type PartitionNameProperties struct {
25 // Name of the Boot_partition_name partition filesystem module
26 Boot_partition_name *string
27 // Name of the System partition filesystem module
28 System_partition_name *string
29 // Name of the System_ext partition filesystem module
30 System_ext_partition_name *string
31 // Name of the Product partition filesystem module
32 Product_partition_name *string
33 // Name of the Vendor partition filesystem module
34 Vendor_partition_name *string
35}
36
37type androidDevice struct {
38 android.ModuleBase
39
40 partitionProps PartitionNameProperties
41}
42
43func AndroidDeviceFactory() android.Module {
44 module := &androidDevice{}
45 module.AddProperties(&module.partitionProps)
46 android.InitAndroidMultiTargetsArchModule(module, android.DeviceSupported, android.MultilibCommon)
47
48 return module
49}
50
51type partitionDepTagType struct {
52 blueprint.BaseDependencyTag
53}
54
55var filesystemDepTag partitionDepTagType
56
57func (a *androidDevice) DepsMutator(ctx android.BottomUpMutatorContext) {
58 addDependencyIfDefined := func(dep *string) {
59 if dep != nil {
60 ctx.AddDependency(ctx.Module(), filesystemDepTag, proptools.String(dep))
61 }
62 }
63
64 addDependencyIfDefined(a.partitionProps.Boot_partition_name)
65 addDependencyIfDefined(a.partitionProps.System_partition_name)
66 addDependencyIfDefined(a.partitionProps.System_ext_partition_name)
67 addDependencyIfDefined(a.partitionProps.Product_partition_name)
68 addDependencyIfDefined(a.partitionProps.Vendor_partition_name)
69}
70
71func (a *androidDevice) GenerateAndroidBuildActions(ctx android.ModuleContext) {
72
73}