Move version checking from Make into soong_ui
When kati keeps state around, it has to regenerate the ninja file every
time the state is changed. So move the java version checking into
soong_ui, where we can parallelize it with other operations instead of
only checking it occasionally.
Bug: 35970961
Test: Put java7 in PATH, m -j
Test: Put java8-google in PATH, m -j
Test: Put a space in TOP, m -j
Test: OUT_DIR=<case-preserving fs> m -j
Test: OUT_DIR=<path with space> m -j
Test: DIST_DIR=<path with sapce> m -j
Change-Id: I3245c8dd6d856240d17d54cb05d593dc9df71a27
diff --git a/ui/build/config.go b/ui/build/config.go
index e677d93..0d29924 100644
--- a/ui/build/config.go
+++ b/ui/build/config.go
@@ -106,6 +106,32 @@
log.Fatalln("Error verifying tree state:", err)
}
+ if srcDir, err := filepath.Abs("."); err == nil {
+ if strings.ContainsRune(srcDir, ' ') {
+ log.Println("You are building in a directory whose absolute path contains a space character:")
+ log.Println()
+ log.Printf("%q\n", srcDir)
+ log.Println()
+ log.Fatalln("Directory names containing spaces are not supported")
+ }
+ }
+
+ if outDir := ret.OutDir(); strings.ContainsRune(outDir, ' ') {
+ log.Println("The absolute path of your output directory ($OUT_DIR) contains a space character:")
+ log.Println()
+ log.Printf("%q\n", outDir)
+ log.Println()
+ log.Fatalln("Directory names containing spaces are not supported")
+ }
+
+ if distDir := ret.DistDir(); strings.ContainsRune(distDir, ' ') {
+ log.Println("The absolute path of your dist directory ($DIST_DIR) contains a space character:")
+ log.Println()
+ log.Printf("%q\n", distDir)
+ log.Println()
+ log.Fatalln("Directory names containing spaces are not supported")
+ }
+
for _, arg := range args {
arg = strings.TrimSpace(arg)
if arg == "--make-mode" {