Skip to content
master
Switch branches/tags
Code

official project version

Kotlin Multiplatform library for Skia and window management

Skiko (short for Skia for Kotlin) is the graphical library exposing significant part of Skia library APIs to Kotlin, along with the gluing code for rendering context. At the moment, Linux(x86_64 and arm64), Windows(x86_64) and macOS(x86_64 and arm64) builds for Kotlin/JVM are available.

Using as dependency

To use in build scripts one has to compute appropriate target platform and version, i.e. something like this

    repositories {
        maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
    }

    val osName = System.getProperty("os.name")
    val targetOs = when {
        osName == "Mac OS X" -> "macos"
        osName.startsWith("Win") -> "windows"
        osName.startsWith("Linux") -> "linux"
        else -> error("Unsupported OS: $osName")
    }

    val osArch = System.getProperty("os.arch")
    var targetArch = when (osArch) {
        "x86_64", "amd64" -> "x64"
        "aarch64" -> "arm64"
        else -> error("Unsupported arch: $osArch")
    }

    val version = "0.3.0"
    val target = "${targetOs}-${targetArch}"
    dependencies {
        implementation("org.jetbrains.skiko:skiko-jvm-runtime-$target:$version")
    }

To use latest development snapshot use version 0.0.0-SNAPSHOT.

Building JVM bindings

  • (Optional) Set SKIA_DIR to location of Skia (binaries can be downloaded here)
  • Set JAVA_HOME to location of JDK, at least version 11
  • cd skiko && ./gradlew publishToMavenLocal will build the artefact and publish it to local Maven repo

To build with debug symbols and debug Skia build use -Pskiko.debug=true Gradle argument.

Working with Skia or Skija sources

Gradle build downloads the necessary version of Skia & Skija by default. However, if downloaded sources are modified, changes are discarded (Gradle re-evaluates tasks, when outputs are changed). To use custom version of the dependencies, specify SKIA_DIR or SKIJA_DIR environment variable respectively.

Building on Windows

Using Visual Studio C++
Execution failed for task ':compileDebugWindowsCpp'.
> No tool chain is available to build C++ for host operating system 'Windows 10' architecture 'x86-64':
    - Tool chain 'visualCpp' (Visual Studio):
        - Could not locate a Visual Studio installation, using the command line tool, Windows registry or system path.

set SKIKO_VSBT_PATH environment variable to the location of installed Visual Studio Build Tools. This could be done in the UI:

Control Panel|All Control Panel Items|System|Advanced system settings|Environment variables

or by running cmd as administrator:

setx /M SKIKO_VSBT_PATH "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools"