In preparation for publishing the source publicly: without a license file the code would default to all-rights-reserved, so nobody could legally use or modify it. Add the GPL v3 text, a license section in the README, and REUSE-style SPDX headers in every Kotlin source and Gradle build script so per-file licensing is machine-readable. The bundled JetBrains Mono font stays under its own SIL Open Font License 1.1, whose text must accompany redistribution. OFL.txt lives at the repo root rather than next to the fonts because aapt rejects non-font files in res/font.
87 lines
2.5 KiB
Kotlin
87 lines
2.5 KiB
Kotlin
// SPDX-FileCopyrightText: 2026 Jeena <hello@jeena.net>
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
import java.util.Properties
|
|
|
|
plugins {
|
|
alias(libs.plugins.android.application)
|
|
alias(libs.plugins.kotlin.android)
|
|
alias(libs.plugins.kotlin.compose)
|
|
}
|
|
|
|
val keystorePropsFile = rootProject.file("keystore.properties")
|
|
val keystoreProps = Properties().apply {
|
|
if (keystorePropsFile.exists()) load(keystorePropsFile.inputStream())
|
|
}
|
|
|
|
android {
|
|
namespace = "net.jeena.pacer"
|
|
compileSdk = 36
|
|
buildToolsVersion = "36.1.0"
|
|
|
|
defaultConfig {
|
|
applicationId = "net.jeena.pacer"
|
|
minSdk = 24
|
|
targetSdk = 36
|
|
versionCode = 1
|
|
versionName = "1.0"
|
|
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
signingConfigs {
|
|
create("release") {
|
|
if (keystorePropsFile.exists()) {
|
|
storeFile = file(keystoreProps["storeFile"] as String)
|
|
storePassword = keystoreProps["storePassword"] as String
|
|
keyAlias = keystoreProps["keyAlias"] as String
|
|
keyPassword = keystoreProps["keyPassword"] as String
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
isMinifyEnabled = true
|
|
signingConfig = signingConfigs.getByName("release")
|
|
proguardFiles(
|
|
getDefaultProguardFile("proguard-android-optimize.txt"),
|
|
"proguard-rules.pro"
|
|
)
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility = JavaVersion.VERSION_17
|
|
targetCompatibility = JavaVersion.VERSION_17
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = "17"
|
|
}
|
|
|
|
buildFeatures {
|
|
compose = true
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(libs.androidx.core.ktx)
|
|
implementation(libs.androidx.lifecycle.runtime.ktx)
|
|
implementation(libs.androidx.activity.compose)
|
|
implementation(platform(libs.androidx.compose.bom))
|
|
implementation(libs.androidx.ui)
|
|
implementation(libs.androidx.ui.graphics)
|
|
implementation(libs.androidx.ui.tooling.preview)
|
|
implementation(libs.androidx.material3)
|
|
implementation(libs.lifecycle.viewmodel.compose)
|
|
|
|
testImplementation(libs.junit)
|
|
testImplementation(libs.mockito.kotlin)
|
|
androidTestImplementation(libs.androidx.junit)
|
|
androidTestImplementation(libs.androidx.espresso.core)
|
|
androidTestImplementation(platform(libs.androidx.compose.bom))
|
|
androidTestImplementation(libs.androidx.ui.test.junit4)
|
|
debugImplementation(libs.androidx.ui.tooling)
|
|
debugImplementation(libs.androidx.ui.test.manifest)
|
|
}
|