Github url

kotlin-native

by JetBrains

JetBrains /kotlin-native

Kotlin/Native infrastructure

6.8K Stars 591 Forks Last release: 4 months ago (v1.3.72) Apache License 2.0 6.3K Commits 4.2K Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

official projectversion

Kotlin/Native

Kotlin/Native is an LLVM backend for the Kotlin compiler, runtime implementation, and native code generation facility using the LLVM toolchain.

Kotlin/Native is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS or embedded targets), or where a developer is willing to produce a reasonably-sized self-contained program without the need to ship an additional execution runtime.

Prerequisites: * install JDK for your platform, instead of JRE. The build requires

tools.jar

, which is not included in JRE; * on macOS install Xcode 11 (Xcode 11.5 is required to compile Kotlin/Native from sources) * on Fedora 26+

yum install ncurses-compat-libs

may be needed * on recent Ubuntu

apt install libncurses5

is needed

To compile from sources use following steps:

First, download dependencies:

./gradlew dependencies:update

Then, build the compiler and libraries:

./gradlew bundle

To build with experimental targets support compile with

-Porg.jetbrains.kotlin.native.experimentalTargets

.

The build can take about an hour on a Macbook Pro. To run a shorter build with only the host compiler and libraries, run:

./gradlew dist distPlatformLibs

To include Kotlin compiler in composite build and build against it, use the

kotlinProjectPath

project property:

./gradlew dist -PkotlinProjectPath=path/to/kotlin/project

It's possible to include in a composite build both Kotlin compiler and Kotlin/Native Shared simultaneously.

After that, you should be able to compile your programs like this:

export PATH=./dist/bin:$PATH kotlinc hello.kt -o hello

For an optimized compilation, use

-opt

:

kotlinc hello.kt -o hello -opt

For tests, use:

./gradlew backend.native:tests:run

To generate interoperability stubs, create a library definition file (refer to [

samples/tetris/.../sdl.def

](https://github.com/JetBrains/kotlin-native/blob/master/samples/tetris/src/nativeInterop/cinterop/sdl.def)), and run the

cinterop

tool like this:

cinterop -def lib.def

See the provided samples and [

INTEROP.md

](https://github.com/JetBrains/kotlin-native/blob/master/INTEROP.md) for more details.

The Interop tool generates a library in the

.klib

library format. See [

LIBRARIES.md

](https://github.com/JetBrains/kotlin-native/blob/master/LIBRARIES.md)for more details on this file format.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.