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" } } } }