* [gradle-plugin] Basic implementation for the new plugin
* [gradle-plugin] Use one component for both libraries and executables
* [gradle-plugin] Support library compilation and publishing
* [gradle-plugin] Support compilation for different targets
* [gradle-plugin] Use different output paths for libs and kexe
* [gradle-plugin] Implement ProductionComponent
* [gradle-plugin] Add smoke tests for the new Gradle plugin
* [gradle-plugin] Backport to Gradle 4.7 and rename plugin package
* [gradle-plugin] Implement our own BuildType
* Remove the 'publish-release.sh' script
* [gradle-plugin] Support tests in new plugin
* [gradle-plugin] Refactor the new plugin
* Rename sourceSets.main.common -> sourceSets.main.kotlin.
* Generate dummy tasks for unsupported test targets.
* Add identities in publication for unsupported on the current
host targets.
* Provide a component DSL method for setting targets.
* [gradle-plugin] Codestyle fixes
* [gradle-plugin] Add checks for Gradle version and metadata
* [gradle-plugin] Support compiler downloading in the new plugin
* [gradle-plugin] Support MPP in the new Gradle plugin
* [gradle-plugin] Fix tests after removing implicit GRADLE_METADATA
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 9.3
- on Fedora 26+
yum install ncurses-compat-libsmay be needed
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 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
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), and run the cinterop tool like this:
cinterop -def lib.def
See the provided samples and INTEROP.md for more details.
The Interop tool generates a library in the .klib library format. See LIBRARIES.md
for more details on this file format.