├── adder ├── zig │ ├── add.zig │ └── make.sh ├── rust │ ├── add.rs │ └── make.sh ├── swift │ ├── add.swift │ └── make.sh ├── c │ ├── add.c │ └── make.sh ├── src │ ├── commonMain │ │ └── kotlin │ │ │ └── com │ │ │ └── example │ │ │ └── adder │ │ │ └── Math.kt │ ├── jvmMain │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── adder │ │ │ │ └── Math.kt │ │ ├── c │ │ │ └── com_example_adder_Jni.c │ │ ├── java │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── adder │ │ │ │ ├── Jni.java │ │ │ │ └── NativeLibrary.java │ │ └── include │ │ │ ├── windows │ │ │ └── jni_md.h │ │ │ ├── unix │ │ │ └── jni_md.h │ │ │ ├── LICENSE │ │ │ └── share │ │ │ └── jni.h │ ├── nativeMain │ │ └── kotlin │ │ │ └── com │ │ │ └── example │ │ │ └── adder │ │ │ └── Math.kt │ ├── jvmJdk22 │ │ └── kotlin │ │ │ └── com │ │ │ └── example │ │ │ └── adder │ │ │ └── Math.kt │ └── commonTest │ │ └── kotlin │ │ └── com │ │ └── example │ │ └── adder │ │ └── AdderTest.kt ├── cpp │ ├── add.cpp │ └── make.sh ├── include │ └── add.h ├── gradle.properties ├── make-jni.sh └── build.gradle ├── gradle ├── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties └── libs.versions.toml ├── app-gui ├── src │ ├── androidMain │ │ ├── res │ │ │ ├── values-night │ │ │ │ └── themes.xml │ │ │ └── values │ │ │ │ └── themes.xml │ │ ├── kotlin │ │ │ └── com │ │ │ │ └── example │ │ │ │ └── gui │ │ │ │ └── MainActivity.kt │ │ └── AndroidManifest.xml │ ├── jvmMain │ │ └── kotlin │ │ │ └── com │ │ │ └── example │ │ │ └── gui │ │ │ └── Main.kt │ ├── commonTest │ │ └── kotlin │ │ │ └── com │ │ │ └── example │ │ │ └── gui │ │ │ └── GuiTest.kt │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── example │ │ └── gui │ │ └── Adder.kt └── build.gradle ├── .gitignore ├── settings.gradle ├── .editorconfig ├── app-cli ├── src │ └── commonMain │ │ └── kotlin │ │ └── com │ │ └── example │ │ └── cli │ │ └── Main.kt └── build.gradle ├── gradle.properties ├── README.md ├── gradlew.bat ├── gradlew └── LICENSE.txt /adder/zig/add.zig: -------------------------------------------------------------------------------- 1 | export fn kmp_add(a: i32, b: i32) i32 { 2 | return a + b; 3 | } 4 | -------------------------------------------------------------------------------- /adder/rust/add.rs: -------------------------------------------------------------------------------- 1 | #[no_mangle] 2 | pub extern "C" fn kmp_add(a: i32, b: i32) -> i32 { 3 | a + b 4 | } 5 | -------------------------------------------------------------------------------- /adder/swift/add.swift: -------------------------------------------------------------------------------- 1 | @_cdecl("kmp_add") 2 | public func add(a: Int32, b: Int32) -> Int32 { 3 | return a + b 4 | } 5 | -------------------------------------------------------------------------------- /adder/c/add.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include "add.h" 3 | 4 | int32_t kmp_add(int32_t a, int32_t b) { 5 | return a + b; 6 | } 7 | -------------------------------------------------------------------------------- /adder/src/commonMain/kotlin/com/example/adder/Math.kt: -------------------------------------------------------------------------------- 1 | package com.example.adder 2 | 3 | public expect fun add(a: Int, b: Int): Int 4 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JakeWharton/kmp-other-languages-sample/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /adder/src/jvmMain/kotlin/com/example/adder/Math.kt: -------------------------------------------------------------------------------- 1 | package com.example.adder 2 | 3 | public actual fun add(a: Int, b: Int): Int { 4 | return Jni.add(a, b) 5 | } 6 | -------------------------------------------------------------------------------- /adder/src/nativeMain/kotlin/com/example/adder/Math.kt: -------------------------------------------------------------------------------- 1 | package com.example.adder 2 | 3 | public actual fun add(a: Int, b: Int): Int { 4 | return kmp_add(a, b) 5 | } 6 | -------------------------------------------------------------------------------- /adder/cpp/add.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "add.h" 3 | 4 | extern "C" { 5 | 6 | int32_t kmp_add(int32_t a, int32_t b) { 7 | return a + b; 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /app-gui/src/androidMain/res/values-night/themes.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |