Loading android/makevars.go +25 −16 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import ( "strconv" "strings" "github.com/google/blueprint" "github.com/google/blueprint/pathtools" "github.com/google/blueprint/proptools" ) Loading @@ -38,7 +40,21 @@ func androidMakeVarsProvider(ctx MakeVarsContext) { type MakeVarsContext interface { Config() Config DeviceConfig() DeviceConfig SingletonContext() SingletonContext AddNinjaFileDeps(deps ...string) Fs() pathtools.FileSystem ModuleName(module blueprint.Module) string ModuleDir(module blueprint.Module) string ModuleSubDir(module blueprint.Module) string ModuleType(module blueprint.Module) string BlueprintFile(module blueprint.Module) string ModuleErrorf(module blueprint.Module, format string, args ...interface{}) Errorf(format string, args ...interface{}) Failed() bool VisitAllModules(visit func(Module)) VisitAllModulesIf(pred func(Module) bool, visit func(Module)) // Verify the make variable matches the Soong version, fail the build // if it does not. If the make variable is empty, just set it. Loading Loading @@ -66,6 +82,8 @@ type MakeVarsContext interface { CheckRaw(name, value string) } var _ PathContext = MakeVarsContext(nil) type MakeVarsProvider func(ctx MakeVarsContext) func RegisterMakeVarsProvider(pctx PackageContext, provider MakeVarsProvider) { Loading @@ -92,8 +110,8 @@ type makeVarsProvider struct { var makeVarsProviders []makeVarsProvider type makeVarsContext struct { SingletonContext config Config ctx SingletonContext pctx PackageContext vars []makeVarsVariable } Loading Loading @@ -121,8 +139,7 @@ func (s *makeVarsSingleton) GenerateBuildActions(ctx SingletonContext) { vars := []makeVarsVariable{} for _, provider := range makeVarsProviders { mctx := &makeVarsContext{ config: ctx.Config(), ctx: ctx, SingletonContext: ctx, pctx: provider.pctx, } Loading Loading @@ -229,22 +246,14 @@ my_check_failed := return buf.Bytes() } func (c *makeVarsContext) Config() Config { return c.config } func (c *makeVarsContext) DeviceConfig() DeviceConfig { return DeviceConfig{c.config.deviceConfig} } func (c *makeVarsContext) SingletonContext() SingletonContext { return c.ctx return DeviceConfig{c.Config().deviceConfig} } var ninjaDescaper = strings.NewReplacer("$$", "$") func (c *makeVarsContext) Eval(ninjaStr string) (string, error) { s, err := c.ctx.Eval(c.pctx, ninjaStr) s, err := c.SingletonContext.Eval(c.pctx, ninjaStr) if err != nil { return "", err } Loading @@ -265,7 +274,7 @@ func (c *makeVarsContext) addVariableRaw(name, value string, strict, sort bool) func (c *makeVarsContext) addVariable(name, ninjaStr string, strict, sort bool) { value, err := c.Eval(ninjaStr) if err != nil { c.ctx.Errorf(err.Error()) c.SingletonContext.Errorf(err.Error()) } c.addVariableRaw(name, value, strict, sort) } Loading android/singleton.go +5 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import ( // SingletonContext type SingletonContext interface { Config() Config DeviceConfig() DeviceConfig ModuleName(module blueprint.Module) string ModuleDir(module blueprint.Module) string Loading Loading @@ -93,6 +94,10 @@ func (s singletonContextAdaptor) Config() Config { return s.SingletonContext.Config().(Config) } func (s singletonContextAdaptor) DeviceConfig() DeviceConfig { return DeviceConfig{s.Config().deviceConfig} } func (s singletonContextAdaptor) Variable(pctx PackageContext, name, value string) { s.SingletonContext.Variable(pctx.PackageContext, name, value) } Loading cc/makevars.go +1 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ func makeVarsProvider(ctx android.MakeVarsContext) { // Filter vendor_public_library that are exported to make exportedVendorPublicLibraries := []string{} ctx.SingletonContext().VisitAllModules(func(module android.Module) { ctx.VisitAllModules(func(module android.Module) { if ccModule, ok := module.(*Module); ok { baseName := ccModule.BaseModuleName() if inList(baseName, vendorPublicLibraries) && module.ExportedToMake() { Loading java/support_libraries.go +4 −5 Original line number Diff line number Diff line Loading @@ -28,9 +28,8 @@ func init() { func supportLibrariesMakeVarsProvider(ctx android.MakeVarsContext) { var supportAars, supportJars []string sctx := ctx.SingletonContext() sctx.VisitAllModules(func(module android.Module) { dir := sctx.ModuleDir(module) ctx.VisitAllModules(func(module android.Module) { dir := ctx.ModuleDir(module) switch { case strings.HasPrefix(dir, "prebuilts/sdk/current/extras"), dir == "prebuilts/sdk/current/androidx", Loading @@ -43,7 +42,7 @@ func supportLibrariesMakeVarsProvider(ctx android.MakeVarsContext) { return } name := sctx.ModuleName(module) name := ctx.ModuleName(module) if strings.HasSuffix(name, "-nodeps") { return } Loading @@ -54,7 +53,7 @@ func supportLibrariesMakeVarsProvider(ctx android.MakeVarsContext) { case *Library, *Import: supportJars = append(supportJars, name) default: sctx.ModuleErrorf(module, "unknown module type %t", module) ctx.ModuleErrorf(module, "unknown module type %t", module) } }) Loading Loading
android/makevars.go +25 −16 Original line number Diff line number Diff line Loading @@ -22,6 +22,8 @@ import ( "strconv" "strings" "github.com/google/blueprint" "github.com/google/blueprint/pathtools" "github.com/google/blueprint/proptools" ) Loading @@ -38,7 +40,21 @@ func androidMakeVarsProvider(ctx MakeVarsContext) { type MakeVarsContext interface { Config() Config DeviceConfig() DeviceConfig SingletonContext() SingletonContext AddNinjaFileDeps(deps ...string) Fs() pathtools.FileSystem ModuleName(module blueprint.Module) string ModuleDir(module blueprint.Module) string ModuleSubDir(module blueprint.Module) string ModuleType(module blueprint.Module) string BlueprintFile(module blueprint.Module) string ModuleErrorf(module blueprint.Module, format string, args ...interface{}) Errorf(format string, args ...interface{}) Failed() bool VisitAllModules(visit func(Module)) VisitAllModulesIf(pred func(Module) bool, visit func(Module)) // Verify the make variable matches the Soong version, fail the build // if it does not. If the make variable is empty, just set it. Loading Loading @@ -66,6 +82,8 @@ type MakeVarsContext interface { CheckRaw(name, value string) } var _ PathContext = MakeVarsContext(nil) type MakeVarsProvider func(ctx MakeVarsContext) func RegisterMakeVarsProvider(pctx PackageContext, provider MakeVarsProvider) { Loading @@ -92,8 +110,8 @@ type makeVarsProvider struct { var makeVarsProviders []makeVarsProvider type makeVarsContext struct { SingletonContext config Config ctx SingletonContext pctx PackageContext vars []makeVarsVariable } Loading Loading @@ -121,8 +139,7 @@ func (s *makeVarsSingleton) GenerateBuildActions(ctx SingletonContext) { vars := []makeVarsVariable{} for _, provider := range makeVarsProviders { mctx := &makeVarsContext{ config: ctx.Config(), ctx: ctx, SingletonContext: ctx, pctx: provider.pctx, } Loading Loading @@ -229,22 +246,14 @@ my_check_failed := return buf.Bytes() } func (c *makeVarsContext) Config() Config { return c.config } func (c *makeVarsContext) DeviceConfig() DeviceConfig { return DeviceConfig{c.config.deviceConfig} } func (c *makeVarsContext) SingletonContext() SingletonContext { return c.ctx return DeviceConfig{c.Config().deviceConfig} } var ninjaDescaper = strings.NewReplacer("$$", "$") func (c *makeVarsContext) Eval(ninjaStr string) (string, error) { s, err := c.ctx.Eval(c.pctx, ninjaStr) s, err := c.SingletonContext.Eval(c.pctx, ninjaStr) if err != nil { return "", err } Loading @@ -265,7 +274,7 @@ func (c *makeVarsContext) addVariableRaw(name, value string, strict, sort bool) func (c *makeVarsContext) addVariable(name, ninjaStr string, strict, sort bool) { value, err := c.Eval(ninjaStr) if err != nil { c.ctx.Errorf(err.Error()) c.SingletonContext.Errorf(err.Error()) } c.addVariableRaw(name, value, strict, sort) } Loading
android/singleton.go +5 −0 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import ( // SingletonContext type SingletonContext interface { Config() Config DeviceConfig() DeviceConfig ModuleName(module blueprint.Module) string ModuleDir(module blueprint.Module) string Loading Loading @@ -93,6 +94,10 @@ func (s singletonContextAdaptor) Config() Config { return s.SingletonContext.Config().(Config) } func (s singletonContextAdaptor) DeviceConfig() DeviceConfig { return DeviceConfig{s.Config().deviceConfig} } func (s singletonContextAdaptor) Variable(pctx PackageContext, name, value string) { s.SingletonContext.Variable(pctx.PackageContext, name, value) } Loading
cc/makevars.go +1 −1 Original line number Diff line number Diff line Loading @@ -100,7 +100,7 @@ func makeVarsProvider(ctx android.MakeVarsContext) { // Filter vendor_public_library that are exported to make exportedVendorPublicLibraries := []string{} ctx.SingletonContext().VisitAllModules(func(module android.Module) { ctx.VisitAllModules(func(module android.Module) { if ccModule, ok := module.(*Module); ok { baseName := ccModule.BaseModuleName() if inList(baseName, vendorPublicLibraries) && module.ExportedToMake() { Loading
java/support_libraries.go +4 −5 Original line number Diff line number Diff line Loading @@ -28,9 +28,8 @@ func init() { func supportLibrariesMakeVarsProvider(ctx android.MakeVarsContext) { var supportAars, supportJars []string sctx := ctx.SingletonContext() sctx.VisitAllModules(func(module android.Module) { dir := sctx.ModuleDir(module) ctx.VisitAllModules(func(module android.Module) { dir := ctx.ModuleDir(module) switch { case strings.HasPrefix(dir, "prebuilts/sdk/current/extras"), dir == "prebuilts/sdk/current/androidx", Loading @@ -43,7 +42,7 @@ func supportLibrariesMakeVarsProvider(ctx android.MakeVarsContext) { return } name := sctx.ModuleName(module) name := ctx.ModuleName(module) if strings.HasSuffix(name, "-nodeps") { return } Loading @@ -54,7 +53,7 @@ func supportLibrariesMakeVarsProvider(ctx android.MakeVarsContext) { case *Library, *Import: supportJars = append(supportJars, name) default: sctx.ModuleErrorf(module, "unknown module type %t", module) ctx.ModuleErrorf(module, "unknown module type %t", module) } }) Loading