Minor fixes

This commit is contained in:
Nikolay Igotti
2017-04-03 17:22:30 +03:00
parent a553768067
commit ac37d95ff1
6 changed files with 59 additions and 9 deletions
+41
View File
@@ -0,0 +1,41 @@
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 get started with _Kotlin/Native_ take a look at the attached samples.
* `csvparser` - simple CSV file parser and analyzer
* `gitchurn` - program interoperating with `libgit2` for GIT repository analysis
* `libcurl` - using of FTP/HTTP/HTTPS client library `libcurl`
* `opengl` - OpenGL/GLUT teapot example
* `socket` - TCP/IP echo server
* `tetris` - Tetris game implementation (using SDL2 for rendering)
See `README.md` in each sample directory for more information and build instructions.
_Kotlin/Native_ could be used either as standalone compiler toolchain or as Gradle
plugin. See `GRADLE_PLUGIN.md` for more details on how to use this plugin.
Compile your programs like that:
export PATH=kotlin-native-<platform>-<version>/bin:$PATH
kotlinc hello.kt -o hello
For an optimized compilation use -opt:
kotlinc hello.kt -o hello -opt
To generate interoperability stubs create library definition file
(take a look on `samples/tetris/tetris.sdl`) and run `cinterop` tool like this:
cinterop -def lib.def
See `INTEROP.md` for more information on how to use C libraries from _Kotlin/Native_.
See `RELEASE_NOTES.md` for information on supported platforms and current limitations.
+7 -1
View File
@@ -1,4 +1,10 @@
Q: How do I run my program?
A: Define top level function `fun main(args: Array<String>)`, please ensure it's not
in a package.
in a package.
Q: How do I create shared library?
A: It is not possible at the moment. Currently Kotlin/Native could be used to produce either
_Kotlin/Native_ own library format, which can be statically linked with application or
or an executable for target.
+1 -1
View File
@@ -1,7 +1,7 @@
# Kotlin/Native Gradle plugin
#### Overview
You may use the Gradle plugin to build Kotlin/Native projects. To use it you need to include the following snippet in
You may use the Gradle plugin to build _Kotlin/Native_ projects. To use it you need to include the following snippet in
a build script (see projects in `samples` directory):
buildscript {
+7 -1
View File
@@ -283,9 +283,15 @@ task bundle(type: Tar) {
exclude 'dependencies'
into baseName
}
from(project.rootDir) {
include 'DISTRO_README.md'
rename {
return "README.md"
}
into baseName
}
from(project.rootDir) {
include 'samples/**'
include 'README.md'
include 'INTEROP.md'
include 'RELEASE_NOTES.md'
include 'GRADLE_PLUGIN.md'
+1 -4
View File
@@ -459,9 +459,6 @@ class Game(width: Int, height: Int, val visualizer: GameFieldVisualizer, val use
private val LOCK_DELAY = 1
private fun mainLoop() {
var prevCmd: UserCommand? = null
var das = false
var dasTicks = 0
var attemptsToLock = 0
while (!gameOver) {
sleep(1000 / 60) // Refresh rate - 60 frames per second.
@@ -635,7 +632,7 @@ class SDL_Visualizer(val width: Int, val height: Int): GameFieldVisualizer, User
fieldWidth = width * (CELL_SIZE + MARGIN) + MARGIN + BORDER_WIDTH * 2
fieldHeight = height * (CELL_SIZE + MARGIN) + MARGIN + BORDER_WIDTH * 2
var windowWidth = fieldWidth + INFO_SPACE_WIDTH
var windowHeight = 0
var windowHeight: Int
if (platform == "iOS") {
val gamePadHeight = (displayHeight * windowWidth - fieldHeight * displayWidth) / displayWidth
windowHeight = fieldHeight + gamePadHeight
+2 -2
View File
@@ -16,7 +16,7 @@ apply plugin: 'konan'
konanInterop {
sdlMacbook {
defFile 'sdl.def'
includeDirs '/Library/Frameworks/SDL2.framework/Headers', '/opt/local/include/SDL2', '/usr/local/include/SDL2', "${System.getProperty("user.home")}/Library/Frameworks/SDL2.framework/Headers"
includeDirs '/Library/Frameworks/SDL2.framework/Headers', "${System.getProperty("user.home")}/Library/Frameworks/SDL2.framework/Headers"
target 'macbook'
}
@@ -44,7 +44,7 @@ konanArtifacts {
TetrisMacbook {
inputFiles project.file('Tetris.kt')
useInterop 'sdlMacbook'
linkerOpts "-F ${System.getProperty("user.home")}/Library/Frameworks -F /Library/Frameworks -framework SDL2 -L/usr/local/lib -L/opt/local/lib -lSDL2"
linkerOpts "-F ${System.getProperty("user.home")}/Library/Frameworks -F /Library/Frameworks -framework SDL2"
// Use this line instead of the previous one if you've got a 'No SDL-framework' error.
//linkerOpts "-L/opt/local/lib -L/usr/local/lib -lSDL2"
target 'macbook'