From 47a9d0cd9878414dd127b6abf63beb3cd00b5f41 Mon Sep 17 00:00:00 2001 From: "Lukacs T. Berki" Date: Mon, 8 Mar 2021 16:34:09 +0100 Subject: [PATCH] Really fix queryview. In addition, make the Ninja command nicer by using backticks instead of backslash-quoting double quotes. Test: Manual: "m queryview" Change-Id: I5d6e1d41424e0229bfe08e2e7eaf2fb025ed48c2 --- android/queryview.go | 20 ++++++++++++-------- cmd/soong_build/main.go | 5 +++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/android/queryview.go b/android/queryview.go index b940202e0..12d14dfb6 100644 --- a/android/queryview.go +++ b/android/queryview.go @@ -66,16 +66,20 @@ func generateBuildActionsForBazelConversion(ctx SingletonContext, converterMode bazelQueryView := ctx.Rule(pctx, "bazelQueryView", blueprint.RuleParams{ Command: fmt.Sprintf( - "rm -rf ${outDir}/* && "+ - "BUILDER=\"%s\" && "+ - "cd $$(dirname \"$$BUILDER\") && "+ - "ABSBUILDER=\"$$PWD/$$(basename \"$$BUILDER\")\" && "+ - "cd / && "+ - "env -i \"$$ABSBUILDER\" --bazel_queryview_dir ${outDir} \"%s\" && "+ - "echo WORKSPACE: `cat %s` > ${outDir}/.queryview-depfile.d", + `rm -rf "${outDir}/"* && `+ + `mkdir -p "${outDir}" && `+ + `echo WORKSPACE: cat "%s" > "${outDir}/.queryview-depfile.d" && `+ + `BUILDER="%s" && `+ + `echo BUILDER=$$BUILDER && `+ + `cd "$$(dirname "$$BUILDER")" && `+ + `echo PWD=$$PWD && `+ + `ABSBUILDER="$$PWD/$$(basename "$$BUILDER")" && `+ + `echo ABSBUILDER=$$ABSBUILDER && `+ + `cd / && `+ + `env -i "$$ABSBUILDER" --bazel_queryview_dir "${outDir}" "%s"`, + moduleListFilePath.String(), // Use the contents of Android.bp.list as the depfile. primaryBuilder.String(), strings.Join(os.Args[1:], "\" \""), - moduleListFilePath.String(), // Use the contents of Android.bp.list as the depfile. ), CommandDeps: []string{primaryBuilder.String()}, Description: fmt.Sprintf( diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go index d022f4993..4586f44a6 100644 --- a/cmd/soong_build/main.go +++ b/cmd/soong_build/main.go @@ -43,7 +43,7 @@ func init() { flag.StringVar(&delveListen, "delve_listen", "", "Delve port to listen on for debugging") flag.StringVar(&delvePath, "delve_path", "", "Path to Delve. Only used if --delve_listen is set") flag.StringVar(&docFile, "soong_docs", "", "build documentation file to output") - flag.StringVar(&bazelQueryViewDir, "bazel_queryview_dir", "", "path to the bazel queryview directory") + flag.StringVar(&bazelQueryViewDir, "bazel_queryview_dir", "", "path to the bazel queryview directory relative to --top") } func newNameResolver(config android.Config) *android.NameResolver { @@ -150,7 +150,8 @@ func main() { if bazelQueryViewDir != "" { // Run the code-generation phase to convert BazelTargetModules to BUILD files. codegenContext := bp2build.NewCodegenContext(configuration, *ctx, bp2build.QueryView) - if err := createBazelQueryView(codegenContext, bazelQueryViewDir); err != nil { + absoluteQueryViewDir := shared.JoinPath(topDir, bazelQueryViewDir) + if err := createBazelQueryView(codegenContext, absoluteQueryViewDir); err != nil { fmt.Fprintf(os.Stderr, "%s", err) os.Exit(1) }