summaryrefslogtreecommitdiff
path: root/android/writedocs.go
diff options
context:
space:
mode:
author Lukacs T. Berki <lberki@google.com> 2021-09-06 18:31:46 +0200
committer Lukacs T. Berki <lberki@google.com> 2021-09-08 09:31:52 +0200
commitc6012f36e133effe2c4f54b96b46425ea5c0cb9b (patch)
treeb6b4a121687cec021f6ae9db8bc80d7bd4001283 /android/writedocs.go
parent144bf84677f687ef085bcf3d5a0b71f983841d47 (diff)
Invoke soong_docs from the bootstrap Ninja file.
This makes soong_ui the only place where soong_build is invoked, thus greatly simplifying the conceptual model of the build. It comes with the slight limitation that now soong_docs (and queryview and the JSON module graph) are not Make targets anymore, but I suppose that's an acceptable loss. The only place where someone depended on soong_docs from a Makefile is removed in a separate change. Test: Presubmits. Change-Id: I3f9ac327725c15d84de725d05e3cdde1da3dcbe2
Diffstat (limited to 'android/writedocs.go')
-rw-r--r--android/writedocs.go89
1 files changed, 0 insertions, 89 deletions
diff --git a/android/writedocs.go b/android/writedocs.go
deleted file mode 100644
index c380a3d84..000000000
--- a/android/writedocs.go
+++ /dev/null
@@ -1,89 +0,0 @@
-// Copyright 2015 Google Inc. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package android
-
-import (
- "fmt"
- "os"
- "path/filepath"
- "strings"
-
- "github.com/google/blueprint"
-)
-
-func init() {
- RegisterSingletonType("writedocs", DocsSingleton)
-}
-
-func DocsSingleton() Singleton {
- return &docsSingleton{}
-}
-
-type docsSingleton struct{}
-
-func primaryBuilderPath(ctx SingletonContext) Path {
- soongOutDir := absolutePath(ctx.Config().SoongOutDir())
- binary := absolutePath(os.Args[0])
- primaryBuilder, err := filepath.Rel(soongOutDir, binary)
- if err != nil {
- ctx.Errorf("path to primary builder %q is not in build dir %q (%q)",
- os.Args[0], ctx.Config().SoongOutDir(), err)
- }
-
- return PathForOutput(ctx, primaryBuilder)
-}
-
-func (c *docsSingleton) GenerateBuildActions(ctx SingletonContext) {
- var deps Paths
- deps = append(deps, pathForBuildToolDep(ctx, ctx.Config().moduleListFile))
- deps = append(deps, pathForBuildToolDep(ctx, ctx.Config().ProductVariablesFileName))
-
- // The dexpreopt configuration may not exist, but if it does, it's a dependency
- // of soong_build.
- dexpreoptConfigPath := ctx.Config().DexpreoptGlobalConfigPath(ctx)
- if dexpreoptConfigPath.Valid() {
- deps = append(deps, dexpreoptConfigPath.Path())
- }
-
- // Generate build system docs for the primary builder. Generating docs reads the source
- // files used to build the primary builder, but that dependency will be picked up through
- // the dependency on the primary builder itself. There are no dependencies on the
- // Blueprints files, as any relevant changes to the Blueprints files would have caused
- // a rebuild of the primary builder.
- docsFile := PathForOutput(ctx, "docs", "soong_build.html")
- primaryBuilder := primaryBuilderPath(ctx)
- soongDocs := ctx.Rule(pctx, "soongDocs",
- blueprint.RuleParams{
- Command: fmt.Sprintf("rm -f ${outDir}/* && %s --soong_docs %s %s",
- primaryBuilder.String(),
- docsFile.String(),
- "\""+strings.Join(os.Args[1:], "\" \"")+"\""),
- CommandDeps: []string{primaryBuilder.String()},
- Description: fmt.Sprintf("%s docs $out", primaryBuilder.Base()),
- },
- "outDir")
-
- ctx.Build(pctx, BuildParams{
- Rule: soongDocs,
- Output: docsFile,
- Inputs: deps,
- Args: map[string]string{
- "outDir": PathForOutput(ctx, "docs").String(),
- },
- })
-
- // Add a phony target for building the documentation
- ctx.Phony("soong_docs", docsFile)
-}