Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 791733fa authored by Cole Faust's avatar Cole Faust Committed by Gerrit Code Review
Browse files

Merge "Simplify aconfig_declarations_group" into main

parents dcde7e26 779d41cf
Loading
Loading
Loading
Loading
+21 −34
Original line number Original line Diff line number Diff line
@@ -39,11 +39,6 @@ type AconfigDeclarationsGroup struct {
	android.DefaultableModuleBase
	android.DefaultableModuleBase


	properties AconfigDeclarationsGroupProperties
	properties AconfigDeclarationsGroupProperties

	aconfigDeclarationNames      []string
	intermediateCacheOutputPaths android.Paths
	javaSrcjars                  android.Paths
	modeInfos                    map[string]android.ModeInfo
}
}


type AconfigDeclarationsGroupProperties struct {
type AconfigDeclarationsGroupProperties struct {
@@ -76,53 +71,45 @@ func (adg *AconfigDeclarationsGroup) DepsMutator(ctx android.BottomUpMutatorCont
	ctx.AddDependency(ctx.Module(), rustAconfigLibraryTag, adg.properties.Rust_aconfig_libraries...)
	ctx.AddDependency(ctx.Module(), rustAconfigLibraryTag, adg.properties.Rust_aconfig_libraries...)
}
}


func (adg *AconfigDeclarationsGroup) VisitDeps(ctx android.ModuleContext) {
func (adg *AconfigDeclarationsGroup) GenerateAndroidBuildActions(ctx android.ModuleContext) {
	adg.modeInfos = make(map[string]android.ModeInfo)
	modeInfos := make(map[string]android.ModeInfo)
	var aconfigDeclarationNames []string
	var intermediateCacheOutputPaths android.Paths
	var javaSrcjars android.Paths
	ctx.VisitDirectDeps(func(dep android.Module) {
	ctx.VisitDirectDeps(func(dep android.Module) {
		tag := ctx.OtherModuleDependencyTag(dep)
		tag := ctx.OtherModuleDependencyTag(dep)
		if provider, ok := android.OtherModuleProvider(ctx, dep, android.CodegenInfoProvider); ok {
		if provider, ok := android.OtherModuleProvider(ctx, dep, android.CodegenInfoProvider); ok {


			// aconfig declaration names and cache files are collected for all aconfig library dependencies
			// aconfig declaration names and cache files are collected for all aconfig library dependencies
			adg.aconfigDeclarationNames = append(adg.aconfigDeclarationNames, provider.AconfigDeclarations...)
			aconfigDeclarationNames = append(aconfigDeclarationNames, provider.AconfigDeclarations...)
			adg.intermediateCacheOutputPaths = append(adg.intermediateCacheOutputPaths, provider.IntermediateCacheOutputPaths...)
			intermediateCacheOutputPaths = append(intermediateCacheOutputPaths, provider.IntermediateCacheOutputPaths...)


			switch tag {
			switch tag {
			case aconfigDeclarationsGroupTag:
			case aconfigDeclarationsGroupTag:
				// Will retrieve outputs from another language codegen modules when support is added
				// Will retrieve outputs from another language codegen modules when support is added
				adg.javaSrcjars = append(adg.javaSrcjars, provider.Srcjars...)
				javaSrcjars = append(javaSrcjars, provider.Srcjars...)
				maps.Copy(adg.modeInfos, provider.ModeInfos)
				maps.Copy(modeInfos, provider.ModeInfos)
			case javaAconfigLibraryTag:
			case javaAconfigLibraryTag:
				adg.javaSrcjars = append(adg.javaSrcjars, provider.Srcjars...)
				javaSrcjars = append(javaSrcjars, provider.Srcjars...)
				maps.Copy(adg.modeInfos, provider.ModeInfos)
				maps.Copy(modeInfos, provider.ModeInfos)
			case ccAconfigLibraryTag:
			case ccAconfigLibraryTag:
				maps.Copy(adg.modeInfos, provider.ModeInfos)
				maps.Copy(modeInfos, provider.ModeInfos)
			case rustAconfigLibraryTag:
			case rustAconfigLibraryTag:
				maps.Copy(adg.modeInfos, provider.ModeInfos)
				maps.Copy(modeInfos, provider.ModeInfos)
			}
			}
		}
		}
	})
	})
}


func (adg *AconfigDeclarationsGroup) GenerateAndroidBuildActions(ctx android.ModuleContext) {
	aconfigDeclarationNames = android.FirstUniqueStrings(aconfigDeclarationNames)
	adg.VisitDeps(ctx)
	intermediateCacheOutputPaths = android.FirstUniquePaths(intermediateCacheOutputPaths)
	adg.aconfigDeclarationNames = android.FirstUniqueStrings(adg.aconfigDeclarationNames)
	adg.intermediateCacheOutputPaths = android.FirstUniquePaths(adg.intermediateCacheOutputPaths)


	android.SetProvider(ctx, android.CodegenInfoProvider, android.CodegenInfo{
	android.SetProvider(ctx, android.CodegenInfoProvider, android.CodegenInfo{
		AconfigDeclarations:          adg.aconfigDeclarationNames,
		AconfigDeclarations:          aconfigDeclarationNames,
		IntermediateCacheOutputPaths: adg.intermediateCacheOutputPaths,
		IntermediateCacheOutputPaths: intermediateCacheOutputPaths,
		Srcjars:                      adg.javaSrcjars,
		Srcjars:                      javaSrcjars,
		ModeInfos:                    adg.modeInfos,
		ModeInfos:                    modeInfos,
	})
	})


	ctx.SetOutputFiles(adg.intermediateCacheOutputPaths, "")
	ctx.SetOutputFiles(intermediateCacheOutputPaths, "")
	ctx.SetOutputFiles(adg.javaSrcjars, ".srcjars")
	ctx.SetOutputFiles(javaSrcjars, ".srcjars")
}

func (adg *AconfigDeclarationsGroup) Srcjars() android.Paths {
	return adg.javaSrcjars
}

func (adg *AconfigDeclarationsGroup) AconfigDeclarations() []string {
	return adg.aconfigDeclarationNames
}
}
+1 −7
Original line number Original line Diff line number Diff line
@@ -15,8 +15,6 @@
package codegen
package codegen


import (
import (
	"fmt"

	"android/soong/android"
	"android/soong/android"
	"android/soong/java"
	"android/soong/java"


@@ -80,7 +78,7 @@ func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) GenerateSourceJarBuild
	// Get the values that came from the global RELEASE_ACONFIG_VALUE_SETS flag
	// Get the values that came from the global RELEASE_ACONFIG_VALUE_SETS flag
	declarationsModules := ctx.GetDirectDepsWithTag(declarationsTag)
	declarationsModules := ctx.GetDirectDepsWithTag(declarationsTag)
	if len(declarationsModules) != 1 {
	if len(declarationsModules) != 1 {
		panic(fmt.Errorf("Exactly one aconfig_declarations property required"))
		panic("Exactly one aconfig_declarations property required")
	}
	}
	declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey)
	declarations, _ := android.OtherModuleProvider(ctx, declarationsModules[0], android.AconfigDeclarationsProviderKey)


@@ -133,10 +131,6 @@ func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) GenerateSourceJarBuild
	return srcJarPath, declarations.IntermediateCacheOutputPath
	return srcJarPath, declarations.IntermediateCacheOutputPath
}
}


func (callbacks *JavaAconfigDeclarationsLibraryCallbacks) AconfigDeclarations() *string {
	return proptools.StringPtr(callbacks.properties.Aconfig_declarations)
}

func isModeSupported(mode string) bool {
func isModeSupported(mode string) bool {
	return android.InList(mode, aconfigSupportedModes)
	return android.InList(mode, aconfigSupportedModes)
}
}