Change gradle to output to the android out dir

Change-Id: I569afd35f76891390aad27b0ab75e2106cc0fe18
diff --git a/build.gradle b/build.gradle
index 209d103..b209334 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,9 +1,20 @@
+// ext.androidHostOut is shared by all tools/{base,build,swt} gradle projects/
+ext.androidHostOut = java.lang.System.getenv("ANDROID_HOST_OUT")
+if (ext.androidHostOut == null) {
+  ext.androidHostOut = "$rootdir/../../out/host/common"
+}
+// rootProject.buildDir is specific to this gradle build.
+buildDir = new File(file(ext.androidHostOut), "tools/build/build")
+
 subprojects {
+    // Change buildDir first so that all plugins pick up the new value.
+    project.buildDir = project.file("$project.parent.buildDir/../$project.name")
+
     apply plugin: 'idea'
 
     repositories {
         mavenCentral()
-        maven { url = uri("$rootDir/../base/repo") }
+        maven { url = uri("$rootProject.ext.androidHostOut/repo") }
     }
 
     project.ext {
@@ -20,12 +31,14 @@
 
 task aggregateResults(type: Copy) {
     from { testTasks*.testResultsDir }
-    into { file("build/results") }
+    into { file("$buildDir/results") }
 }
 aggregateResults.dependsOn testTasks
 
 task makeAggregateReport(dependsOn: aggregateResults) {
-    def report = new org.gradle.api.internal.tasks.testing.junit.report.DefaultTestReport(testReportDir: file("build/reports/tests"), testResultsDir: file("build/results"))
+    def report = new org.gradle.api.internal.tasks.testing.junit.report.DefaultTestReport(
+                        testReportDir:  file("$buildDir/reports/tests"),
+                        testResultsDir: file("$buildDir/results"))
     report.generateReport()
 }
 
@@ -36,4 +49,5 @@
 
 task clean(type: Delete) {
    delete 'build'
-}
\ No newline at end of file
+}
+
diff --git a/gradlew b/gradlew
index 91a7e26..d79595c 100755
--- a/gradlew
+++ b/gradlew
@@ -161,4 +161,13 @@
 eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
 JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
 
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+# Change the project's .gradle to the android out dir.
+if [[ -z "$ANDROID_CACHE_DIR" ]]; then
+  ANDROID_CACHE_DIR="$APP_HOME/../../out/host/common/tools/build/.gradle"
+fi
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" \
+    -classpath "$CLASSPATH" \
+    org.gradle.wrapper.GradleWrapperMain \
+    --project-cache-dir=$ANDROID_CACHE_DIR \
+    "$@"
diff --git a/gradlew.bat b/gradlew.bat
index aec9973..e121839 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -72,7 +72,8 @@
 set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar

 

 @rem Execute Gradle

-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%

+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% %CMD_LINE_ARGS% --project-cache-dir=%APP_HOME%\..\..\out\host\common\tools\build\.gradle

+

 

 :end

 @rem End local scope for the variables with windows NT shell