Gradle plugin used afterEvaluate method to configure default parameters for tasks. This behavior might lead to problems if user also uses the afterEvaluate hook. This patch moves the default setting logic into the tasks. The following actions have been removed from the afterEvaluate hook: * Setting default source directories for KonanCompileTask * Setting default def-file for KonanInteropTask
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 developer is willing to produce reasonably-sized self-contained program without 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 standard library:
./gradlew dist
To build standard library for cross-targets use:
./gradlew cross_dist
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.