diff --git a/build.gradle b/build.gradle index 7cf36f1..dbd5136 100755 --- a/build.gradle +++ b/build.gradle @@ -1,70 +1,69 @@ -apply plugin: 'java' -apply plugin: 'groovy' -apply plugin: 'cpp-lib' -apply plugin: 'idea' -apply plugin: 'application' - -repositories { - mavenCentral() -} - -dependencies { - groovy 'org.codehaus.groovy:groovy:1.8.7' - testCompile 'org.spockframework:spock-core:0.6-groovy-1.8' -} - -mainClassName = 'net.rubygrapefruit.platform.Main' -def nativeHeadersDir = file("$buildDir/nativeHeaders") -sourceCompatibility = 1.5 -targetCompatibility = 1.5 - -println org.gradle.internal.jvm.Jvm.current().javaHome -println org.gradle.internal.jvm.Jvm.current().toolsJar - -libraries { - main { - spec { - includes([nativeHeadersDir]) - if (org.gradle.internal.os.OperatingSystem.current().macOsX) { - includes(['/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/']) - args("-lcurses") - } else if (org.gradle.internal.os.OperatingSystem.current().windows) { - includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include"]) - includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include/win32"]) - args("/DWIN32") - } else if (org.gradle.internal.os.OperatingSystem.current().linux) { - includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include"]) - includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include/linux"]) - args("-lcurses") - } else { - includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include"]) - includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include/solaris"]) - args("-DSOLARIS", "-lcurses") - } - } - } -} - -task nativeHeaders { - def outputFile = file("$nativeHeadersDir/native.h") - inputs.files sourceSets.main.output - outputs.file outputFile - doLast { - outputFile.parentFile.mkdirs() - exec { - executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') - args '-o', outputFile - args '-classpath', sourceSets.main.output.classesDir - args 'net.rubygrapefruit.platform.internal.jni.NativeLibraryFunctions' - args 'net.rubygrapefruit.platform.internal.jni.PosixFileFunctions' - args 'net.rubygrapefruit.platform.internal.jni.PosixProcessFunctions' - args 'net.rubygrapefruit.platform.internal.jni.PosixTerminalFunctions' - args 'net.rubygrapefruit.platform.internal.jni.TerminfoFunctions' - args 'net.rubygrapefruit.platform.internal.jni.WindowsConsoleFunctions' - } - } -} - -compileMain.dependsOn nativeHeaders -test.dependsOn compileMain - +apply plugin: 'java' +apply plugin: 'groovy' +apply plugin: 'cpp-lib' +apply plugin: 'idea' +apply plugin: 'application' + +repositories { + mavenCentral() +} + +dependencies { + groovy 'org.codehaus.groovy:groovy:1.8.7' + testCompile 'org.spockframework:spock-core:0.6-groovy-1.8' +} + +mainClassName = 'net.rubygrapefruit.platform.Main' +def nativeHeadersDir = file("$buildDir/nativeHeaders") +sourceCompatibility = 1.5 +targetCompatibility = 1.5 + +configurations.compile.extendsFrom = [] + +libraries { + main { + spec { + includes([nativeHeadersDir]) + if (org.gradle.internal.os.OperatingSystem.current().macOsX) { + includes(['/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/']) + args("-lcurses") + } else if (org.gradle.internal.os.OperatingSystem.current().windows) { + includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include"]) + includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include/win32"]) + args("/DWIN32") + } else if (org.gradle.internal.os.OperatingSystem.current().linux) { + includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include"]) + includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include/linux"]) + args("-lcurses") + } else { + includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include"]) + includes(["${org.gradle.internal.jvm.Jvm.current().javaHome}/include/solaris"]) + args("-DSOLARIS", "-lcurses") + } + } + } +} + +task nativeHeaders { + def outputFile = file("$nativeHeadersDir/native.h") + inputs.files sourceSets.main.output + outputs.file outputFile + doLast { + outputFile.parentFile.mkdirs() + exec { + executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') + args '-o', outputFile + args '-classpath', sourceSets.main.output.classesDir + args 'net.rubygrapefruit.platform.internal.jni.NativeLibraryFunctions' + args 'net.rubygrapefruit.platform.internal.jni.PosixFileFunctions' + args 'net.rubygrapefruit.platform.internal.jni.PosixProcessFunctions' + args 'net.rubygrapefruit.platform.internal.jni.PosixTerminalFunctions' + args 'net.rubygrapefruit.platform.internal.jni.TerminfoFunctions' + args 'net.rubygrapefruit.platform.internal.jni.WindowsConsoleFunctions' + } + } +} + +compileMain.dependsOn nativeHeaders +test.dependsOn compileMain +