prabowo87 / kotlin-native

Kotlin/Native infrastructure

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

official project

Kotlin/Native

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

Kotlin/Native is primarily designed to allow compilation for platforms where virtual machines are not desirable or possible (such as iOS, 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.

To compile from sources use following steps.

First download dependencies:

./gradlew dependencies:update

Then build the compiler and libraries:

./gradlew bundle

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

./gradlew dist distPlatformLibs

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

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

For an optimized compilation use -opt:

kotlinc hello.kt -o hello -opt

For some tests, use:

./gradlew backend.native:tests:run

To generate interoperability stubs create library definition file (take a look on samples/tetris/.../sdl.def) and run cinterop tool like this:

cinterop -def lib.def

See provided samples and INTEROP.md for more details.

Interop tool generates library in .klib library format, see LIBRARIES.md for more details on the file format.

About

Kotlin/Native infrastructure

License:Apache License 2.0


Languages

Language:Kotlin 79.7%Language:C++ 15.7%Language:C 2.9%Language:Groovy 1.0%Language:JavaScript 0.2%Language:Shell 0.1%Language:Batchfile 0.1%Language:Objective-C++ 0.1%Language:Objective-C 0.0%Language:Python 0.0%Language:Pascal 0.0%Language:Makefile 0.0%Language:Java 0.0%Language:HTML 0.0%