From a7b20629e794d27a28515804db491fb59fa91ddb Mon Sep 17 00:00:00 2001 From: Kirill Vainer Date: Sat, 30 Apr 2016 17:26:55 -0400 Subject: [PATCH] build: update to gradle 2.13 --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 51018 -> 53556 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 52 ++--- gradlew.bat | 8 +- jme3-bullet-native/build.gradle | 272 +++++++++++------------ 6 files changed, 165 insertions(+), 173 deletions(-) diff --git a/build.gradle b/build.gradle index a4a4259a6..3dc3a58a2 100644 --- a/build.gradle +++ b/build.gradle @@ -118,7 +118,7 @@ task mergedSource(type: Copy){ } task wrapper(type: Wrapper, description: 'Creates and deploys the Gradle wrapper to the current directory.') { - gradleVersion = '2.2.1' + gradleVersion = '2.13' } ext { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index c97a8bdb9088d370da7e88784a7a093b971aa23a..ca78035ef0501d802d4fc55381ef2d5c3ce0ec6e 100644 GIT binary patch delta 26890 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∾Hwph`q6XJ90V4;K5or?w32XunoP`!2TU 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 delta 24370 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

-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 KHh)P{I6jE diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a0f68906b..4a13cd639 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Dec 01 20:04:11 EST 2014 +#Sat Apr 30 16:44:31 EDT 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip diff --git a/gradlew b/gradlew index 91a7e269e..27309d923 100755 --- a/gradlew +++ b/gradlew @@ -6,12 +6,30 @@ ## ############################################################################## -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +# 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\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" @@ -30,6 +48,7 @@ die ( ) { cygwin=false msys=false darwin=false +nonstop=false case "`uname`" in CYGWIN* ) cygwin=true @@ -40,31 +59,11 @@ case "`uname`" in MINGW* ) msys=true ;; + NONSTOP* ) + nonstop=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" >&- - CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -90,7 +89,7 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then MAX_FD_LIMIT=`ulimit -H -n` if [ $? -eq 0 ] ; then if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then @@ -114,6 +113,7 @@ fi if $cygwin ; then APP_HOME=`cygpath --path --mixed "$APP_HOME"` CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` # We build the pattern for arguments to be converted via cygpath ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` diff --git a/gradlew.bat b/gradlew.bat index aec99730b..f6d5974e7 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -8,14 +8,14 @@ @rem Set local scope for the variables with windows NT shell if "%OS%"=="Windows_NT" setlocal -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - set DIRNAME=%~dp0 if "%DIRNAME%" == "" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + @rem Find java.exe if defined JAVA_HOME goto findJavaFromJavaHome @@ -46,7 +46,7 @@ echo location of your Java installation. goto fail :init -@rem Get command-line arguments, handling Windowz variants +@rem Get command-line arguments, handling Windows variants if not "%OS%" == "Windows_NT" goto win9xME_args if "%@eval[2+2]" == "4" goto 4NT_args diff --git a/jme3-bullet-native/build.gradle b/jme3-bullet-native/build.gradle index c0afd5f4c..3a1740bb2 100644 --- a/jme3-bullet-native/build.gradle +++ b/jme3-bullet-native/build.gradle @@ -1,46 +1,97 @@ apply plugin: 'cpp' -String bulletSrcPath = bulletFolder + '/src' +import java.nio.file.Paths -if (!hasProperty('mainClass')) { - ext.mainClass = '' -} +String bulletSrcPath = bulletFolder + '/src' dependencies { compile project(':jme3-bullet') } -// Defines created C++ libraries -libraries { - bulletjme { +model { + components { + bulletjme(NativeLibrarySpec) { + targetPlatform 'Windows64' + targetPlatform 'Windows32' + targetPlatform 'Mac64' + targetPlatform 'Mac32' + targetPlatform 'Linux64' + targetPlatform 'Linux32' + + sources { + cpp { + source { + srcDir 'src/native/cpp' + srcDir bulletSrcPath + exclude 'BulletMultiThreaded/GpuSoftBodySolvers/**' + include '**/*.cpp' + } + exportedHeaders { + srcDir 'src/native/cpp' + srcDir bulletSrcPath + include '**/*.h' + } + } + } + } } - all { - binaries.all { + + binaries { + withType(SharedLibraryBinarySpec) { + def projectPath = project.projectDir.absolutePath + def javaHome = org.gradle.internal.jvm.Jvm.current().javaHome + def os = targetPlatform.operatingSystem.name + def arch = targetPlatform.architecture.name + def fileName = sharedLibraryFile.name + + // Gradle decided to change underscores to dashes - fix that. + arch = arch.replaceAll('-', '_') + + // For all binaries that can't be built on the current system + if (buildNativeProjects != "true") { + buildable = false + } + + if (!buildable) { + if (sharedLibraryFile.exists()) { + // Add binary to jar file if the binary exists in the build folder already, + // e.g. when the build of jme3-bullet-native has been run on a virtual box + // and the project hasn't been cleaned yet. + jar.into("native/${os}/${arch}") { + from sharedLibraryFile + } + } else { + // Get from libs folder if no fresh build is available in the build folder and add to jar file + def precompiledFile = Paths.get(projectPath, 'libs', 'native', os, arch, fileName).toFile() + if (precompiledFile.exists()) { + jar.into("native/${os}/${arch}") { + from precompiledFile + } + } + } + return + } + if (toolChain in VisualCpp) { - cppCompiler.args "/I${org.gradle.internal.jvm.Jvm.current().javaHome}\\include" + cppCompiler.args "/I$javaHome\\include" } else{ - cppCompiler.args '-I', "${org.gradle.internal.jvm.Jvm.current().javaHome}/include" + cppCompiler.args '-I', "$javaHome/include" } - if (targetPlatform.operatingSystem.name == "osx") { - cppCompiler.args '-I', "${org.gradle.internal.jvm.Jvm.current().javaHome}/include/darwin" - } else if (targetPlatform.operatingSystem.name == "linux") { + if (os == "osx") { + cppCompiler.args '-I', "$javaHome/include/darwin" + } else if (os == "linux") { cppCompiler.args "-fvisibility=hidden" - cppCompiler.args '-I', "${org.gradle.internal.jvm.Jvm.current().javaHome}/include/linux" + cppCompiler.args '-I', "$javaHome/include/linux" cppCompiler.args "-fPIC" cppCompiler.args "-fpermissive" linker.args "-fvisibility=hidden" - -// cppCompiler.args "-static-libgcc" -// cppCompiler.args "-static-libstdc++" -// linker.args "-static-libgcc" -// linker.args "-static-libstdc++" - } else if (targetPlatform.operatingSystem.name == "windows") { + } else if (os == "windows") { if (toolChain in Gcc) { if (toolChain.name.startsWith('mingw')) { - cppCompiler.args '-I', "${projectDir}/src/native/cpp/fake_win32" + cppCompiler.args '-I', "$projectDir/src/native/cpp/fake_win32" } else { - cppCompiler.args '-I', "${org.gradle.internal.jvm.Jvm.current().javaHome}/include/win32" + cppCompiler.args '-I', "$javaHome/include/win32" } cppCompiler.args "-fpermissive" cppCompiler.args "-static" @@ -48,45 +99,59 @@ libraries { linker.args "-Wl,--exclude-all-symbols" } else if (toolChain in VisualCpp) { - cppCompiler.args "/I${org.gradle.internal.jvm.Jvm.current().javaHome}\\include\\win32" + cppCompiler.args "/I$javaHome\\include\\win32" } cppCompiler.define('WIN32') -// linker.args 'Shlwapi.lib', 'Advapi32.lib' } - } - } -} + + tasks.all { dependsOn unzipBulletIfNeeded } -// C++ sources for binary compilation -sources { - bulletjme { - cpp { - source { - srcDir 'src/native/cpp' - srcDir bulletSrcPath - exclude 'BulletMultiThreaded/GpuSoftBodySolvers/**' - include '**/*.cpp' + // Add output to jar file + jar.into("native/${os}/${arch}") { + from sharedLibraryFile } - exportedHeaders { - srcDir 'src/native/cpp' - srcDir bulletSrcPath - include '**/*.h' + + // Add depend on build + jar.dependsOn tasks + // Add output to libs folder + task "copyBinaryToLibs${targetPlatform.name}"(type: Copy, dependsOn: tasks) { + from sharedLibraryFile + into "libs/native/${os}/${arch}" } + // Add depend on copy + jar.dependsOn("copyBinaryToLibs${targetPlatform.name}") + } + withType(StaticLibraryBinarySpec) { + buildable = false } } -} -// Java source sets for IDE acces and source jar bundling / mavenization -sourceSets { - main { - java { - srcDir 'src/native/cpp' + platforms { + Windows32 { + architecture "x86" + operatingSystem "windows" + } + Windows64 { + architecture "x86_64" + operatingSystem "windows" + } + Mac32 { + architecture "x86" + operatingSystem "osx" + } + Mac64 { + architecture "x86_64" + operatingSystem "osx" + } + Linux32 { + architecture "x86" + operatingSystem "linux" + } + Linux64 { + architecture "x86_64" + operatingSystem "linux" } } -} - -// Set of target platforms, will be available based on build system -model { toolChains { gcc(Gcc) @@ -112,112 +177,40 @@ model { target("windows_x86_64") } } +} - platforms{ -// osx_universal { // TODO: universal binary doesn't work? -// architecture 'x86_64' -// architecture 'x86' -// operatingSystem 'osx' -// } - osx_x86 { - architecture "x86" - operatingSystem "osx" - } - osx_x86_64 { - architecture "x86_64" - operatingSystem "osx" - } - linux_x86 { - architecture "x86" - operatingSystem "linux" - } - linux_x86_64 { - architecture "x86_64" - operatingSystem "linux" - } - windows_x86 { - architecture "x86" - operatingSystem "windows" - } - windows_x86_64 { - architecture "x86_64" - operatingSystem "windows" +// Java source sets for IDE access and source jar bundling / mavenization +sourceSets { + main { + java { + srcDir 'src/native/cpp' } } } -// Download bullet if not available task downloadBullet(type: MyDownload) { sourceUrl = bulletUrl target = file(bulletZipFile) } -// Unzip bullet if not available task unzipBullet(type: Copy) { - def zipFile = file(bulletZipFile) - def outputDir = file(".") - - from zipTree(zipFile) - into outputDir + from zipTree(bulletZipFile) + into file('.') } + unzipBullet.dependsOn { - def zipFilePath = project.projectDir.absolutePath + File.separator + bulletZipFile - def zipFile = new File(zipFilePath) - if (!zipFile.exists()) { + if (!file(bulletZipFile).exists()) { downloadBullet } } -compileJava.dependsOn { - if(buildNativeProjects=="true"){ - def bulletUnzipDir = new File(project.projectDir.absolutePath + File.separator + bulletFolder) - if (!bulletUnzipDir.isDirectory()) { - unzipBullet - } - } -} - -binaries.withType(StaticLibraryBinarySpec) { - buildable = false +task unzipBulletIfNeeded << { } -// Adds all available binaries to java jar task -binaries.withType(SharedLibraryBinary) { binary -> - // For all binaries that can't be built on the current system - if(buildNativeProjects!="true"){ - buildable = false; - } - if (!buildable) { - //Get from libs folder if no fresh build is available in the build folder and add to jar file - if(!binary.tasks.outputFile.get(0).exists()){ - def fileName = binary.tasks.outputFile.get(0).getName(); - def precompiledFile = new File(project.projectDir.absolutePath + File.separator + "libs" + File.separator + "native" + File.separator + "${targetPlatform.operatingSystem.name}" + File.separator + "${targetPlatform.architecture.name}" + File.separator + "${fileName}") - if(precompiledFile.exists()){ - jar.into("native/${targetPlatform.operatingSystem.name}/${targetPlatform.architecture.name}") { from precompiledFile } - } - return - } else{ - // Add binary to jar file if the binary exists in the build folder already, - // e.g. when the build of jme3-bullet-native has been run on a virtual box - // and the project hasn't been cleaned yet. - jar.into("native/${targetPlatform.operatingSystem.name}/${targetPlatform.architecture.name}") { from binary.tasks.outputFile } - return - } - } - - // For all binaries that can be built on the current system - def builderTask = binary.tasks - // Add output to jar file - jar.into("native/${targetPlatform.operatingSystem.name}/${targetPlatform.architecture.name}") { from builderTask.outputFile } - // Add depend on build - jar.dependsOn builderTask - // Add output to libs folder - task "copyBinaryToLibs${targetPlatform}"(type: Copy, dependsOn: builderTask) { - from builderTask.outputFile - into "libs/native/${targetPlatform.operatingSystem.name}/${targetPlatform.architecture.name}" +unzipBulletIfNeeded.dependsOn { + if (buildNativeProjects == "true" && !file(bulletFolder).isDirectory()) { + unzipBullet } - // Add depend on copy - jar.dependsOn("copyBinaryToLibs${targetPlatform}") } // Helper class to wrap ant dowload task @@ -230,7 +223,6 @@ class MyDownload extends DefaultTask { @TaskAction void download() { - ant.get(src: sourceUrl, dest: target) + ant.get(src: sourceUrl, dest: target) } -} - +} \ No newline at end of file