79 lines
1.9 KiB
Groovy
79 lines
1.9 KiB
Groovy
apply plugin: 'cpp'
|
|
apply plugin: 'eclipse'
|
|
|
|
eclipse.project.natures 'org.eclipse.pde.PluginNature'
|
|
|
|
sourceSets.main.java.srcDirs = ['source/java']
|
|
|
|
dependencies {
|
|
compile(
|
|
'commons-io:commons-io:2.4',
|
|
project(':com.ibm.wala.core'),
|
|
project(':com.ibm.wala.shrike'),
|
|
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"
|
|
headers.srcDir jniIncludeDir
|
|
binaries.withType(SharedLibraryBinary) {
|
|
switch (targetPlatform.operatingSystem.name) {
|
|
case 'linux':
|
|
headers.srcDirs "$jniIncludeDir/linux"
|
|
break
|
|
case 'osx':
|
|
headers.srcDirs "$jniIncludeDir/darwin"
|
|
break
|
|
case 'windows':
|
|
headers.srcDirs "$jniIncludeDir/win32"
|
|
break
|
|
}
|
|
switch ("$targetPlatform.operatingSystem.name/$targetPlatform.architecture.name") {
|
|
case 'linux/x86-64':
|
|
sharedLibraryLinkFile = file("$currentJavaHome/jre/lib/amd64/server/libjvm.so")
|
|
break
|
|
case 'osx/x86-64':
|
|
sharedLibraryLinkFile = file("$currentJavaHome/jre/lib/server/libjvm.dylib")
|
|
break
|
|
case 'windows/x86-64':
|
|
// TODO: determine JVM library name and location on Windows
|
|
// sharedLibraryLinkFile = '???'
|
|
break
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
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"
|
|
}
|
|
}
|
|
}
|
|
}
|