Merge "Handle multiple blueprint files in one dir"
diff --git a/cc/arm64_device.go b/cc/arm64_device.go
index 9d58a80..055f948 100644
--- a/cc/arm64_device.go
+++ b/cc/arm64_device.go
@@ -71,8 +71,12 @@
 	}
 )
 
+const (
+	arm64GccVersion = "4.9"
+)
+
 func init() {
-	pctx.StaticVariable("arm64GccVersion", "4.9")
+	pctx.StaticVariable("arm64GccVersion", arm64GccVersion)
 
 	pctx.StaticVariable("arm64GccRoot",
 		"prebuilts/gcc/${HostPrebuiltTag}/aarch64/aarch64-linux-android-${arm64GccVersion}")
@@ -115,7 +119,7 @@
 }
 
 func (t *toolchainArm64) GccVersion() string {
-	return "${arm64GccVersion}"
+	return arm64GccVersion
 }
 
 func (t *toolchainArm64) Cflags() string {
diff --git a/cc/arm_device.go b/cc/arm_device.go
index 2d6d38c..ccfefba 100644
--- a/cc/arm_device.go
+++ b/cc/arm_device.go
@@ -121,6 +121,10 @@
 	armClangArchVariantCflags = copyVariantFlags(armArchVariantCflags)
 )
 
+const (
+	armGccVersion = "4.9"
+)
+
 func copyVariantFlags(m map[string][]string) map[string][]string {
 	ret := make(map[string][]string, len(m))
 	for k, v := range m {
@@ -148,7 +152,7 @@
 		"-mfpu=neon-vfpv4",
 	}
 
-	pctx.StaticVariable("armGccVersion", "4.9")
+	pctx.StaticVariable("armGccVersion", armGccVersion)
 
 	pctx.StaticVariable("armGccRoot",
 		"prebuilts/gcc/${HostPrebuiltTag}/arm/arm-linux-androideabi-${armGccVersion}")
@@ -268,7 +272,7 @@
 }
 
 func (t *toolchainArm) GccVersion() string {
-	return "${armGccVersion}"
+	return armGccVersion
 }
 
 func (t *toolchainArm) ToolchainCflags() string {
diff --git a/cc/mips64_device.go b/cc/mips64_device.go
index e0b6a89..5aa5bc3 100644
--- a/cc/mips64_device.go
+++ b/cc/mips64_device.go
@@ -80,14 +80,18 @@
 	}
 )
 
+const (
+	mips64GccVersion = "4.9"
+)
+
 func init() {
 	common.RegisterArchFeatures(common.Mips64, "mips64r6",
 		"rev6")
 
-	pctx.StaticVariable("mips64GccVersion", "4.9")
+	pctx.StaticVariable("mips64GccVersion", mips64GccVersion)
 
 	pctx.StaticVariable("mips64GccRoot",
-		"prebuilts/gcc/${HostPrebuiltTag}/mips/mips64el-linux-android-${armGccVersion}")
+		"prebuilts/gcc/${HostPrebuiltTag}/mips/mips64el-linux-android-${mips64GccVersion}")
 
 	pctx.StaticVariable("mips64GccTriple", "mips64el-linux-android")
 
@@ -138,7 +142,7 @@
 }
 
 func (t *toolchainMips64) GccVersion() string {
-	return "${mips64GccVersion}"
+	return mips64GccVersion
 }
 
 func (t *toolchainMips64) ToolchainLdflags() string {
diff --git a/cc/mips_device.go b/cc/mips_device.go
index c3372fe..8b47f8a 100644
--- a/cc/mips_device.go
+++ b/cc/mips_device.go
@@ -111,14 +111,18 @@
 	}
 )
 
+const (
+	mipsGccVersion = "4.9"
+)
+
 func init() {
 	common.RegisterArchFeatures(common.Mips, "mips32r6",
 		"rev6")
 
-	pctx.StaticVariable("mipsGccVersion", "4.9")
+	pctx.StaticVariable("mipsGccVersion", mipsGccVersion)
 
 	pctx.StaticVariable("mipsGccRoot",
-		"prebuilts/gcc/${HostPrebuiltTag}/mips/mips64el-linux-android-${armGccVersion}")
+		"prebuilts/gcc/${HostPrebuiltTag}/mips/mips64el-linux-android-${mipsGccVersion}")
 
 	pctx.StaticVariable("mipsGccTriple", "mips64el-linux-android")
 
