Gitnuro/build.gradle.kts

102 lines
2.9 KiB
Text
Raw Normal View History

2022-08-06 21:03:45 +02:00
import org.gradle.jvm.tasks.Jar
2021-09-24 14:25:17 +02:00
import org.jetbrains.compose.compose
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
2022-04-04 18:55:21 +02:00
// Kotlin version must match compose version
kotlin("jvm") version "1.6.10"
kotlin("kapt") version "1.6.10"
kotlin("plugin.serialization") version "1.6.10"
2022-03-26 05:05:23 +01:00
id("org.jetbrains.compose") version "1.1.1"
2021-09-24 14:25:17 +02:00
}
2022-04-04 02:48:40 +02:00
// Remember to update Constants.APP_VERSION when changing this version
2022-06-25 04:47:53 +02:00
val projectVersion = "1.0.0"
2022-04-02 04:17:40 +02:00
val projectName = "Gitnuro"
2022-03-27 06:24:29 +02:00
group = "com.jetpackduba"
version = projectVersion
2021-09-24 14:25:17 +02:00
repositories {
mavenCentral()
google()
maven { url = uri("https://maven.pkg.jetbrains.space/public/p/compose/dev") }
}
dependencies {
implementation(compose.desktop.currentOs)
2021-11-22 03:38:16 +01:00
@OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
implementation(compose.desktop.components.splitPane)
2022-07-10 16:04:03 +02:00
implementation("org.eclipse.jgit:org.eclipse.jgit:6.2.0.202206071550-r")
2022-08-06 20:37:07 +02:00
implementation("org.apache.sshd:sshd-core:2.9.0")
implementation("com.google.dagger:dagger:2.43")
2022-06-03 18:40:25 +02:00
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3")
2022-08-06 20:37:07 +02:00
kapt("com.google.dagger:dagger-compiler:2.43")
testImplementation(platform("org.junit:junit-bom:5.9.0"))
testImplementation("org.junit.jupiter:junit-jupiter:5.9.0")
testImplementation("io.mockk:mockk:1.12.5")
2022-04-04 02:48:40 +02:00
implementation("com.squareup.retrofit2:retrofit:2.9.0")
implementation("com.squareup.retrofit2:converter-scalars:2.9.0")
2022-05-16 19:15:29 +02:00
implementation("net.i2p.crypto:eddsa:0.3.0")
}
tasks.test {
useJUnitPlatform()
testLogging {
events("passed", "skipped", "failed")
}
2021-09-24 14:25:17 +02:00
}
2022-08-06 21:03:45 +02:00
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "17"
kotlinOptions.allWarningsAsErrors = true
2022-05-09 22:02:24 +02:00
kotlinOptions.freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn"
2021-09-24 14:25:17 +02:00
}
2021-09-24 14:25:17 +02:00
compose.desktop {
application {
2021-11-19 03:09:09 +01:00
mainClass = "MainKt"
2021-09-24 14:25:17 +02:00
nativeDistributions {
includeAllModules = true
2022-04-04 05:15:42 +02:00
packageName = projectName
version = projectVersion
description = "Multiplatform Git client"
2022-08-06 21:03:45 +02:00
2022-04-04 05:15:42 +02:00
windows {
iconFile.set(project.file("icons/icon.ico"))
}
macOS {
jvmArgs(
"-Dapple.awt.application.appearance=system"
)
2022-05-31 17:12:33 +02:00
iconFile.set(project.file("icons/icon.icns"))
}
2021-09-24 14:25:17 +02:00
}
}
2022-03-27 06:27:31 +02:00
}
task("fatJar", type = Jar::class) {
2022-04-02 04:17:40 +02:00
archiveBaseName.set(projectName)
2022-03-27 06:27:31 +02:00
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes["Implementation-Title"] = name
2022-03-27 06:27:31 +02:00
attributes["Implementation-Version"] = projectVersion
attributes["Main-Class"] = "MainKt"
}
from(configurations.runtimeClasspath.get().map { if (it.isDirectory) it else zipTree(it) }) {
exclude(
"META-INF/MANIFEST.MF",
"META-INF/*.SF",
"META-INF/*.DSA",
"META-INF/*.RSA",
)
}
with(tasks.jar.get() as CopySpec)
2022-04-04 05:15:42 +02:00
}