xref: /aosp_15_r20/build/soong/cc/fdo_profile.go (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1// Copyright 2023 Google Inc. All rights reserved.
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 cc
16
17import (
18	"android/soong/android"
19	"github.com/google/blueprint"
20)
21
22func init() {
23	RegisterFdoProfileBuildComponents(android.InitRegistrationContext)
24}
25
26func RegisterFdoProfileBuildComponents(ctx android.RegistrationContext) {
27	ctx.RegisterModuleType("fdo_profile", FdoProfileFactory)
28}
29
30type fdoProfile struct {
31	android.ModuleBase
32
33	properties fdoProfileProperties
34}
35
36type fdoProfileProperties struct {
37	Profile *string `android:"arch_variant"`
38}
39
40// FdoProfileInfo is provided by FdoProfileProvider
41type FdoProfileInfo struct {
42	Path android.Path
43}
44
45// FdoProfileProvider is used to provide path to an fdo profile
46var FdoProfileProvider = blueprint.NewProvider[FdoProfileInfo]()
47
48// GenerateAndroidBuildActions of fdo_profile does not have any build actions
49func (fp *fdoProfile) GenerateAndroidBuildActions(ctx android.ModuleContext) {
50	if fp.properties.Profile != nil {
51		path := android.PathForModuleSrc(ctx, *fp.properties.Profile)
52		android.SetProvider(ctx, FdoProfileProvider, FdoProfileInfo{
53			Path: path,
54		})
55	}
56}
57
58func FdoProfileFactory() android.Module {
59	m := &fdoProfile{}
60	m.AddProperties(&m.properties)
61	android.InitAndroidMultiTargetsArchModule(m, android.DeviceSupported, android.MultilibBoth)
62	return m
63}
64