Skip to content

Commit 3638e1d

Browse files
add macOS native support (#115)
1 parent d746f02 commit 3638e1d

5 files changed

Lines changed: 52 additions & 1 deletion

File tree

demoApp/composeApp/build.gradle.kts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,15 @@ kotlin {
5454
}
5555
}
5656

57+
listOf(
58+
macosX64(),
59+
macosArm64()
60+
).forEach {
61+
it.binaries.executable {
62+
entryPoint = "main"
63+
}
64+
}
65+
5766
sourceSets {
5867
commonMain.dependencies {
5968
implementation(compose.runtime)
@@ -138,4 +147,12 @@ compose.desktop {
138147
packageVersion = "1.0.0"
139148
}
140149
}
150+
nativeApplication {
151+
targets(kotlin.macosX64(), kotlin.macosArm64())
152+
distributions {
153+
targetFormats(TargetFormat.Dmg)
154+
packageName = "sh.calvin.reorderable.demo"
155+
packageVersion = "1.0.0"
156+
}
157+
}
141158
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import androidx.compose.ui.unit.DpSize
2+
import androidx.compose.ui.unit.dp
3+
import androidx.compose.ui.window.Window
4+
import platform.AppKit.NSApplication
5+
import platform.AppKit.NSApplicationActivationPolicy
6+
import platform.AppKit.NSApplicationDelegateProtocol
7+
import platform.darwin.NSObject
8+
import sh.calvin.reorderable.demo.ui.App
9+
10+
fun main() {
11+
val nsApplication = NSApplication.sharedApplication()
12+
nsApplication.setActivationPolicy(NSApplicationActivationPolicy.NSApplicationActivationPolicyRegular)
13+
nsApplication.delegate = object : NSObject(), NSApplicationDelegateProtocol {
14+
override fun applicationShouldTerminateAfterLastWindowClosed(sender: NSApplication) = true
15+
}
16+
Window(
17+
title = "Reorderable",
18+
size = DpSize(width = 800.dp, height = 600.dp)
19+
) {
20+
App()
21+
}
22+
nsApplication.run()
23+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package sh.calvin.reorderable.demo
2+
3+
import androidx.compose.runtime.Composable
4+
5+
@Composable
6+
actual fun rememberReorderHapticFeedback(): ReorderHapticFeedback {
7+
return ReorderHapticFeedback()
8+
}

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ signAllPublications=true
2727

2828
org.jetbrains.compose.experimental.wasm.enabled=true
2929
org.jetbrains.compose.experimental.jscanvas.enabled=true
30+
org.jetbrains.compose.experimental.macos.enabled=true

reorderable/build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,9 @@ kotlin {
5454
listOf(
5555
iosX64(),
5656
iosArm64(),
57-
iosSimulatorArm64()
57+
iosSimulatorArm64(),
58+
macosX64(),
59+
macosArm64()
5860
).forEach {
5961
it.binaries.framework {
6062
baseName = "reorderable"

0 commit comments

Comments
 (0)