Files
APKDownloader/apk-downloader/build.gradle.kts
Nathan Lecoanet 334fd2fffd Add apk downloader project based on aurora's core
Docker all in one
2026-07-07 16:25:44 +02:00

80 lines
2.4 KiB
Kotlin

/*
* SPDX-FileCopyrightText: 2026 Aurora OSS
* SPDX-License-Identifier: GPL-3.0-or-later
*/
import org.gradle.api.file.DuplicatesStrategy
import org.gradle.api.attributes.Category
import org.gradle.api.attributes.Usage
import org.gradle.api.attributes.java.TargetJvmEnvironment
import org.gradle.api.tasks.JavaExec
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
alias(libs.plugins.jetbrains.kotlin.jvm)
alias(libs.plugins.jetbrains.kotlin.serialization)
application
}
kotlin {
jvmToolchain(17)
}
application {
mainClass.set("com.aurora.apkdownloader.MainKt")
}
val gplayapiAar by configurations.creating {
isCanBeConsumed = false
isCanBeResolved = true
attributes {
attribute(Category.CATEGORY_ATTRIBUTE, objects.named(Category.LIBRARY))
attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME))
attribute(TargetJvmEnvironment.TARGET_JVM_ENVIRONMENT_ATTRIBUTE, objects.named("android"))
attribute(KotlinPlatformType.attribute, KotlinPlatformType.androidJvm)
}
}
val extractedGplayApiJar = layout.buildDirectory.file("gplayapi/gplayapi.jar")
val extractGplayApiJar by tasks.registering(Copy::class) {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
from({ gplayapiAar.files.map { zipTree(it) } }) {
include("classes.jar")
rename { "gplayapi.jar" }
}
into(layout.buildDirectory.dir("gplayapi"))
}
dependencies {
gplayapiAar(libs.auroraoss.gplayapi)
implementation(files(extractedGplayApiJar))
implementation("com.google.code.gson:gson:2.14.0")
implementation(libs.google.protobuf.javalite)
implementation("org.jetbrains.kotlin:kotlin-parcelize-runtime:${libs.versions.kotlin.get()}")
implementation(libs.kotlinx.coroutines.core)
implementation(libs.kotlinx.serialization.json)
implementation(libs.squareup.okhttp)
testImplementation(libs.junit)
testImplementation(libs.google.truth)
}
tasks.withType<KotlinCompile>().configureEach {
dependsOn(extractGplayApiJar)
}
tasks.withType<JavaExec>().configureEach {
workingDir = rootProject.projectDir
}
tasks.named<JavaExec>("run") {
isIgnoreExitValue = true
doLast {
val exitValue = executionResult.get().exitValue
if (exitValue != 0) {
logger.lifecycle("apk-downloader exited with code $exitValue")
}
}
}