aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2019-01-25 22:43:35 -0800
committerJaewoong Jung <jungjw@google.com>2019-02-13 20:39:26 +0000
commit7089c27c07afef014b49455e41dc586f6d418b3f (patch)
tree821ac6eff0bc2f7afb3249f878129acb9ac60b8e /cmd
parent1b16b0e031e747bbeed103df08f0441ccf342069 (diff)
downloadbuild_soong-7089c27c07afef014b49455e41dc586f6d418b3f.tar.gz
build_soong-7089c27c07afef014b49455e41dc586f6d418b3f.tar.bz2
build_soong-7089c27c07afef014b49455e41dc586f6d418b3f.zip
Update Soong docs generator for blueprint changes
bootstrap.ModuleTypeDocs needs a mapping of module types to factories to support factories that are wrapped in ModuleFactoryAdapter closures. It also returns ModuleType objects grouped into Package objects. Bug: 67909957 Test: m soong_docs Change-Id: I70eac9f0f0e13075580da92d4219792ca0b18fbf
Diffstat (limited to 'cmd')
-rw-r--r--cmd/soong_build/main.go6
-rw-r--r--cmd/soong_build/writedocs.go17
2 files changed, 21 insertions, 2 deletions
diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go
index a4c6898d..1f6002ee 100644
--- a/cmd/soong_build/main.go
+++ b/cmd/soong_build/main.go
@@ -75,6 +75,10 @@ func main() {
bootstrap.Main(ctx.Context, configuration, configuration.ConfigFileName, configuration.ProductVariablesFileName)
if docFile != "" {
- writeDocs(ctx, docFile)
+ err := writeDocs(ctx, docFile)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "%s", err)
+ os.Exit(1)
+ }
}
}
diff --git a/cmd/soong_build/writedocs.go b/cmd/soong_build/writedocs.go
index a6686c0d..8f86b332 100644
--- a/cmd/soong_build/writedocs.go
+++ b/cmd/soong_build/writedocs.go
@@ -19,18 +19,33 @@ import (
"bytes"
"html/template"
"io/ioutil"
+ "reflect"
+ "sort"
"github.com/google/blueprint/bootstrap"
+ "github.com/google/blueprint/bootstrap/bpdoc"
)
func writeDocs(ctx *android.Context, filename string) error {
- moduleTypeList, err := bootstrap.ModuleTypeDocs(ctx.Context)
+ moduleTypeFactories := android.ModuleTypeFactories()
+ bpModuleTypeFactories := make(map[string]reflect.Value)
+ for moduleType, factory := range moduleTypeFactories {
+ bpModuleTypeFactories[moduleType] = reflect.ValueOf(factory)
+ }
+
+ packages, err := bootstrap.ModuleTypeDocs(ctx.Context, bpModuleTypeFactories)
if err != nil {
return err
}
buf := &bytes.Buffer{}
+ var moduleTypeList []*bpdoc.ModuleType
+ for _, pkg := range packages {
+ moduleTypeList = append(moduleTypeList, pkg.ModuleTypes...)
+ }
+ sort.Slice(moduleTypeList, func(i, j int) bool { return moduleTypeList[i].Name < moduleTypeList[j].Name })
+
unique := 0
tmpl, err := template.New("file").Funcs(map[string]interface{}{