Skip to content

Commit

Permalink
build: rewrite build.gradle files to Kotlin DSL
Browse files Browse the repository at this point in the history
  • Loading branch information
cyb3rko committed Nov 25, 2024
1 parent b4474a2 commit 00c3729
Show file tree
Hide file tree
Showing 6 changed files with 164 additions and 154 deletions.
102 changes: 0 additions & 102 deletions app/build.gradle

This file was deleted.

111 changes: 111 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
@file:Suppress("UnstableApiUsage")

import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
id("com.android.application")
id("kotlin-android")
id("org.jmailen.kotlinter") version "4.3.0"
}

android {
namespace = "com.github.gotify"
compileSdk = 34
defaultConfig {
applicationId = "com.github.gotify"
minSdk = 23
targetSdk = 34
versionCode = 32
versionName = "2.8.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
signingConfig = signingConfigs.getByName("debug")
resValue("string", "app_name", "Gotify")
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android.txt"),
"proguard-rules.pro"
)
}
register("development") {
applicationIdSuffix = ".dev"
isDebuggable = true
resValue("string", "app_name", "Gotify DEV")
}
}
buildFeatures {
viewBinding = true
buildConfig = true
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlin {
compilerOptions {
jvmTarget.set(JvmTarget.JVM_17)
}
}
packaging {
resources {
excludes.add("META-INF/DEPENDENCIES")
}
}
lint {
disable.add("GoogleAppIndexingWarning")
lintConfig = file("../lint.xml")
}
}

if (project.hasProperty("sign")) {
android {
signingConfigs {
create("release") {
storeFile = file(System.getenv("RELEASE_STORE_FILE"))
storePassword = System.getenv("RELEASE_STORE_PASSWORD")
keyAlias = System.getenv("RELEASE_KEY_ALIAS")
keyPassword = System.getenv("RELEASE_KEY_PASSWORD")
}
}
}
android.buildTypes.getByName("release").signingConfig = android.signingConfigs.getByName("release")
}

dependencies {
val coilVersion = "2.6.0"
val markwonVersion = "4.6.2"
val tinylogVersion = "2.7.0"
implementation(project(":client"))
implementation("androidx.appcompat:appcompat:1.7.0")
implementation("androidx.core:core-splashscreen:1.0.1")
implementation("com.google.android.material:material:1.12.0")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.swiperefreshlayout:swiperefreshlayout:1.1.0")
implementation("androidx.vectordrawable:vectordrawable:1.2.0")
implementation("androidx.preference:preference-ktx:1.2.1")

implementation("com.github.cyb3rko:QuickPermissions-Kotlin:1.1.3")
implementation("io.coil-kt:coil:$coilVersion")
implementation("io.coil-kt:coil-svg:$coilVersion")
implementation("io.noties.markwon:core:$markwonVersion")
implementation("io.noties.markwon:image-coil:$markwonVersion")
implementation("io.noties.markwon:image:$markwonVersion")
implementation("io.noties.markwon:ext-tables:$markwonVersion")
implementation("io.noties.markwon:ext-strikethrough:$markwonVersion")

implementation("org.tinylog:tinylog-api-kotlin:$tinylogVersion")
implementation("org.tinylog:tinylog-impl:$tinylogVersion")

implementation("com.google.code.gson:gson:2.11.0")
implementation("com.squareup.retrofit2:retrofit:2.11.0")
implementation("org.threeten:threetenbp:1.7.0")
}

configurations {
configureEach {
exclude(group = "androidx.lifecycle", module = "lifecycle-viewmodel-ktx")
}
}
2 changes: 1 addition & 1 deletion app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
# proguardFiles setting in build.gradle.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
Expand Down
48 changes: 0 additions & 48 deletions build.gradle

This file was deleted.

47 changes: 47 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
import com.android.build.gradle.internal.tasks.factory.dependsOn
import java.io.File
import java.net.URI

plugins {
id("com.android.application") version "8.5.0" apply false
id("org.jetbrains.kotlin.android") version "2.0.0" apply false
id("org.hidetake.swagger.generator") version "2.19.2"
}

fun download(url: String, filename: String) {
URI(url).toURL().openConnection().let { conn ->
File(filename).outputStream().use { out ->
conn.inputStream.use { inp ->
inp.copyTo(out)
}
}
}
}

tasks.register("downloadSpec") {
val gotifyVersion = "master"
val url = "https://raw.githubusercontent.com/gotify/server/$gotifyVersion/docs/spec.json"
val buildDir = project.layout.buildDirectory.get()
val specLocation = buildDir.file("gotify.spec.json").asFile.absolutePath
doFirst {
buildDir.asFile.mkdirs()
download(url, specLocation)
}
}

swaggerSources {
create("swagger") {
setInputFile(file("$projectDir/build/gotify.spec.json"))
code.apply {
language = "java"
configFile = file("$projectDir/swagger.config.json")
outputDir = file("$projectDir/client")
}
}
}

dependencies {
"swaggerCodegen"("io.swagger.codegen.v3:swagger-codegen-cli:3.0.63")
}

tasks.named("generateSwaggerCode").dependsOn("downloadSpec")
8 changes: 5 additions & 3 deletions settings.gradle → settings.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@file:Suppress("UnstableApiUsage")

pluginManagement {
repositories {
gradlePluginPortal()
Expand All @@ -9,9 +11,9 @@ dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven { url "https://jitpack.io/" }
maven { url = uri("https://jitpack.io/") }
}
}
rootProject.name = "Gotify Android"
include ':app'
include ':client'
include(":app")
include(":client")

0 comments on commit 00c3729

Please sign in to comment.