Add Gradle logic for building a native library
This approach uses no external makefiles; it's pure Gradle. Nice!
This commit is contained in:
parent
6007b11c3f
commit
43a482dfae
|
@ -1,3 +1,5 @@
|
||||||
|
apply plugin: 'cpp'
|
||||||
|
|
||||||
sourceSets.main.java.srcDir 'source/java'
|
sourceSets.main.java.srcDir 'source/java'
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
|
@ -6,3 +8,27 @@ dependencies {
|
||||||
compile project(':com.ibm.wala.shrike')
|
compile project(':com.ibm.wala.shrike')
|
||||||
compile project(':com.ibm.wala.util')
|
compile project(':com.ibm.wala.util')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def jvm = org.gradle.internal.jvm.Jvm.current()
|
||||||
|
|
||||||
|
model {
|
||||||
|
components {
|
||||||
|
cast(NativeLibrarySpec) {
|
||||||
|
sources {
|
||||||
|
cpp {
|
||||||
|
source {
|
||||||
|
srcDir 'source/c/jni'
|
||||||
|
include '*.cpp'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
def library = it
|
||||||
|
binaries.all {
|
||||||
|
def jniIncludeDir = "${jvm.getJavaHome()}/include"
|
||||||
|
cppCompiler.args '-I', "${library.properties.sources.cpp.source.srcDirs[0].parent}/include"
|
||||||
|
cppCompiler.args '-I', jniIncludeDir
|
||||||
|
cppCompiler.args '-I', "${jniIncludeDir}/linux" // TODO: make more portable
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue