/* * Copyright 2024 Mifos Initiative * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. * * See https://github.com/openMF/mobile-wallet/blob/master/LICENSE.md */ import org.jetbrains.compose.desktop.application.dsl.TargetFormat plugins { alias(libs.plugins.kotlinMultiplatform) alias(libs.plugins.compose.compiler) alias(libs.plugins.jetbrainsCompose) alias(libs.plugins.kotlin.serialization) } kotlin { jvm("desktop") jvmToolchain(17) sourceSets { val desktopMain by getting { dependencies { implementation(projects.core.common) implementation(projects.core.data) implementation(projects.core.model) implementation(projects.core.datastore) implementation(projects.mifospayShared) implementation(libs.kotlinx.coroutines.swing) implementation(compose.desktop.currentOs) implementation(libs.jb.kotlin.stdlib) implementation(libs.kotlin.reflect) implementation(libs.filekit.core) } } } } val appPackageName: String = libs.versions.packageName.get() val appPackageNameSpace: String = libs.versions.packageNamespace.get() val appPackageVersion: String = libs.versions.packageVersion.get() compose.desktop { application { mainClass = "MainKt" nativeDistributions { targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Exe, TargetFormat.Deb) packageName = appPackageName packageVersion = appPackageVersion description = "Mifos Wallet Desktop Application" copyright = "© 2024 Mifos Initiative. All rights reserved." vendor = "Mifos Initiative" licenseFile.set(project.file("../LICENSE")) includeAllModules = true macOS { bundleID = appPackageNameSpace dockName = appPackageName iconFile.set(project.file("icons/ic_launcher.icns")) notarization { val providers = project.providers appleID.set(providers.environmentVariable("NOTARIZATION_APPLE_ID")) password.set(providers.environmentVariable("NOTARIZATION_PASSWORD")) teamID.set(providers.environmentVariable("NOTARIZATION_TEAM_ID")) } } windows { menuGroup = appPackageName shortcut = true dirChooser = true perUserInstall = true iconFile.set(project.file("icons/ic_launcher.ico")) } linux { modules("jdk.security.auth") iconFile.set(project.file("icons/ic_launcher.png")) } } buildTypes.release.proguard { configurationFiles.from(file("compose-desktop.pro")) obfuscate.set(true) optimize.set(true) } } }