Package-level declarations

Types

Link copied to clipboard
@UntrackedTask(because = "Writes @JniActual stubs into the selected producer's sources, which cannot be declared as outputs before the producer has been selected")
abstract class GenerateJniActualsTask : DefaultTask

Generates TODO()-bodied @JniActual stubs for the @JniExpect declarations of a consumer compilation.

Link copied to clipboard
data class JniActualsProducer(val path: String, val projectDir: File, val actuals: FileCollection)

A producer project the @JniActual stubs can be generated into.

Link copied to clipboard
interface JniBindingTarget : Named, HasProject

A single platform target of a JNI library binding.

Link copied to clipboard
class JniLibConsumerPlugin : KotlinCompilerPluginSupportPlugin

Plugin for consuming JNI libraries.

Link copied to clipboard
class JniLibrariesContainer(val compilation: KotlinCompilation<*>, backingContainer: NamedDomainObjectContainer<JniLibraryConfig> = jniLibraryConfigSet(compilation)) : NamedDomainObjectContainer<JniLibraryConfig> , HasProject

Container of JNI libraries configured for a single JVM/Android compilation.

Link copied to clipboard
class JniLibraryConfig : HasProject, Named

Configuration of a single JNI library used by a JVM/Android compilation.

Link copied to clipboard

Provides paths to binding artifacts of a single platform target.

Properties

Link copied to clipboard
val KotlinCompilation<*>.jniLibraries: JniLibrariesContainer

Container of JNI libraries of this compilation. Created lazily on first access.

Functions

Link copied to clipboard
fun JniLibraryConfig.androidArm32(name: String = "androidNativeArm32", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the Android Native ARM32 target.

Link copied to clipboard
fun JniLibraryConfig.androidArm64(name: String = "androidNativeArm64", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the Android Native ARM64 target.

Link copied to clipboard
fun JniLibraryConfig.androidX64(name: String = "androidNativeX64", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the Android Native x86_64 target.

Link copied to clipboard
fun JniLibraryConfig.androidX86(name: String = "androidNativeX86", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the Android Native x86 target.

Link copied to clipboard
fun KotlinCompilation<*>.jniLibraries(action: Action<JniLibrariesContainer>)

Configures JNI libraries of this compilation with the given action.

Link copied to clipboard
fun JniLibraryConfig.linuxArm64(name: String = "linuxArm64", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the Linux ARM64 target.

Link copied to clipboard
fun JniLibraryConfig.linuxX64(name: String = "linuxX64", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the Linux x86_64 target.

Link copied to clipboard
fun JniLibraryConfig.macosArm64(name: String = "macosArm64", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the macOS ARM64 (Apple Silicon) target.

Link copied to clipboard
fun JniLibraryConfig.mingwX64(name: String = "mingwX64", configure: Action<JniBindingTarget> = {}): JniBindingTarget

Registers the Windows mingwX64 target.