72 lines
1.5 KiB
Groovy
72 lines
1.5 KiB
Groovy
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
|
}
|
|
}
|
|
|
|
apply plugin: 'kotlin'
|
|
|
|
apply plugin: 'c'
|
|
|
|
println ">>>>$ext.llvmInstallPath -> -I$llvmInstallPath/include"
|
|
|
|
def javaHome = System.getProperty('java.home')
|
|
def compilerArgsForJniIncludes = ["", "linux", "darwin"].collect { "-I$javaHome/../include/$it" } as String[]
|
|
|
|
model {
|
|
components {
|
|
callback(NativeLibrarySpec) {
|
|
binaries.all {
|
|
cCompiler.args compilerArgsForJniIncludes
|
|
}
|
|
}
|
|
|
|
clangbridge(NativeLibrarySpec) {
|
|
sources {
|
|
c.source.srcDir 'prebuilt/nativeInteropStubs/c'
|
|
}
|
|
|
|
binaries.all {
|
|
cCompiler.args compilerArgsForJniIncludes
|
|
cCompiler.args "-I$llvmInstallPath/include"
|
|
}
|
|
|
|
binaries.withType(SharedLibraryBinarySpec) {
|
|
linker.args "-L$llvmInstallPath/lib", "-lclang"
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
kotlin {
|
|
srcDirs 'prebuilt/nativeInteropStubs/kotlin'
|
|
}
|
|
}
|
|
}
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
compile project(':Interop:Runtime')
|
|
}
|
|
|
|
task nativelibs(type: Copy) {
|
|
dependsOn 'callbackSharedLibrary', 'clangbridgeSharedLibrary'
|
|
|
|
from "$buildDir/libs/callback/shared/"
|
|
from "$buildDir/libs/clangbridge/shared/"
|
|
into "$buildDir/nativelibs/"
|
|
}
|
|
|
|
classes.dependsOn nativelibs
|