Loading android/module.go +11 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ type EarlyModuleContext interface { type BaseModuleContext interface { EarlyModuleContext blueprintBaseModuleContext() blueprint.BaseModuleContext OtherModuleName(m blueprint.Module) string OtherModuleDir(m blueprint.Module) string OtherModuleErrorf(m blueprint.Module, fmt string, args ...interface{}) Loading Loading @@ -1439,6 +1441,10 @@ func (b *baseModuleContext) GetDirectDepWithTag(name string, tag blueprint.Depen return b.bp.GetDirectDepWithTag(name, tag) } func (b *baseModuleContext) blueprintBaseModuleContext() blueprint.BaseModuleContext { return b.bp } type moduleContext struct { bp blueprint.ModuleContext baseModuleContext Loading Loading @@ -2361,3 +2367,8 @@ type IdeInfo struct { Installed_paths []string `json:"installed,omitempty"` SrcJars []string `json:"srcjars,omitempty"` } func CheckBlueprintSyntax(ctx BaseModuleContext, filename string, contents string) []error { bpctx := ctx.blueprintBaseModuleContext() return blueprint.CheckBlueprintSyntax(bpctx.ModuleFactories(), filename, contents) } sdk/update.go +33 −0 Original line number Diff line number Diff line Loading @@ -350,6 +350,9 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro bp = newGeneratedFile(ctx, "snapshot", "Android.bp") generateBpContents(&bp.generatedContents, bpFile) contents := bp.content.String() syntaxCheckSnapshotBpFile(ctx, contents) bp.build(pctx, ctx, nil) filesToZip := builder.filesToZip Loading Loading @@ -394,6 +397,36 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro return outputZipFile } // Check the syntax of the generated Android.bp file contents and if they are // invalid then log an error with the contents (tagged with line numbers) and the // errors that were found so that it is easy to see where the problem lies. func syntaxCheckSnapshotBpFile(ctx android.ModuleContext, contents string) { errs := android.CheckBlueprintSyntax(ctx, "Android.bp", contents) if len(errs) != 0 { message := &strings.Builder{} _, _ = fmt.Fprint(message, `errors in generated Android.bp snapshot: Generated Android.bp contents ======================================================================== `) for i, line := range strings.Split(contents, "\n") { _, _ = fmt.Fprintf(message, "%6d: %s\n", i+1, line) } _, _ = fmt.Fprint(message, ` ======================================================================== Errors found: `) for _, err := range errs { _, _ = fmt.Fprintf(message, "%s\n", err.Error()) } ctx.ModuleErrorf("%s", message.String()) } } func extractCommonProperties(ctx android.ModuleContext, extractor *commonValueExtractor, commonProperties interface{}, inputPropertiesSlice interface{}) { err := extractor.extractCommonProperties(commonProperties, inputPropertiesSlice) if err != nil { Loading Loading
android/module.go +11 −0 Original line number Diff line number Diff line Loading @@ -104,6 +104,8 @@ type EarlyModuleContext interface { type BaseModuleContext interface { EarlyModuleContext blueprintBaseModuleContext() blueprint.BaseModuleContext OtherModuleName(m blueprint.Module) string OtherModuleDir(m blueprint.Module) string OtherModuleErrorf(m blueprint.Module, fmt string, args ...interface{}) Loading Loading @@ -1439,6 +1441,10 @@ func (b *baseModuleContext) GetDirectDepWithTag(name string, tag blueprint.Depen return b.bp.GetDirectDepWithTag(name, tag) } func (b *baseModuleContext) blueprintBaseModuleContext() blueprint.BaseModuleContext { return b.bp } type moduleContext struct { bp blueprint.ModuleContext baseModuleContext Loading Loading @@ -2361,3 +2367,8 @@ type IdeInfo struct { Installed_paths []string `json:"installed,omitempty"` SrcJars []string `json:"srcjars,omitempty"` } func CheckBlueprintSyntax(ctx BaseModuleContext, filename string, contents string) []error { bpctx := ctx.blueprintBaseModuleContext() return blueprint.CheckBlueprintSyntax(bpctx.ModuleFactories(), filename, contents) }
sdk/update.go +33 −0 Original line number Diff line number Diff line Loading @@ -350,6 +350,9 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro bp = newGeneratedFile(ctx, "snapshot", "Android.bp") generateBpContents(&bp.generatedContents, bpFile) contents := bp.content.String() syntaxCheckSnapshotBpFile(ctx, contents) bp.build(pctx, ctx, nil) filesToZip := builder.filesToZip Loading Loading @@ -394,6 +397,36 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) andro return outputZipFile } // Check the syntax of the generated Android.bp file contents and if they are // invalid then log an error with the contents (tagged with line numbers) and the // errors that were found so that it is easy to see where the problem lies. func syntaxCheckSnapshotBpFile(ctx android.ModuleContext, contents string) { errs := android.CheckBlueprintSyntax(ctx, "Android.bp", contents) if len(errs) != 0 { message := &strings.Builder{} _, _ = fmt.Fprint(message, `errors in generated Android.bp snapshot: Generated Android.bp contents ======================================================================== `) for i, line := range strings.Split(contents, "\n") { _, _ = fmt.Fprintf(message, "%6d: %s\n", i+1, line) } _, _ = fmt.Fprint(message, ` ======================================================================== Errors found: `) for _, err := range errs { _, _ = fmt.Fprintf(message, "%s\n", err.Error()) } ctx.ModuleErrorf("%s", message.String()) } } func extractCommonProperties(ctx android.ModuleContext, extractor *commonValueExtractor, commonProperties interface{}, inputPropertiesSlice interface{}) { err := extractor.extractCommonProperties(commonProperties, inputPropertiesSlice) if err != nil { Loading