From 248ef9771f53a62e221e69940d39c60427f49ac7 Mon Sep 17 00:00:00 2001 From: Steve Ebersole Date: Mon, 11 Oct 2010 07:47:31 -0500 Subject: [PATCH] HHH-5616 - Switch to Gradle for builds .. gradlew --- build.gradle | 13 ++- gradlew | 142 +++++++++++++++++++++++++++ gradlew.bat | 126 ++++++++++++++++++++++++ hibernate-core/hibernate-core.gradle | 2 +- wrapper/gradle-wrapper.jar | Bin 0 -> 12292 bytes 5 files changed, 281 insertions(+), 2 deletions(-) create mode 100755 gradlew create mode 100644 gradlew.bat create mode 100644 wrapper/gradle-wrapper.jar diff --git a/build.gradle b/build.gradle index a60d812908..c6ee34db3f 100644 --- a/build.gradle +++ b/build.gradle @@ -214,4 +214,15 @@ subprojects { subProject -> } -dependsOnChildren() \ No newline at end of file +dependsOnChildren() + +// This is a task that generates the gradlew scripts, allowing users to run gradle without having gradle installed +// on their system. +// This task should be run by "build master" and the resulting ouput committed to source control. Its outputs include: +// 1) /gradlew which is the *NIX shell script for executing builds +// 2) /gradlew.bat which is the windows bat script for for executing builds +// 3) /wrapper which is a directory named by the "jarPath" config which contains other needed files. +task wrapper(type: Wrapper) { + gradleVersion = '0.9-rc-1' + jarPath = 'wrapper' +} \ No newline at end of file diff --git a/gradlew b/gradlew new file mode 100755 index 0000000000..1f3f3401fc --- /dev/null +++ b/gradlew @@ -0,0 +1,142 @@ +#!/bin/bash + +############################################################################## +## ## +## Gradle wrapper script for UN*X ## +## ## +############################################################################## + +# Uncomment those lines to set JVM options. GRADLE_OPTS and JAVA_OPTS can be used together. +# GRADLE_OPTS="$GRADLE_OPTS -Xmx512" +# JAVA_OPTS="$JAVA_OPTS -Xmx512" + +GRADLE_APP_NAME=Gradle + +warn ( ) { + echo "${PROGNAME}: $*" +} + +die ( ) { + warn "$*" + 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 + +# Attempt to set JAVA_HOME if it's not already set. +if [ -z "$JAVA_HOME" ] ; then + if $darwin ; then + [ -z "$JAVA_HOME" -a -d "/Library/Java/Home" ] && export JAVA_HOME="/Library/Java/Home" + [ -z "$JAVA_HOME" -a -d "/System/Library/Frameworks/JavaVM.framework/Home" ] && export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Home" + else + javaExecutable="`which javac`" + [ -z "$javaExecutable" -o "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ] && die "JAVA_HOME not set and cannot find javac to deduce location, please set JAVA_HOME." + # readlink(1) is not available as standard on Solaris 10. + readLink=`which readlink` + [ `expr "$readLink" : '\([^ ]*\)'` = "no" ] && die "JAVA_HOME not set and readlink not available, please set JAVA_HOME." + javaExecutable="`readlink -f \"$javaExecutable\"`" + javaHome="`dirname \"$javaExecutable\"`" + javaHome=`expr "$javaHome" : '\(.*\)/bin'` + export JAVA_HOME="$javaHome" + fi +fi + +# For Cygwin, ensure paths are in UNIX format before anything is touched. +if $cygwin ; then + [ -n "$JAVACMD" ] && JAVACMD=`cygpath --unix "$JAVACMD"` + [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` +fi + +STARTER_MAIN_CLASS=org.gradle.wrapper.GradleWrapperMain +CLASSPATH=`dirname "$0"`/wrapper/gradle-wrapper.jar +WRAPPER_PROPERTIES=`dirname "$0"`/wrapper/gradle-wrapper.properties +# Determine the Java command to use to start the JVM. +if [ -z "$JAVACMD" ] ; then + 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 + else + JAVACMD="java" + fi +fi +if [ ! -x "$JAVACMD" ] ; then + die "JAVA_HOME is not defined correctly, can not execute: $JAVACMD" +fi +if [ -z "$JAVA_HOME" ] ; then + warn "JAVA_HOME environment variable is not set" +fi + +# For Darwin, add GRADLE_APP_NAME to the JAVA_OPTS as -Xdock:name +if $darwin; then + JAVA_OPTS="$JAVA_OPTS -Xdock:name=$GRADLE_APP_NAME" +# we may also want to set -Xdock:image +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + JAVA_HOME=`cygpath --path --mixed "$JAVA_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 + +"$JAVACMD" $JAVA_OPTS $GRADLE_OPTS \ + -classpath "$CLASSPATH" \ + -Dorg.gradle.wrapper.properties="$WRAPPER_PROPERTIES" \ + $STARTER_MAIN_CLASS \ + "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000000..644b918ee0 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,126 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem ## +@rem Gradle startup script for Windows ## +@rem ## +@rem ########################################################################## + +@rem +@rem $Revision: 10602 $ $Date: 2008-01-25 02:49:54 +0100 (ven., 25 janv. 2008) $ +@rem + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +@rem Uncomment those lines to set JVM options. GRADLE_OPTS and JAVA_OPTS can be used together. +@rem set GRADLE_OPTS=%GRADLE_OPTS% -Xmx512 +@rem set JAVA_OPTS=%JAVA_OPTS% -Xmx512 + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=.\ + +@rem Determine the command interpreter to execute the "CD" later +set COMMAND_COM="cmd.exe" +if exist "%SystemRoot%\system32\cmd.exe" set COMMAND_COM="%SystemRoot%\system32\cmd.exe" +if exist "%SystemRoot%\command.com" set COMMAND_COM="%SystemRoot%\command.com" + +@rem Use explicit find.exe to prevent cygwin and others find.exe from being used +set FIND_EXE="find.exe" +if exist "%SystemRoot%\system32\find.exe" set FIND_EXE="%SystemRoot%\system32\find.exe" +if exist "%SystemRoot%\command\find.exe" set FIND_EXE="%SystemRoot%\command\find.exe" + +:check_JAVA_HOME +@rem Make sure we have a valid JAVA_HOME +if not "%JAVA_HOME%" == "" goto have_JAVA_HOME + +echo. +echo ERROR: Environment variable JAVA_HOME has not been set. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. +echo. +goto end + +:have_JAVA_HOME +@rem Validate JAVA_HOME +%COMMAND_COM% /C DIR "%JAVA_HOME%" 2>&1 | %FIND_EXE% /I /C "%JAVA_HOME%" >nul +if not errorlevel 1 goto init + +echo. +echo ERROR: JAVA_HOME might be set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation if there are problems. +echo. + +:init +@rem get name of script to launch with full path +@rem Get command-line arguments, handling Windowz variants +SET _marker=%JAVA_HOME: =% +@rem IF NOT "%_marker%" == "%JAVA_HOME%" ECHO JAVA_HOME "%JAVA_HOME%" contains spaces. Please change to a location without spaces if this causes problems. + +if not "%OS%" == "Windows_NT" goto win9xME_args +if "%eval[2+2]" == "4" goto 4NT_args + +IF "%_marker%" == "%JAVA_HOME%" goto :win9xME_args + +set _FIXPATH= +call :fixpath "%JAVA_HOME%" +set JAVA_HOME=%_FIXPATH:~1% + +goto win9xME_args + +:fixpath +if not %1.==. ( +for /f "tokens=1* delims=;" %%a in (%1) do ( +call :shortfilename "%%a" & call :fixpath "%%b" +) +) +goto :EOF +:shortfilename +for %%i in (%1) do set _FIXPATH=%_FIXPATH%;%%~fsi +goto :EOF + + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* +goto execute + +:4NT_args +@rem Get arguments from the 4NT Shell from JP Software +set CMD_LINE_ARGS=%$ + +:execute +@rem Setup the command line + +set STARTER_MAIN_CLASS=org.gradle.wrapper.GradleWrapperMain +set CLASSPATH=%DIRNAME%\wrapper\gradle-wrapper.jar +set WRAPPER_PROPERTIES=%DIRNAME%\wrapper\gradle-wrapper.properties +set JAVA_EXE=%JAVA_HOME%\bin\java.exe + +set GRADLE_OPTS=%JAVA_OPTS% %GRADLE_OPTS% -Dorg.gradle.wrapper.properties="%WRAPPER_PROPERTIES%" + +"%JAVA_EXE%" %GRADLE_OPTS% -classpath "%CLASSPATH%" %STARTER_MAIN_CLASS% %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +if not "%OS%"=="Windows_NT" echo 1 > nul | choice /n /c:1 + +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit "%ERRORLEVEL%" +exit /b "%ERRORLEVEL%" + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega \ No newline at end of file diff --git a/hibernate-core/hibernate-core.gradle b/hibernate-core/hibernate-core.gradle index 31b605dd15..59f80aa93a 100644 --- a/hibernate-core/hibernate-core.gradle +++ b/hibernate-core/hibernate-core.gradle @@ -45,7 +45,7 @@ sourceSets { } ideaModule { - sourceDirs.add( file( buildDir + '/generated-src/antlr/main' ) ) + sourceDirs.add( file( '$buildDir/generated-src/antlr/main' ) ) } // http://jira.codehaus.org/browse/GRADLE-1158 diff --git a/wrapper/gradle-wrapper.jar b/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..14e0c25ffcaabd5a273a62177056d4263f39c16d GIT binary patch literal 12292 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 literal 0 HcmV?d00001