Making gradlew resolve DIST_DIR to an absolute path

to make sure every project sees it as the same path even if it was initially a relative path.

Bug: 141553731

Test: (export DIST_DIR=out/dist/ui; cd frameworks/support/ui; ./gradlew bOS)
Test: rm out -rf && cd frameworks/support && ./gradlew projects && cd - && ls out/dist
Test: rm out -rf && frameworks/support/gradlew -p frameworks/support projects && ls out/dist
Test: rm out -rf && cd frameworks/support && DIST_DIR=../../out/dist2 ./gradlew projects && cd - && ls out/dist2
Test: rm out -rf && cd frameworks/support/ui && ./gradlew projects && cd - && ls out/dist/ui
Test: rm out -rf && cd frameworks/support/ui && DIST_DIR=../../../out/dist2/ui ./gradlew projects && cd - && ls out/dist2/ui

Change-Id: I9dc3f045c64eaab2df954eaad0e0e13b37475fa2
diff --git a/gradlew b/gradlew
index 69fed35c..769177b 100755
--- a/gradlew
+++ b/gradlew
@@ -12,13 +12,21 @@
     mkdir -p "$OUT_DIR"
     OUT_DIR="$(cd $OUT_DIR && pwd)"
     export GRADLE_USER_HOME="$OUT_DIR/.gradle"
-    export LINT_PRINT_STACKTRACE=true
 else
     SCRIPT_PATH="$(cd $(dirname $0) && pwd)"
     CHECKOUT_ROOT="$(cd $SCRIPT_PATH/../.. && pwd)"
     export OUT_DIR="$CHECKOUT_ROOT/out"
 fi
 
+if [ -n "$DIST_DIR" ]; then
+    mkdir -p "$DIST_DIR"
+    DIST_DIR="$(cd $DIST_DIR && pwd)"
+    export LINT_PRINT_STACKTRACE=true
+
+    # We don't set a default DIST_DIR in an else clause here because Studio doesn't use gradlew
+    # and doesn't set DIST_DIR and we want gradlew and Studio to match
+fi
+
 # ----------------------------------------------------------------------------
 
 # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.