From c2af0bedc1701ee043f61d95d6b7b160f388a3cb Mon Sep 17 00:00:00 2001 From: Dan Willemsen Date: Fri, 20 Jan 2017 14:10:01 -0800 Subject: Add multiproduct_kati This is a replacement for build/tools/kati_all_products.sh using the new Soong ui/build package. It doesn't even attempt to run ninja, and it can be configured to run only the product config, or only the product config and Soong. For AOSP on my machine: -only-config 1.4s -only-soong 1m20s 13m Test: multiproduct_kati Change-Id: Ie3e6e7bdf692e46a8b8eb828f437190f8003500b --- ui/build/config.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'ui') diff --git a/ui/build/config.go b/ui/build/config.go index b0a7d7ad..35c5213d 100644 --- a/ui/build/config.go +++ b/ui/build/config.go @@ -15,6 +15,8 @@ package build import ( + "log" + "os" "path/filepath" "runtime" "strconv" @@ -40,6 +42,8 @@ type configImpl struct { katiSuffix string } +const srcDirFileCheck = "build/soong/root.bp" + func NewConfig(ctx Context, args ...string) Config { ret := &configImpl{ environ: OsEnvironment(), @@ -71,6 +75,14 @@ func NewConfig(ctx Context, args ...string) Config { ret.parallel = runtime.NumCPU() + 2 ret.keepGoing = 1 + // Precondition: the current directory is the top of the source tree + if _, err := os.Stat(srcDirFileCheck); err != nil { + if os.IsNotExist(err) { + log.Fatalf("Current working directory must be the source tree. %q not found", srcDirFileCheck) + } + log.Fatalln("Error verifying tree state:", err) + } + for _, arg := range args { arg = strings.TrimSpace(arg) if arg == "--make-mode" { -- cgit v1.2.3