2018-05-23 21:44:29 +00:00
|
|
|
plugins {
|
|
|
|
id 'eclipse'
|
|
|
|
}
|
2018-01-15 04:50:52 +00:00
|
|
|
|
|
|
|
eclipse.project.natures 'org.eclipse.pde.PluginNature'
|
|
|
|
|
2017-12-26 21:54:35 +00:00
|
|
|
sourceSets.test.java.srcDirs = ['src']
|
2018-01-16 04:12:25 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
|
2018-08-02 23:35:32 +00:00
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// download and extract kawa 3.0 "kawa.jar"
|
|
|
|
//
|
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
task downloadKawa(type: VerifiedDownload) {
|
|
|
|
ext.version = '3.0'
|
|
|
|
final def archive = "kawa-${version}.zip"
|
|
|
|
src "https://ftp.gnu.org/pub/gnu/kawa/$archive"
|
|
|
|
dest "$temporaryDir/$archive"
|
|
|
|
checksum '2713e6dfb939274ba3b1d36daea68436'
|
2018-08-02 23:35:32 +00:00
|
|
|
}
|
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
task extractKawa(type: Sync, dependsOn: downloadKawa) {
|
|
|
|
from(zipTree(downloadKawa.dest)) {
|
|
|
|
include "kawa-${downloadKawa.version}/lib/kawa.jar"
|
2018-08-02 23:35:32 +00:00
|
|
|
eachFile {
|
|
|
|
relativePath new RelativePath(!directory, relativePath.lastName)
|
|
|
|
}
|
|
|
|
}
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
into temporaryDir
|
2018-08-02 23:35:32 +00:00
|
|
|
includeEmptyDirs false
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
outputs.file "$temporaryDir/kawa.jar"
|
2018-08-02 23:35:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
// specialized task for Kawa compilation into jar archive
|
2018-08-02 23:35:32 +00:00
|
|
|
//
|
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
@CacheableTask
|
|
|
|
class CompileKawaJar extends Jar {
|
2018-08-02 23:35:32 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
@Nested final def compile = project.task("compileKawaInto${name.capitalize()}", type: JavaExec) {
|
|
|
|
dependsOn(project.extractKawa)
|
|
|
|
final def kawaJar = project.files(project.extractKawa)[0]
|
|
|
|
classpath kawaJar
|
|
|
|
main 'kawa.repl'
|
2018-08-03 02:56:15 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
args '-d', temporaryDir
|
|
|
|
outputs.dir temporaryDir
|
2018-08-02 23:35:32 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
logging.captureStandardError LogLevel.INFO
|
|
|
|
args '--main', '-C'
|
|
|
|
}
|
|
|
|
|
|
|
|
CompileKawaJar() {
|
|
|
|
compile.dependsOn(dependsOn)
|
|
|
|
from compile
|
|
|
|
version null
|
|
|
|
}
|
2018-08-02 23:35:32 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
void setArgs(Object... args) {
|
|
|
|
compile.args args
|
|
|
|
}
|
|
|
|
}
|
2018-08-02 23:35:32 +00:00
|
|
|
|
2018-08-03 02:56:15 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// download, unpack, and build kawa chess
|
|
|
|
//
|
2018-08-03 01:17:52 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
task downloadKawaChess(type: VerifiedDownload) {
|
|
|
|
ext.commitHash = 'f1d2dcc707a1ef19dc159e2eaee5aecc8a41d7a8'
|
|
|
|
src "https://github.com/ttu-fpclub/kawa-chess/archive/${commitHash}.zip"
|
|
|
|
dest "$temporaryDir/kawa-chess.zip"
|
|
|
|
checksum 'cf29613d2be5f476a475ee28b4df9d9e'
|
|
|
|
}
|
2018-08-02 23:35:32 +00:00
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
task unpackKawaChess(type: Sync, dependsOn: downloadKawaChess) {
|
|
|
|
from zipTree(downloadKawaChess.dest)
|
|
|
|
into temporaryDir
|
|
|
|
ext.top = "$destinationDir/kawa-chess-${downloadKawaChess.commitHash}"
|
2018-08-02 23:35:32 +00:00
|
|
|
}
|
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
task buildChessJar(type: CompileKawaJar, dependsOn: unpackKawaChess) {
|
|
|
|
final def schemePath = { "$unpackKawaChess.top/${it}.scm" }
|
|
|
|
final def schemeFiles = files(['chess', 'gui', 'img', 'main', 'pos'].collect(schemePath))
|
|
|
|
args schemePath('main')
|
|
|
|
inputs.files schemeFiles
|
2018-08-02 23:35:32 +00:00
|
|
|
baseName 'kawachess'
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// build the kawa test jar
|
|
|
|
//
|
|
|
|
|
Rework Kawa download and build tasks to be more Gradle'y
All Kawa-related downloads now use our existing VerifiedDownload task
class. This gives us Gradle-integrated progress reporting,
incremental build support, build caching, correct dependencies, etc.
Using Kawa to compile Scheme into bytecode now also has proper
dependency management, incremental build support, and build caching.
Same goes for bundling these compiled bytecode files into jar archives
for later use in regression tests.
Also, when downloading kawa-chess, grab a specific commit hash rather
than whatever is the most recent master commit. If this project
changes in the future, we don't want our tests to break unexpectedly.
Perhaps we'd want to pick up any new kawa-chess commits; perhaps not.
Either way, that should be a conscious decision rather than something
that can happen behind our backs.
2018-08-04 09:37:41 +00:00
|
|
|
task buildKawaTestJar(type: CompileKawaJar) {
|
|
|
|
final def schemeFile = file('kawasrc/test.scm')
|
|
|
|
args schemeFile
|
|
|
|
inputs.files schemeFile
|
2018-08-02 23:35:32 +00:00
|
|
|
baseName 'kawatest'
|
|
|
|
}
|
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// download and extract "bcel-5.2.jar"
|
|
|
|
//
|
|
|
|
|
2018-03-06 16:26:36 +00:00
|
|
|
task downloadBcel(type: VerifiedDownload) {
|
|
|
|
ext.version = '5.2'
|
2018-03-05 18:33:29 +00:00
|
|
|
def archive = "bcel-${version}.tar.gz"
|
2018-03-06 16:26:36 +00:00
|
|
|
src "http://archive.apache.org/dist/jakarta/bcel/binaries/$archive"
|
|
|
|
dest "$temporaryDir/$archive"
|
|
|
|
checksum '19bffd7f217b0eae415f1ef87af2f0bc'
|
|
|
|
useETag false
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-03-05 18:33:29 +00:00
|
|
|
task extractBcel(type: Copy, dependsOn: downloadBcel) {
|
2018-04-06 21:46:35 +00:00
|
|
|
from(tarTree(downloadBcel.dest)) {
|
2018-03-05 18:33:29 +00:00
|
|
|
include "bcel-${downloadBcel.version}/bcel-${downloadBcel.version}.jar"
|
2018-01-18 23:53:59 +00:00
|
|
|
eachFile {
|
2018-01-19 00:09:41 +00:00
|
|
|
relativePath new RelativePath(!directory, relativePath.lastName)
|
2018-01-18 23:53:59 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
into projectDir
|
|
|
|
includeEmptyDirs false
|
2018-03-05 18:33:29 +00:00
|
|
|
outputs.file "bcel-${downloadBcel.version}.jar"
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-01-18 23:53:59 +00:00
|
|
|
task cleanExtractBcel(type: Delete) {
|
|
|
|
delete files(extractBcel)[0]
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-01-28 21:27:35 +00:00
|
|
|
clean.dependsOn cleanExtractBcel
|
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
|
2018-01-18 23:53:59 +00:00
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// download "java-cup-11a.jar"
|
|
|
|
//
|
|
|
|
|
2018-03-06 16:26:36 +00:00
|
|
|
task downloadJavaCup(type: VerifiedDownload) {
|
2018-03-05 18:33:29 +00:00
|
|
|
def archive = 'java-cup-11a.jar'
|
2018-03-06 16:26:36 +00:00
|
|
|
src "http://www2.cs.tum.edu/projects/cup/$archive"
|
|
|
|
dest "$projectDir/$archive"
|
|
|
|
checksum '2bda8c40abd0cbc295d3038643d6e4ec'
|
2018-01-19 00:37:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
task cleanDownloadJavaCup(type: Delete) {
|
|
|
|
delete downloadJavaCup
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-01-28 21:27:35 +00:00
|
|
|
clean.dependsOn cleanDownloadJavaCup
|
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// collect "JLex.jar"
|
|
|
|
//
|
|
|
|
|
|
|
|
task collectJLex(type: Jar) {
|
|
|
|
from project(':com.ibm.wala.cast.java.test.data').compileTestJava
|
|
|
|
include 'JLex/'
|
|
|
|
baseName 'JLex'
|
2018-02-25 23:25:09 +00:00
|
|
|
version null
|
2018-01-16 04:12:25 +00:00
|
|
|
destinationDir projectDir
|
2018-01-19 00:37:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
task cleanCollectJLex(type: Delete) {
|
|
|
|
delete collectJLex
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-01-28 21:27:35 +00:00
|
|
|
clean.dependsOn cleanCollectJLex
|
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// generate "hello_hash.jar"
|
|
|
|
//
|
|
|
|
|
2018-03-06 16:26:36 +00:00
|
|
|
task downloadOcamlJava(type: VerifiedDownload) {
|
2018-01-16 04:12:25 +00:00
|
|
|
def version = '2.0-alpha1'
|
2018-03-05 18:33:29 +00:00
|
|
|
ext.basename = "ocamljava-$version"
|
|
|
|
def archive = "${basename}.tar.gz"
|
2018-03-06 16:26:36 +00:00
|
|
|
src "http://www.ocamljava.org/downloads/download.php?version=$version-bin"
|
|
|
|
dest "$temporaryDir/$archive"
|
|
|
|
checksum '45feec6e3889f5073a39c2c4c84878d1'
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-03-05 18:33:29 +00:00
|
|
|
task unpackOcamlJava(type: Sync, dependsOn: downloadOcamlJava) {
|
2018-04-06 21:46:35 +00:00
|
|
|
from tarTree(downloadOcamlJava.dest)
|
2018-01-16 04:12:25 +00:00
|
|
|
into temporaryDir
|
|
|
|
}
|
|
|
|
|
2018-03-31 22:57:04 +00:00
|
|
|
task generateHelloHashJar(type: JavaExec, dependsOn: unpackOcamlJava) {
|
2018-04-06 21:46:35 +00:00
|
|
|
def ocamlSource = file('ocaml/hello_hash.ml')
|
|
|
|
inputs.file ocamlSource
|
|
|
|
|
|
|
|
def jarTarget = file('hello_hash.jar')
|
|
|
|
outputs.file jarTarget
|
2018-03-31 23:02:04 +00:00
|
|
|
outputs.cacheIf { true }
|
2018-01-16 04:12:25 +00:00
|
|
|
|
2018-04-06 21:46:35 +00:00
|
|
|
def ocamlJavaJar = new File("$unpackOcamlJava.destinationDir/$downloadOcamlJava.basename/lib/ocamljava.jar")
|
|
|
|
inputs.file ocamlJavaJar
|
|
|
|
classpath ocamlJavaJar
|
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
main 'ocaml.compilers.ocamljavaMain'
|
2018-04-06 21:46:35 +00:00
|
|
|
args ocamlSource, '-o', jarTarget
|
2018-01-19 00:37:11 +00:00
|
|
|
}
|
2018-01-16 04:12:25 +00:00
|
|
|
|
2018-03-31 22:57:04 +00:00
|
|
|
task cleanGenerateHelloHashJar(type: Delete) {
|
|
|
|
delete generateHelloHashJar
|
2018-05-21 21:12:03 +00:00
|
|
|
delete fileTree('ocaml') {
|
|
|
|
exclude '*.ml'
|
|
|
|
exclude '.gitignore'
|
|
|
|
}
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-03-31 22:57:04 +00:00
|
|
|
clean.dependsOn cleanGenerateHelloHashJar
|
2018-01-28 21:27:35 +00:00
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// collect "com.ibm.wala.core.testdata_1.0.0.jar"
|
|
|
|
//
|
|
|
|
|
|
|
|
task collectTestData(type: Jar) {
|
|
|
|
version '1.0.0'
|
|
|
|
archiveName "${baseName}_${version}.${extension}"
|
|
|
|
from compileTestJava
|
|
|
|
from 'classes'
|
2018-02-15 02:04:58 +00:00
|
|
|
includeEmptyDirs false
|
2018-01-16 04:12:25 +00:00
|
|
|
destinationDir projectDir
|
2018-01-19 00:37:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
task cleanCollectTestData(type: Delete) {
|
|
|
|
delete collectTestData
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
|
|
|
|
2018-01-28 21:27:35 +00:00
|
|
|
clean.dependsOn cleanCollectTestData
|
|
|
|
|
2018-01-16 04:12:25 +00:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// collect "com.ibm.wala.core.testdata_1.0.0a.jar"
|
|
|
|
//
|
|
|
|
|
|
|
|
task collectTestDataA(type: Jar) {
|
|
|
|
version '1.0.0a'
|
|
|
|
archiveName "${baseName}_${version}.${extension}"
|
|
|
|
from compileTestJava
|
|
|
|
from 'classes'
|
2018-02-15 02:04:58 +00:00
|
|
|
includeEmptyDirs false
|
|
|
|
destinationDir projectDir
|
2018-01-16 04:12:25 +00:00
|
|
|
exclude (
|
2018-02-15 02:04:58 +00:00
|
|
|
'**/CodeDeleted.class',
|
|
|
|
'**/SortingExample.class',
|
|
|
|
'**/A.class',
|
2018-01-16 04:12:25 +00:00
|
|
|
)
|
2018-01-19 00:37:11 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
task cleanColllectTestDataA(type: Delete) {
|
|
|
|
delete collectTestDataA
|
2018-01-16 04:12:25 +00:00
|
|
|
}
|
2018-01-26 17:53:25 +00:00
|
|
|
|
2018-03-31 20:21:27 +00:00
|
|
|
clean.dependsOn cleanCollectTestDataA
|
|
|
|
|
2018-01-26 17:53:25 +00:00
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// help Eclipse build these extra jars when needed
|
|
|
|
//
|
|
|
|
|
2018-02-28 18:23:26 +00:00
|
|
|
afterEclipseBuildshipImport {
|
2018-01-29 23:23:10 +00:00
|
|
|
dependsOn(
|
|
|
|
collectJLex,
|
|
|
|
collectTestData,
|
|
|
|
collectTestDataA,
|
2018-03-05 18:33:29 +00:00
|
|
|
downloadJavaCup,
|
2018-01-29 23:23:10 +00:00
|
|
|
extractBcel,
|
2018-03-31 22:57:04 +00:00
|
|
|
generateHelloHashJar,
|
2018-08-02 23:35:32 +00:00
|
|
|
buildChessJar,
|
|
|
|
buildKawaTestJar,
|
2018-01-29 23:23:10 +00:00
|
|
|
)
|
2018-01-26 17:53:25 +00:00
|
|
|
}
|