@@ -170,7 +174,7 @@
 }
 
 func (t *toolchainMips) GccVersion() string {
-	return "${mipsGccVersion}"
+	return mipsGccVersion
 }
 
 func (t *toolchainMips) ToolchainLdflags() string {
diff --git a/cc/toolchain.go b/cc/toolchain.go
index 5e4d02f..ac51114 100644
--- a/cc/toolchain.go
+++ b/cc/toolchain.go
@@ -46,7 +46,9 @@
 
 	GccRoot() string
 	GccTriple() string
+	// GccVersion should return a real value, not a ninja reference
 	GccVersion() string
+
 	ToolchainCflags() string
 	ToolchainLdflags() string
 	Cflags() string
diff --git a/cc/x86_64_device.go b/cc/x86_64_device.go
index 728442c..ba190a0 100644
--- a/cc/x86_64_device.go
+++ b/cc/x86_64_device.go
@@ -92,6 +92,10 @@
 	}
 )
 
+const (
+	x86_64GccVersion = "4.9"
+)
+
 func init() {
 	common.RegisterArchFeatures(common.X86_64, "",
 		"ssse3",
@@ -131,10 +135,10 @@
 		"aes_ni",
 		"popcnt")
 
-	pctx.StaticVariable("x86_64GccVersion", "4.9")
+	pctx.StaticVariable("x86_64GccVersion", x86_64GccVersion)
 
 	pctx.StaticVariable("x86_64GccRoot",
-		"prebuilts/gcc/${HostPrebuiltTag}/x86/x86_64-linux-android-${armGccVersion}")
+		"prebuilts/gcc/${HostPrebuiltTag}/x86/x86_64-linux-android-${x86_64GccVersion}")
 
 	pctx.StaticVariable("x86_64GccTriple", "x86_64-linux-android")
 
@@ -186,7 +190,7 @@
 }
 
 func (t *toolchainX86_64) GccVersion() string {
-	return "${x86_64GccVersion}"
+	return x86_64GccVersion
 }
 
 func (t *toolchainX86_64) ToolchainLdflags() string {
diff --git a/cc/x86_darwin_host.go b/cc/x86_darwin_host.go
index 9ca03ba..108bb85 100644
--- a/cc/x86_darwin_host.go
+++ b/cc/x86_darwin_host.go
@@ -74,11 +74,15 @@
 	darwinClangCppflags = clangFilterUnknownCflags(darwinCppflags)
 )
 
+const (
+	darwinGccVersion = "4.2.1"
+)
+
 func init() {
 	pctx.StaticVariable("macSdkPath", "/Applications/Xcode.app/Contents/Developer")
 	pctx.StaticVariable("macSdkRoot", "${macSdkPath}/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk")
 
-	pctx.StaticVariable("darwinGccVersion", "4.2.1")
+	pctx.StaticVariable("darwinGccVersion", darwinGccVersion)
 	pctx.StaticVariable("darwinGccRoot",
 		"${SrcDir}/prebuilts/gcc/${HostPrebuiltTag}/host/i686-apple-darwin-${darwinGccVersion}")
 
@@ -137,7 +141,7 @@
 }
 
 func (t *toolchainDarwin) GccVersion() string {
-	return "${darwinGccVersion}"
+	return darwinGccVersion
 }
 
 func (t *toolchainDarwin) Cflags() string {
diff --git a/cc/x86_device.go b/cc/x86_device.go
index 8543240..6dfbd6a 100644
--- a/cc/x86_device.go
+++ b/cc/x86_device.go
@@ -95,6 +95,10 @@
 	}
 )
 
+const (
+	x86GccVersion = "4.9"
+)
+
 func init() {
 	common.RegisterArchFeatures(common.X86, "atom",
 		"ssse3",
@@ -133,10 +137,10 @@
 		"popcnt",
 		"movbe")
 
-	pctx.StaticVariable("x86GccVersion", "4.9")
+	pctx.StaticVariable("x86GccVersion", x86GccVersion)
 
 	pctx.StaticVariable("x86GccRoot",
-		"prebuilts/gcc/${HostPrebuiltTag}/x86/x86_64-linux-android-${armGccVersion}")
+		"prebuilts/gcc/${HostPrebuiltTag}/x86/x86_64-linux-android-${x86GccVersion}")
 
 	pctx.StaticVariable("x86GccTriple", "x86_64-linux-android")
 
