Interop: implement callbacks using libffi

This commit is contained in:
Svyatoslav Scherbina
2016-10-10 10:11:22 +03:00
parent ce10b5fb15
commit af09ce085c
6 changed files with 732 additions and 53 deletions
+31
View File
@@ -9,6 +9,27 @@ buildscript {
}
apply plugin: 'kotlin'
apply plugin: 'c'
def javaHome = System.getProperty('java.home')
def compilerArgsForJniIncludes = ["", "linux", "darwin"].collect { "-I$javaHome/../include/$it" } as String[]
model {
components {
callbacks(NativeLibrarySpec) {
sources.c.source {
srcDir 'src/callbacks/c'
include '**/*.c'
}
binaries.all {
cCompiler.args compilerArgsForJniIncludes
cCompiler.args "-I$ffiIncludePath"
linker.args "$ffiLibPath/libffi.a"
}
}
}
}
repositories {
mavenCentral()
@@ -17,3 +38,13 @@ repositories {
dependencies {
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
}
task nativelibs(type: Copy) {
dependsOn 'callbacksSharedLibrary'
from "$buildDir/libs/callbacks/shared/"
into "$buildDir/nativelibs/"
}
classes.dependsOn nativelibs