80 lines
2.4 KiB
Kotlin
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")
|
|
}
|
|
}
|
|
}
|