Skip to content

Commit 14a3a8c

Browse files
committed
Refactor: Centralize macOS distribution settings
Consolidates macOS native distribution and packaging configurations into reusable functions `applyDistributions` and `applyCommonSetup`. This reduces redundancy in `build.gradle.kts`.
1 parent a88a96c commit 14a3a8c

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

gallery/build.gradle.kts

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ import com.android.build.api.variant.impl.VariantOutputImpl
22
import com.codingfeline.buildkonfig.compiler.FieldSpec
33
import io.github.composefluent.plugin.build.BuildConfig
44
import io.github.composefluent.plugin.build.applyTargets
5+
import org.jetbrains.compose.desktop.application.dsl.AbstractDistributions
6+
import org.jetbrains.compose.desktop.application.dsl.AbstractMacOSPlatformSettings
57
import org.jetbrains.compose.desktop.application.dsl.TargetFormat
68
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
79
import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
@@ -158,11 +160,9 @@ compose.desktop {
158160
)
159161
}
160162
nativeDistributions {
161-
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
162-
packageName = "Compose Fluent Design Gallery"
163-
packageVersion = BuildConfig.integerVersionName
163+
applyDistributions()
164164
macOS {
165-
iconFile.set(project.file("icons/icon.icns"))
165+
applyCommonSetup()
166166
jvmArgs(
167167
"-Dapple.awt.application.appearance=system"
168168
)
@@ -187,6 +187,13 @@ compose.desktop {
187187
it.name.contains("macos")
188188
}.toTypedArray()
189189
)
190+
191+
distributions {
192+
applyDistributions(TargetFormat.Dmg)
193+
macOS {
194+
applyCommonSetup()
195+
}
196+
}
190197
}
191198
}
192199

@@ -215,4 +222,17 @@ tasks.withType<KotlinCompilationTask<*>>().configureEach {
215222
if (name != "kspCommonMainKotlinMetadata") {
216223
dependsOn("kspCommonMainKotlinMetadata")
217224
}
225+
}
226+
227+
fun AbstractDistributions.applyDistributions(
228+
vararg formats: TargetFormat = arrayOf(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
229+
) {
230+
targetFormats(formats = formats)
231+
packageName = "Compose Fluent Design Gallery"
232+
packageVersion = BuildConfig.integerVersionName
233+
234+
}
235+
236+
fun AbstractMacOSPlatformSettings.applyCommonSetup() {
237+
iconFile.set(project.file("icons/icon.icns"))
218238
}

0 commit comments

Comments
 (0)