From eea7ecd835f2ea16a80709d740c913f6a0d8afa5 Mon Sep 17 00:00:00 2001 From: Maurice Lam Date: Tue, 24 Feb 2015 14:09:03 -0800 Subject: [PATCH] [SetupWizardLib] Configure gradle Change-Id: I699f821f3b7bd5c923f99e37f05bf0953c8f093e (cherry picked from commit f4fea9000bafa91421b7f006b2ef58ece0d1bf24) --- .gitignore | 4 +- library/build.gradle | 12 ++ library/lint.xml | 7 ++ tools/gradle/android.properties | 23 ++++ tools/gradle/gradlew | 206 ++++++++++++++++++++++++++++++++ tools/gradle/settings.gradle | 2 + 6 files changed, 252 insertions(+), 2 deletions(-) create mode 100644 library/build.gradle create mode 100644 library/lint.xml create mode 100644 tools/gradle/android.properties create mode 100755 tools/gradle/gradlew create mode 100644 tools/gradle/settings.gradle diff --git a/.gitignore b/.gitignore index 3a5f35d..895d88a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,9 +2,9 @@ *.bak *.class bin/ -*.properties +local.properties *.project *.cproject *.settings *.pyc - +.gradle diff --git a/library/build.gradle b/library/build.gradle new file mode 100644 index 0000000..24a2293 --- /dev/null +++ b/library/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.library' + +android { + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + resources.srcDirs = ['src'] + res.srcDirs = ['res'] + } + } +} diff --git a/library/lint.xml b/library/lint.xml new file mode 100644 index 0000000..ca22c65 --- /dev/null +++ b/library/lint.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/tools/gradle/android.properties b/tools/gradle/android.properties new file mode 100644 index 0000000..a6839ea --- /dev/null +++ b/tools/gradle/android.properties @@ -0,0 +1,23 @@ +// Set the default SDK and build tools version for all apps +compileSdkVersion 21 +buildToolsVersion = '21.1.0' + +// enable Java7 +compileOptions.sourceCompatibility JavaVersion.VERSION_1_7 +compileOptions.targetCompatibility JavaVersion.VERSION_1_7 + +// Redirect lint output so that failures appear in build server error logs +// https://code.google.com/p/android/issues/detail?id=73282 +plugin.project.tasks.whenTaskAdded { task -> + if (task.name =~ /^lintVital/) { + task.logging.captureStandardOutput(LogLevel.ERROR) + } +} + +// Don't build tests for android-library or android plugin +// unless explicitly enabled +buildTests = false + +// There are so many lint errors at the time being (even in the support libs) +// that we need to disable them here for now +lintOptions.abortOnError false diff --git a/tools/gradle/gradlew b/tools/gradle/gradlew new file mode 100755 index 0000000..4f16131 --- /dev/null +++ b/tools/gradle/gradlew @@ -0,0 +1,206 @@ +#!/usr/bin/env bash + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn ( ) { + echo "$*" +} + +die ( ) { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; +esac + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >&- +APP_HOME="`pwd -P`" +cd "$SAVED" >&- + +if [ $(basename `pwd`) == "gradle" ]; then + echo "This cannot be run here. It should be copied to the root of the platform." + exit +else + CLASSPATH=./gradle/wrapper/gradle-wrapper.jar +fi + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules +function splitJvmOpts() { + JVM_OPTS=("$@") +} +eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS +JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" + +# For reproducible builds, always use the SDKs stored in source control +if $darwin; then + ANDROID_HOME="$APP_HOME/prebuilts/fullsdk/darwin" +else + ANDROID_HOME="$APP_HOME/prebuilts/fullsdk/linux" +fi +export ANDROID_HOME + +# Also, blow away lint's API cache, since it can easily become out of date +# if we're building against pre-release SDKs +(cd "$HOME/.android/cache" && rm -f api-versions*) 2> /dev/null + +# Change the project's .gradle to the android out dir. +ANDROID_OUT_ROOT="$APP_HOME/out" +if [[ -n "$OUT_DIR" ]]; then + ANDROID_OUT_ROOT="$OUT_DIR" +fi + +ANDROID_CACHE_DIR="$ANDROID_OUT_ROOT/gradle/.gradle" + +# Change the local user directories to be under the android out dir +export GRADLE_USER_HOME="$ANDROID_OUT_ROOT/gradle/.gradle" +export M2_HOME="$ANDROID_OUT_ROOT/gradle/.m2" + +# NewRatio is the ratio of the total heap size to new generation size the JVM tries to maintain. +# Higher values mean smaller new generations. +# The default is 2. Setting this to 3. +# Higher values should "stabalize" heap usage somewhat and helps keep the total heap +# size from growing too quickly (the JVM is more willing to grow the new generation than the old). +# Also, the old generation is more "friendly" to being swapped out to disk than the new generation. +# This should help out on lower memory machines. +# Profiling has shown that the extra GCs done because of this are trivial in added time. +exec "$JAVACMD" "${JVM_OPTS[@]}" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + --project-cache-dir=$ANDROID_CACHE_DIR \ + --configure-on-demand \ + "$@" diff --git a/tools/gradle/settings.gradle b/tools/gradle/settings.gradle new file mode 100644 index 0000000..2af31d0 --- /dev/null +++ b/tools/gradle/settings.gradle @@ -0,0 +1,2 @@ +include(':setup-wizard-lib') +project(':setup-wizard-lib').projectDir = new File(rootDir, 'frameworks/opt/setupwizard/library')