Convert NewProvider/NewMutatorProvider to generic providers API
Convert all of the callers to NewProvider and NewMutatorProvider to use a generic type parameter instead of an example object. Bug: 316410648 Test: builds Change-Id: Ic9cdafc87336e26730d3fd596df05de0e7267542
This commit is contained in:
parent
3c0a83d19f
commit
bc7d76cca2
27 changed files with 44 additions and 42 deletions
|
@ -120,7 +120,7 @@ type DeclarationsProviderData struct {
|
|||
IntermediateDumpOutputPath android.WritablePath
|
||||
}
|
||||
|
||||
var DeclarationsProviderKey = blueprint.NewProvider(DeclarationsProviderData{})
|
||||
var DeclarationsProviderKey = blueprint.NewProvider[DeclarationsProviderData]()
|
||||
|
||||
// This is used to collect the aconfig declarations info on the transitive closure,
|
||||
// the data is keyed on the container.
|
||||
|
@ -128,7 +128,7 @@ type TransitiveDeclarationsInfo struct {
|
|||
AconfigFiles map[string]android.Paths
|
||||
}
|
||||
|
||||
var TransitiveDeclarationsInfoProvider = blueprint.NewProvider(TransitiveDeclarationsInfo{})
|
||||
var TransitiveDeclarationsInfoProvider = blueprint.NewProvider[TransitiveDeclarationsInfo]()
|
||||
|
||||
func (module *DeclarationsModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
// Get the values that came from the global RELEASE_ACONFIG_VALUE_SETS flag
|
||||
|
|
|
@ -54,7 +54,7 @@ type valueSetProviderData struct {
|
|||
AvailablePackages map[string]android.Paths
|
||||
}
|
||||
|
||||
var valueSetProviderKey = blueprint.NewProvider(valueSetProviderData{})
|
||||
var valueSetProviderKey = blueprint.NewProvider[valueSetProviderData]()
|
||||
|
||||
func (module *ValueSetModule) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
deps := ctx.AddDependency(ctx.Module(), valueSetTag, module.properties.Values...)
|
||||
|
|
|
@ -52,7 +52,7 @@ type valuesProviderData struct {
|
|||
Values android.Paths
|
||||
}
|
||||
|
||||
var valuesProviderKey = blueprint.NewProvider(valuesProviderData{})
|
||||
var valuesProviderKey = blueprint.NewProvider[valuesProviderData]()
|
||||
|
||||
func (module *ValuesModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
if len(module.properties.Package) == 0 {
|
||||
|
|
|
@ -64,7 +64,7 @@ type AidlLibraryInfo struct {
|
|||
}
|
||||
|
||||
// AidlLibraryProvider provides the srcs and the transitive include dirs
|
||||
var AidlLibraryProvider = blueprint.NewProvider(AidlLibraryInfo{})
|
||||
var AidlLibraryProvider = blueprint.NewProvider[AidlLibraryInfo]()
|
||||
|
||||
func (lib *AidlLibrary) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
includeDirsDepSetBuilder := android.NewDepSetBuilder[android.Path](android.PREORDER)
|
||||
|
|
|
@ -89,7 +89,7 @@ type ApexInfo struct {
|
|||
TestApexes []string
|
||||
}
|
||||
|
||||
var ApexInfoProvider = blueprint.NewMutatorProvider(ApexInfo{}, "apex")
|
||||
var ApexInfoProvider = blueprint.NewMutatorProvider[ApexInfo]("apex")
|
||||
|
||||
func (i ApexInfo) AddJSONData(d *map[string]interface{}) {
|
||||
(*d)["Apex"] = map[string]interface{}{
|
||||
|
@ -145,7 +145,7 @@ type ApexTestForInfo struct {
|
|||
ApexContents []*ApexContents
|
||||
}
|
||||
|
||||
var ApexTestForInfoProvider = blueprint.NewMutatorProvider(ApexTestForInfo{}, "apex_test_for")
|
||||
var ApexTestForInfoProvider = blueprint.NewMutatorProvider[ApexTestForInfo]("apex_test_for")
|
||||
|
||||
// DepIsInSameApex defines an interface that should be used to determine whether a given dependency
|
||||
// should be considered as part of the same APEX as the current module or not. Note: this was
|
||||
|
|
|
@ -124,7 +124,7 @@ func (a *allApexContributions) SetPrebuiltSelectionInfoProvider(ctx BaseModuleCo
|
|||
|
||||
// A provider containing metadata about whether source or prebuilt should be used
|
||||
// This provider will be used in prebuilt_select mutator to redirect deps
|
||||
var PrebuiltSelectionInfoProvider = blueprint.NewMutatorProvider(PrebuiltSelectionInfoMap{}, "prebuilt_select")
|
||||
var PrebuiltSelectionInfoProvider = blueprint.NewMutatorProvider[PrebuiltSelectionInfoMap]("prebuilt_select")
|
||||
|
||||
// Map of baseModuleName to the selected source or prebuilt
|
||||
type PrebuiltSelectionInfoMap map[string]PrebuiltSelectionInfo
|
||||
|
|
|
@ -98,7 +98,7 @@ func (i DeapexerInfo) PrebuiltExportPath(apexRelativePath string) WritablePath {
|
|||
|
||||
// Provider that can be used from within the `GenerateAndroidBuildActions` of a module that depends
|
||||
// on a `deapexer` module to retrieve its `DeapexerInfo`.
|
||||
var DeapexerProvider = blueprint.NewProvider(DeapexerInfo{})
|
||||
var DeapexerProvider = blueprint.NewProvider[DeapexerInfo]()
|
||||
|
||||
// NewDeapexerInfo creates and initializes a DeapexerInfo that is suitable
|
||||
// for use with a prebuilt_apex module.
|
||||
|
|
|
@ -200,7 +200,7 @@ func isContainerFromFileExtensions(installPaths InstallPaths, builtPaths Paths)
|
|||
}
|
||||
|
||||
// LicenseMetadataProvider is used to propagate license metadata paths between modules.
|
||||
var LicenseMetadataProvider = blueprint.NewProvider(&LicenseMetadataInfo{})
|
||||
var LicenseMetadataProvider = blueprint.NewProvider[*LicenseMetadataInfo]()
|
||||
|
||||
// LicenseMetadataInfo stores the license metadata path for a module.
|
||||
type LicenseMetadataInfo struct {
|
||||
|
|
|
@ -322,7 +322,7 @@ type LicenseInfo struct {
|
|||
Licenses []string
|
||||
}
|
||||
|
||||
var LicenseInfoProvider = blueprint.NewProvider(LicenseInfo{})
|
||||
var LicenseInfoProvider = blueprint.NewProvider[LicenseInfo]()
|
||||
|
||||
func init() {
|
||||
RegisterMakeVarsProvider(pctx, licensesMakeVarsProvider)
|
||||
|
|
|
@ -860,11 +860,11 @@ type ExportedComponentsInfo struct {
|
|||
Components []string
|
||||
}
|
||||
|
||||
var ExportedComponentsInfoProvider = blueprint.NewProvider(ExportedComponentsInfo{})
|
||||
var ExportedComponentsInfoProvider = blueprint.NewProvider[ExportedComponentsInfo]()
|
||||
|
||||
// AdditionalSdkInfo contains additional properties to add to the generated SDK info file.
|
||||
type AdditionalSdkInfo struct {
|
||||
Properties map[string]interface{}
|
||||
}
|
||||
|
||||
var AdditionalSdkInfoProvider = blueprint.NewProvider(AdditionalSdkInfo{})
|
||||
var AdditionalSdkInfoProvider = blueprint.NewProvider[AdditionalSdkInfo]()
|
||||
|
|
|
@ -912,13 +912,13 @@ type DCLAInfo struct {
|
|||
ProvidedLibs []string
|
||||
}
|
||||
|
||||
var DCLAInfoProvider = blueprint.NewMutatorProvider(DCLAInfo{}, "apex_info")
|
||||
var DCLAInfoProvider = blueprint.NewMutatorProvider[DCLAInfo]("apex_info")
|
||||
|
||||
type ApexBundleInfo struct {
|
||||
Contents *android.ApexContents
|
||||
}
|
||||
|
||||
var ApexBundleInfoProvider = blueprint.NewMutatorProvider(ApexBundleInfo{}, "apex_info")
|
||||
var ApexBundleInfoProvider = blueprint.NewMutatorProvider[ApexBundleInfo]("apex_info")
|
||||
|
||||
var _ ApexInfoMutator = (*apexBundle)(nil)
|
||||
|
||||
|
|
|
@ -52,7 +52,7 @@ func init() {
|
|||
pctx.SourcePathVariable("bloaty", "prebuilts/build-tools/${hostPrebuiltTag}/bin/bloaty")
|
||||
pctx.HostBinToolVariable("bloatyMerger", "bloaty_merger")
|
||||
android.RegisterParallelSingletonType("file_metrics", fileSizesSingleton)
|
||||
fileSizeMeasurerKey = blueprint.NewProvider(measuredFiles{})
|
||||
fileSizeMeasurerKey = blueprint.NewProvider[measuredFiles]()
|
||||
}
|
||||
|
||||
// measuredFiles contains the paths of the files measured by a module.
|
||||
|
|
|
@ -43,7 +43,7 @@ type FdoProfileInfo struct {
|
|||
}
|
||||
|
||||
// FdoProfileProvider is used to provide path to an fdo profile
|
||||
var FdoProfileProvider = blueprint.NewMutatorProvider(FdoProfileInfo{}, "fdo_profile")
|
||||
var FdoProfileProvider = blueprint.NewMutatorProvider[FdoProfileInfo]("fdo_profile")
|
||||
|
||||
// FdoProfileMutatorInterface is the interface implemented by fdo_profile module type
|
||||
// module types that can depend on an fdo_profile module
|
||||
|
|
|
@ -368,7 +368,7 @@ type SharedLibraryInfo struct {
|
|||
TransitiveStaticLibrariesForOrdering *android.DepSet[android.Path]
|
||||
}
|
||||
|
||||
var SharedLibraryInfoProvider = blueprint.NewProvider(SharedLibraryInfo{})
|
||||
var SharedLibraryInfoProvider = blueprint.NewProvider[SharedLibraryInfo]()
|
||||
|
||||
// SharedStubLibrary is a struct containing information about a stub shared library.
|
||||
// Stub libraries are used for cross-APEX dependencies; when a library is to depend on a shared
|
||||
|
@ -391,7 +391,7 @@ type SharedLibraryStubsInfo struct {
|
|||
IsLLNDK bool
|
||||
}
|
||||
|
||||
var SharedLibraryStubsProvider = blueprint.NewProvider(SharedLibraryStubsInfo{})
|
||||
var SharedLibraryStubsProvider = blueprint.NewProvider[SharedLibraryStubsInfo]()
|
||||
|
||||
// StaticLibraryInfo is a provider to propagate information about a static C++ library.
|
||||
type StaticLibraryInfo struct {
|
||||
|
@ -410,14 +410,14 @@ type StaticLibraryInfo struct {
|
|||
TransitiveStaticLibrariesForOrdering *android.DepSet[android.Path]
|
||||
}
|
||||
|
||||
var StaticLibraryInfoProvider = blueprint.NewProvider(StaticLibraryInfo{})
|
||||
var StaticLibraryInfoProvider = blueprint.NewProvider[StaticLibraryInfo]()
|
||||
|
||||
// HeaderLibraryInfo is a marker provider that identifies a module as a header library.
|
||||
type HeaderLibraryInfo struct {
|
||||
}
|
||||
|
||||
// HeaderLibraryInfoProvider is a marker provider that identifies a module as a header library.
|
||||
var HeaderLibraryInfoProvider = blueprint.NewProvider(HeaderLibraryInfo{})
|
||||
var HeaderLibraryInfoProvider = blueprint.NewProvider[HeaderLibraryInfo]()
|
||||
|
||||
// FlagExporterInfo is a provider to propagate transitive library information
|
||||
// pertaining to exported include paths and flags.
|
||||
|
@ -429,4 +429,4 @@ type FlagExporterInfo struct {
|
|||
GeneratedHeaders android.Paths
|
||||
}
|
||||
|
||||
var FlagExporterInfoProvider = blueprint.NewProvider(FlagExporterInfo{})
|
||||
var FlagExporterInfoProvider = blueprint.NewProvider[FlagExporterInfo]()
|
||||
|
|
|
@ -209,7 +209,7 @@ type SnapshotInfo struct {
|
|||
HeaderLibs, Binaries, Objects, StaticLibs, SharedLibs, Rlibs, Dylibs map[string]string
|
||||
}
|
||||
|
||||
var SnapshotInfoProvider = blueprint.NewMutatorProvider(SnapshotInfo{}, "deps")
|
||||
var SnapshotInfoProvider = blueprint.NewMutatorProvider[SnapshotInfo]("deps")
|
||||
|
||||
var _ android.ImageInterface = (*snapshotModule)(nil)
|
||||
|
||||
|
|
|
@ -1069,7 +1069,7 @@ type JniPackageInfo struct {
|
|||
JniPackages android.Paths
|
||||
}
|
||||
|
||||
var JniPackageProvider = blueprint.NewProvider(JniPackageInfo{})
|
||||
var JniPackageProvider = blueprint.NewProvider[JniPackageInfo]()
|
||||
|
||||
// Unzip an AAR and extract the JNI libs for $archString.
|
||||
var extractJNI = pctx.AndroidStaticRule("extractJNI",
|
||||
|
|
|
@ -352,7 +352,7 @@ func (m *BootclasspathFragmentModule) bootclasspathFragmentPropertyCheck(ctx and
|
|||
}
|
||||
}
|
||||
|
||||
var BootclasspathFragmentApexContentInfoProvider = blueprint.NewProvider(BootclasspathFragmentApexContentInfo{})
|
||||
var BootclasspathFragmentApexContentInfoProvider = blueprint.NewProvider[BootclasspathFragmentApexContentInfo]()
|
||||
|
||||
// BootclasspathFragmentApexContentInfo contains the bootclasspath_fragments contributions to the
|
||||
// apex contents.
|
||||
|
|
|
@ -211,7 +211,7 @@ func (c *ClasspathFragmentBase) androidMkEntries() []android.AndroidMkEntries {
|
|||
}}
|
||||
}
|
||||
|
||||
var ClasspathFragmentProtoContentInfoProvider = blueprint.NewProvider(ClasspathFragmentProtoContentInfo{})
|
||||
var ClasspathFragmentProtoContentInfoProvider = blueprint.NewProvider[ClasspathFragmentProtoContentInfo]()
|
||||
|
||||
type ClasspathFragmentProtoContentInfo struct {
|
||||
// Whether the classpaths.proto config is generated for the fragment.
|
||||
|
|
|
@ -114,7 +114,7 @@ func TestCodeMetadata(t *testing.T) {
|
|||
}
|
||||
}
|
||||
func runCodeMetadataTest(
|
||||
t *testing.T, errorHandler android.FixtureErrorHandler, bp string,
|
||||
t *testing.T, errorHandler android.FixtureErrorHandler, bp string,
|
||||
) *android.TestResult {
|
||||
return android.GroupFixturePreparers(
|
||||
soongTesting.PrepareForTestWithTestingBuildComponents, prepareForJavaTest,
|
||||
|
|
|
@ -600,7 +600,7 @@ func (i *HiddenAPIInfo) FlagSubset() SignatureCsvSubset {
|
|||
return SignatureCsvSubset{i.FilteredFlagsPath, i.SignaturePatternsPath}
|
||||
}
|
||||
|
||||
var HiddenAPIInfoProvider = blueprint.NewProvider(HiddenAPIInfo{})
|
||||
var HiddenAPIInfoProvider = blueprint.NewProvider[HiddenAPIInfo]()
|
||||
|
||||
// HiddenAPIInfoForSdk contains information provided by the hidden API processing for use
|
||||
// by the sdk snapshot.
|
||||
|
@ -617,7 +617,7 @@ type HiddenAPIInfoForSdk struct {
|
|||
}
|
||||
|
||||
// Provides hidden API info for the sdk snapshot.
|
||||
var HiddenAPIInfoForSdkProvider = blueprint.NewProvider(HiddenAPIInfoForSdk{})
|
||||
var HiddenAPIInfoForSdkProvider = blueprint.NewProvider[HiddenAPIInfoForSdk]()
|
||||
|
||||
// ModuleStubDexJars contains the stub dex jars provided by a single module.
|
||||
//
|
||||
|
@ -749,7 +749,7 @@ type HiddenAPIPropertyInfo struct {
|
|||
SplitPackages []string
|
||||
}
|
||||
|
||||
var hiddenAPIPropertyInfoProvider = blueprint.NewProvider(HiddenAPIPropertyInfo{})
|
||||
var hiddenAPIPropertyInfoProvider = blueprint.NewProvider[HiddenAPIPropertyInfo]()
|
||||
|
||||
// newHiddenAPIPropertyInfo creates a new initialized HiddenAPIPropertyInfo struct.
|
||||
func newHiddenAPIPropertyInfo() HiddenAPIPropertyInfo {
|
||||
|
|
|
@ -90,4 +90,4 @@ func (i *MonolithicHiddenAPIInfo) append(other *HiddenAPIInfo) {
|
|||
i.FlagSubsets = append(i.FlagSubsets, other.FlagSubset())
|
||||
}
|
||||
|
||||
var MonolithicHiddenAPIInfoProvider = blueprint.NewProvider(MonolithicHiddenAPIInfo{})
|
||||
var MonolithicHiddenAPIInfoProvider = blueprint.NewProvider[MonolithicHiddenAPIInfo]()
|
||||
|
|
|
@ -239,7 +239,7 @@ type ProguardSpecInfo struct {
|
|||
UnconditionallyExportedProguardFlags *android.DepSet[android.Path]
|
||||
}
|
||||
|
||||
var ProguardSpecInfoProvider = blueprint.NewProvider(ProguardSpecInfo{})
|
||||
var ProguardSpecInfoProvider = blueprint.NewProvider[ProguardSpecInfo]()
|
||||
|
||||
// JavaInfo contains information about a java module for use by modules that depend on it.
|
||||
type JavaInfo struct {
|
||||
|
@ -295,7 +295,7 @@ type JavaInfo struct {
|
|||
JacocoReportClassesFile android.Path
|
||||
}
|
||||
|
||||
var JavaInfoProvider = blueprint.NewProvider(JavaInfo{})
|
||||
var JavaInfoProvider = blueprint.NewProvider[JavaInfo]()
|
||||
|
||||
// SyspropPublicStubInfo contains info about the sysprop public stub library that corresponds to
|
||||
// the sysprop implementation library.
|
||||
|
@ -305,7 +305,7 @@ type SyspropPublicStubInfo struct {
|
|||
JavaInfo JavaInfo
|
||||
}
|
||||
|
||||
var SyspropPublicStubInfoProvider = blueprint.NewProvider(SyspropPublicStubInfo{})
|
||||
var SyspropPublicStubInfoProvider = blueprint.NewProvider[SyspropPublicStubInfo]()
|
||||
|
||||
// Methods that need to be implemented for a module that is added to apex java_libs property.
|
||||
type ApexDependency interface {
|
||||
|
@ -1624,7 +1624,7 @@ type JavaApiImportInfo struct {
|
|||
ApiSurface string
|
||||
}
|
||||
|
||||
var JavaApiImportProvider = blueprint.NewProvider(JavaApiImportInfo{})
|
||||
var JavaApiImportProvider = blueprint.NewProvider[JavaApiImportInfo]()
|
||||
|
||||
func (ap *JavaApiContribution) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
var apiFile android.Path = nil
|
||||
|
|
|
@ -122,7 +122,7 @@ func TestTestSpec(t *testing.T) {
|
|||
}
|
||||
|
||||
func runTestSpecTest(
|
||||
t *testing.T, errorHandler android.FixtureErrorHandler, bp string,
|
||||
t *testing.T, errorHandler android.FixtureErrorHandler, bp string,
|
||||
) *android.TestResult {
|
||||
return android.GroupFixturePreparers(
|
||||
soongTesting.PrepareForTestWithTestingBuildComponents,
|
||||
|
|
|
@ -64,7 +64,7 @@ type ApiImportInfo struct {
|
|||
SharedLibs, HeaderLibs, ApexSharedLibs map[string]string
|
||||
}
|
||||
|
||||
var ApiImportsProvider = blueprint.NewMutatorProvider(ApiImportInfo{}, "deps")
|
||||
var ApiImportsProvider = blueprint.NewMutatorProvider[ApiImportInfo]("deps")
|
||||
|
||||
// Store module lists into ApiImportInfo and share it over mutator provider.
|
||||
func (imports *ApiImports) DepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
|
|
|
@ -527,7 +527,7 @@ type FlagExporterInfo struct {
|
|||
LinkObjects []string // TODO: this should be android.Paths
|
||||
}
|
||||
|
||||
var FlagExporterInfoProvider = blueprint.NewProvider(FlagExporterInfo{})
|
||||
var FlagExporterInfoProvider = blueprint.NewProvider[FlagExporterInfo]()
|
||||
|
||||
func (mod *Module) isCoverageVariant() bool {
|
||||
return mod.coverage.Properties.IsCoverageVariant
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
"android/soong/android"
|
||||
"android/soong/testing/code_metadata_internal_proto"
|
||||
"github.com/google/blueprint"
|
||||
|
||||
"google.golang.org/protobuf/proto"
|
||||
)
|
||||
|
||||
|
@ -83,7 +84,7 @@ type CodeMetadataProviderData struct {
|
|||
IntermediatePath android.WritablePath
|
||||
}
|
||||
|
||||
var CodeMetadataProviderKey = blueprint.NewProvider(CodeMetadataProviderData{})
|
||||
var CodeMetadataProviderKey = blueprint.NewProvider[CodeMetadataProviderData]()
|
||||
|
||||
func (module *CodeMetadataModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
metadataList := make(
|
||||
|
|
|
@ -20,8 +20,9 @@ import (
|
|||
|
||||
"android/soong/android"
|
||||
"android/soong/testing/test_spec_proto"
|
||||
"github.com/google/blueprint"
|
||||
"google.golang.org/protobuf/proto"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
// ErrTestModuleDataNotFound is the error message for missing test module provider data.
|
||||
|
@ -81,12 +82,12 @@ type TestSpecProviderData struct {
|
|||
IntermediatePath android.WritablePath
|
||||
}
|
||||
|
||||
var TestSpecProviderKey = blueprint.NewProvider(TestSpecProviderData{})
|
||||
var TestSpecProviderKey = blueprint.NewProvider[TestSpecProviderData]()
|
||||
|
||||
type TestModuleProviderData struct {
|
||||
}
|
||||
|
||||
var TestModuleProviderKey = blueprint.NewProvider(TestModuleProviderData{})
|
||||
var TestModuleProviderKey = blueprint.NewProvider[TestModuleProviderData]()
|
||||
|
||||
func (module *TestSpecModule) GenerateAndroidBuildActions(ctx android.ModuleContext) {
|
||||
for _, m := range ctx.GetDirectDepsWithTag(testsDepTag) {
|
||||
|
|
Loading…
Reference in a new issue