@@ -188,7 +192,7 @@
 }
 
 func (t *toolchainX86) GccVersion() string {
-	return "${x86GccVersion}"
+	return x86GccVersion
 }
 
 func (t *toolchainX86) ToolchainLdflags() string {
diff --git a/cc/x86_linux_host.go b/cc/x86_linux_host.go
index 09a0803..98bceef 100644
--- a/cc/x86_linux_host.go
+++ b/cc/x86_linux_host.go
@@ -101,8 +101,12 @@
 	}
 )
 
+const (
+	linuxGccVersion = "4.8"
+)
+
 func init() {
-	pctx.StaticVariable("linuxGccVersion", "4.8")
+	pctx.StaticVariable("linuxGccVersion", linuxGccVersion)
 
 	pctx.StaticVariable("linuxGccRoot",
 		"${SrcDir}/prebuilts/gcc/${HostPrebuiltTag}/host/x86_64-linux-glibc2.15-${linuxGccVersion}")
@@ -163,7 +167,7 @@
 }
 
 func (t *toolchainLinux) GccVersion() string {
-	return "${linuxGccVersion}"
+	return linuxGccVersion
 }
 
 func (t *toolchainLinuxX86) Cflags() string {
diff --git a/cc/x86_windows_host.go b/cc/x86_windows_host.go
index 70ce74d..5f06bec 100644
--- a/cc/x86_windows_host.go
+++ b/cc/x86_windows_host.go
@@ -61,8 +61,12 @@
 	}
 )
 
+const (
+	windowsGccVersion = "4.8"
+)
+
 func init() {
-	pctx.StaticVariable("windowsGccVersion", "4.8")
+	pctx.StaticVariable("windowsGccVersion", windowsGccVersion)
 
 	pctx.StaticVariable("windowsGccRoot",
 		"${SrcDir}/prebuilts/gcc/${HostPrebuiltTag}/host/x86_64-w64-mingw32-${windowsGccVersion}")
@@ -92,7 +96,7 @@
 }
 
 func (t *toolchainWindows) GccVersion() string {
-	return "${windowsGccVersion}"
+	return windowsGccVersion
 }
 
 func (t *toolchainWindows) Cflags() string {
diff --git a/java/app_builder.go b/java/app_builder.go
index 4b3d315..849abfd 100644
--- a/java/app_builder.go
+++ b/java/app_builder.go
@@ -56,14 +56,6 @@
 		},
 		"aaptFlags")
 
-	zipalign = pctx.StaticRule("zipalign",
-		blueprint.RuleParams{
-			Command:     `$zipalignCmd -f $zipalignFlags 4 $in $out`,
-			CommandDeps: []string{"$zipalignCmd"},
-			Description: "zipalign $out",
-		},
-		"zipalignFlags")
-
 	signapk = pctx.StaticRule("signapk",
 		blueprint.RuleParams{
 			Command:     `java -jar $signapkCmd $certificates $in $out`,
@@ -87,9 +79,6 @@
 	pctx.VariableFunc("aaptCmd", func(c interface{}) (string, error) {
 		return c.(common.Config).HostBinTool("aapt")
 	})
-	pctx.VariableFunc("zipalignCmd", func(c interface{}) (string, error) {
-		return c.(common.Config).HostBinTool("zipalign")
-	})
 	pctx.VariableFunc("signapkCmd", func(c interface{}) (string, error) {
 		return c.(common.Config).HostJavaTool("signapk.jar")
 	})
@@ -147,7 +136,7 @@
 		},
 	})
 
-	signedApk := filepath.Join(common.ModuleOutDir(ctx), "signed.apk")
+	outputFile := filepath.Join(common.ModuleOutDir(ctx), "package.apk")
 
 	var certificateArgs []string
 	for _, c := range certificates {
@@ -156,23 +145,12 @@
 
 	ctx.Build(pctx, blueprint.BuildParams{
 		Rule:    signapk,
-		Outputs: []string{signedApk},
+		Outputs: []string{outputFile},
 		Inputs:  []string{resourceApk},
 		Args: map[string]string{
 			"certificates": strings.Join(certificateArgs, " "),
 		},
 	})
 
-	outputFile := filepath.Join(common.ModuleOutDir(ctx), "package.apk")
-
-	ctx.Build(pctx, blueprint.BuildParams{
-		Rule:    zipalign,
-		Outputs: []string{outputFile},
-		Inputs:  []string{signedApk},
-		Args: map[string]string{
-			"zipalignFlags": "",
-		},
-	})
-
 	return outputFile
 }