| apply plugin: 'java' |
| |
| import org.gradle.internal.os.OperatingSystem |
| |
| repositories { |
| mavenCentral() |
| } |
| |
| configurations { |
| antClasspath |
| } |
| |
| def test_jvm = { |
| if (OperatingSystem.current().isMacOsX()) { |
| file('../../build/macosx-x86_64-normal-server-release/images/j2sdk-bundle/jdk1.8.0.jdk/Contents/Home/bin/java').absolutePath |
| } else if (OperatingSystem.current().isLinux()) { |
| file('../../build/linux-x86_64-normal-server-release/images/j2sdk-image/bin/java').absolutePath |
| } else { |
| file('../../build/windows-x86_64-normal-server-release/images/j2sdk-image/bin/java.exe').absolutePath |
| } |
| } |
| |
| dependencies { |
| antClasspath 'ant-contrib:ant-contrib:20020829', 'org.apache.ant:ant-junit:1.8.1' |
| testCompile('junit:junit:4.12'){ |
| exclude group: 'org.hamcrest' |
| } |
| testCompile 'org.hamcrest:hamcrest-library:1.3' |
| } |
| |
| |
| // add additional jars to the AntBuilder classpath for use within the imported build. |
| ClassLoader antClassLoader = org.apache.tools.ant.Project.class.classLoader |
| configurations.antClasspath.each { File f -> |
| antClassLoader.addURL(f.toURI().toURL()) |
| } |
| |
| ant.importBuild('../../jdk/idea/java/tests/perf_tests.xml') { antTargetName -> |
| 'jdk-perf-' + antTargetName |
| } |
| |
| ant.properties.test_jvm = test_jvm() |
| |
| println ant.properties.test_jvm |
| |
| if (OperatingSystem.current().isMacOsX()) |
| sourceSets.main.java.srcDirs = |
| ["../../jdk/src/share/classes", |
| "../../jdk/src/macosx/classes", |
| ] |
| else if (OperatingSystem.current().isLinux()) |
| sourceSets.main.java.srcDirs = |
| ["../../jdk/src/share/classes", |
| "../../jdk/src/solaris/classes" |
| ] |
| else |
| sourceSets.main.java.srcDirs = |
| ["../../jdk/src/share/classes", |
| "../../jdk/src/windows/classes", |
| ] |
| |
| sourceSets.test.java.srcDirs = ["../../jdk/idea/java/tests/src"] |
| |
| def buildDir = project.buildscript.sourceFile.parentFile.parentFile.parentFile |
| |
| def make_cmd = "make" |
| if (OperatingSystem.current().isWindows()) { |
| def cyg_make_cmd = new File("c:/cygwin64/bin/make.exe") |
| if (cyg_make_cmd.exists()) make_cmd = cyg_make_cmd.absolutePath |
| } |
| |
| task make_images << { |
| def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, |
| " COMPILER_WARNINGS_FATAL=false", "images") |
| def proc = pb.redirectErrorStream(true).start() |
| proc.inputStream.eachLine {println it} |
| assert proc.waitFor() == 0 |
| } |
| |
| task make_clean << { |
| def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, |
| " COMPILER_WARNINGS_FATAL=false", "clean") |
| def proc = pb.redirectErrorStream(true).start() |
| proc.inputStream.eachLine {println it} |
| assert proc.waitFor() == 0 |
| } |
| |
| tasks.compileJava.enabled = false |
| tasks.compileTestJava.dependsOn.clear() |
| classes.dependsOn.clear() |
| classes.dependsOn tasks.make_images, tasks.compileTestJava |
| tasks.cleanClasses.dependsOn tasks.make_clean |