WALA/com.ibm.wala.cast/build.gradle

54 lines
1.3 KiB
Groovy

apply plugin: 'cpp'
sourceSets.main.java.srcDirs = ['source/java']
dependencies {
compile 'commons-io:commons-io:2.4'
compile project(':com.ibm.wala.core')
compile project(':com.ibm.wala.shrike')
compile project(':com.ibm.wala.util')
}
tasks.javadoc {
dependsOn ':com.ibm.wala.cast.js:compileJava'
doFirst {
classpath += files(project(':com.ibm.wala.cast.js').tasks.compileJava)
}
}
def currentJavaHome = org.gradle.internal.jvm.Jvm.current().javaHome
model {
repositories {
libs(PrebuiltLibraries) {
jdk {
def jniIncludeDir = "$currentJavaHome/include"
// TODO: make "linux" more portable on next line; should be "win32" on Windows; should be "darwin" on MacOS
headers.srcDirs files(jniIncludeDir, "$jniIncludeDir/linux")
binaries.withType(SharedLibraryBinary) {
// TODO: make next line more portable
sharedLibraryLinkFile = file("$currentJavaHome/jre/lib/amd64/server/libjvm.so")
}
}
}
}
components {
cast(NativeLibrarySpec) {
sources.cpp {
def cSourceDir = 'source/c'
source {
srcDirs = ["$cSourceDir/jni"]
include '*.cpp'
}
exportedHeaders.srcDirs = ["$cSourceDir/include"]
lib library: 'jdk'
}
binaries.all {
// TODO: compute path on following line from 'jdk' library properties somehow
linker.args '-Wl,-rpath', "$currentJavaHome/jre/lib/amd64/server"
}
}
}
}