mavenCentral()
}
-dependencies {
- testImplementation "junit:junit:4.12"
-}
-
-sourceSets {
- annotations {
- java.srcDirs = ["src/annotations"]
- java.outputDir = file("${buildDir}/annotations")
- }
- main {
- java.srcDirs = ["src/main"]
- java.outputDir = file("${buildDir}/main")
- compileClasspath += sourceSets.annotations.output
- }
- examples {
- java.srcDirs = ["src/examples"]
- java.outputDir = file("${buildDir}/examples")
- compileClasspath += sourceSets.main.output
- }
- classes {
- java.srcDirs = ["src/classes"]
- java.outputDir = file("${buildDir}/classes")
- compileClasspath += sourceSets.main.output + sourceSets.annotations.output
- }
- peers {
- java.srcDirs = ["src/peers"]
- java.outputDir = file("${buildDir}/peers")
- compileClasspath += sourceSets.main.output + sourceSets.annotations.output
+buildscript {
+ repositories {
+ maven {
+ url "https://plugins.gradle.org/m2/"
+ }
}
- test {
- java.srcDirs = ["src/tests"]
- java.outputDir = file("${buildDir}/tests")
- compileClasspath += sourceSets.annotations.output + sourceSets.classes.output + sourceSets.peers.output
- runtimeClasspath += compileClasspath
+ dependencies {
+ classpath "gradle.plugin.com.palantir.gradle.gitversion:gradle-git-version:0.11.0"
}
}
-clean {
- group = "JPF Build"
+dependencies {
+ testImplementation "junit:junit:4.12"
}
-task generateVersion {
- description = "Generates the .version file with the current revision hash"
- group = "JPF Build Properties"
-
- doLast {
- def revision = "git rev-parse HEAD".execute().text
- new File(".version").withWriter("utf-8") { writer ->
- writer.writeLine revision
- }
- }
+apply plugin: "com.palantir.git-version"
+version gitVersion()
+def gitDetails = versionDetails()
+
+ext.manifestCommonAttrbutes = manifest {
+ attributes(
+ "Built-By": System.getProperty("user.name"),
+ "Implementation-Vendor": "NASA Ames Research Center",
+ "Specification-Version": gitDetails.lastTag,
+ "Implementation-Version": gitDetails.gitHashFull
+ )
}
-task compile(type: Copy) {
+apply from: "gradle/ide-support.gradle"
+apply from: "gradle/distribution.gradle"
+apply from: "gradle/source-sets.gradle"
+apply from: "gradle/build-resources.gradle"
+
+task compile {
group = "JPF Build"
description = "Compiles all JPF core sources."
// These are automatic generated tasks from the Java Gradle Plugin.
- // Gradle is able to infer the ordering of the source sets
+ // Gradle is able to infer the order of the source sets
// due to the compileClasspath attribute
- dependsOn compileTestJava, compileExamplesJava, generateVersion
-
- // Copies build.properties file to the build directory
- from "build.properties"
- into sourceSets.main.java.outputDir.path + "/gov/nasa/jpf"
-
- // Copies .version file to the build directory
- from ".version"
- into sourceSets.main.java.outputDir.path + "/gov/nasa/jpf"
+ dependsOn compileTestJava
+ dependsOn compileExamplesJava
}
-task jpfClassesJar(type: Jar) {
+task createJpfClassesJar(type: Jar) {
archiveName = "jpf-classes.jar"
destinationDir = file("${buildDir}")
- description = "Creates the ${archiveName} file."
group = "JPF Jars"
+ description = "Creates the ${archiveName} file."
dependsOn compile
+ dependsOn copyResources
from sourceSets.classes.java.outputDir
from sourceSets.annotations.java.outputDir
}
}
-task jpfJar(type: Jar) {
+task createJpfJar(type: Jar) {
archiveName = "jpf.jar"
destinationDir = file("${buildDir}")
- description = "Creates the ${archiveName} file."
group = "JPF Jars"
+ description = "Creates the ${archiveName} file."
dependsOn compile
+ dependsOn copyResources
from sourceSets.main.java.outputDir
from sourceSets.peers.java.outputDir
}
manifest {
- attributes(
- "Built-By": System.getProperty("user.name"),
- "Implementation-Vendor": "NASA Ames Research Center",
- "Implementation-Title": "Java Pathfinder core system",
- "Implementation-Version": "1234" //FIXME
- )
+ attributes "Implementation-Title": "Java Pathfinder core system"
+ from manifestCommonAttrbutes
}
}
-task annotationsJar(type: Jar) {
+task createAnnotationsJar(type: Jar) {
archiveName = "jpf-annotations.jar"
destinationDir = file("${buildDir}")
- description = "Creates the ${archiveName} file."
group = "JPF Jars"
+ description = "Creates the ${archiveName} file."
dependsOn compile
+ dependsOn copyResources
from sourceSets.annotations.java.outputDir
}
-task classloaderSpecificTestsJar(type: Jar) {
+task createClassloaderSpecificTestsJar(type: Jar) {
archiveName = "classloader_specific_tests.jar"
destinationDir = file("${buildDir}")
- description = "Creates the ${archiveName} file."
group = "JPF Jars"
+ description = "Creates the ${archiveName} file."
dependsOn compile
+ dependsOn copyResources
from(sourceSets.test.java.outputDir) {
include "classloader_specific_tests/*.class"
}
}
-task runJpfJar(type: Jar) {
+task createRunJpfJar(type: Jar) {
archiveName = "RunJPF.jar"
destinationDir = file("${buildDir}")
group = "JPF Jars"
dependsOn compile
+ dependsOn copyResources
from(sourceSets.main.java.outputDir) {
include "gov/nasa/jpf/tool/Run.class"
}
manifest {
attributes(
- "Built-By": System.getProperty("user.name"),
- "Implementation-Vendor": "NASA Ames Research Center",
"Implementation-Title": "Java Pathfinder core launch system",
- "Implementation-Version": "1234", //FIXME
"Main-Class": "gov.nasa.jpf.tool.RunJPF"
)
+ from manifestCommonAttrbutes
}
}
-task runTestJar(type: Jar) {
+task createRunTestJar(type: Jar) {
archiveName = "RunTest.jar"
destinationDir = file("${buildDir}")
group = "JPF Jars"
dependsOn compile
+ dependsOn copyResources
from(sourceSets.main.java.outputDir) {
include "gov/nasa/jpf/tool/Run.class"
}
manifest {
attributes(
- "Built-By": System.getProperty("user.name"),
- "Implementation-Vendor": "NASA Ames Research Center",
"Implementation-Title": "Java Pathfinder test launch system",
- "Implementation-Version": "1234", // FIXME
"Main-Class": "gov.nasa.jpf.tool.RunTest"
)
+ from manifestCommonAttrbutes
}
}
task buildJars {
group = "JPF Build"
- description = "Generates the core JPF jar files."
-
- dependsOn classloaderSpecificTestsJar, annotationsJar,
- jpfClassesJar, jpfJar, runJpfJar,
- runTestJar
+ description = "Generates all core JPF jar files."
+
+ dependsOn createClassloaderSpecificTestsJar
+ dependsOn createAnnotationsJar
+ dependsOn createJpfClassesJar
+ dependsOn createJpfJar
+ dependsOn createRunJpfJar
+ dependsOn createRunTestJar
}
test {
- group = "JPF Build"
description = "Runs core regression tests."
dependsOn buildJars
- enableAssertions = true
forkEvery = 1
-
+ enableAssertions = true
maxHeapSize = "1024m"
include "**/*Test.class"