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'
|
||||
|
||||
dependencies {
|
||||
|
@ -6,3 +8,27 @@ dependencies {
|
|||
compile project(':com.ibm.wala.shrike')
|
||||
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