// Copyright 2021 yuyezhong@gmail.com // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { kotlin("jvm") version "2.1.0" application } repositories { mavenCentral() } dependencies { constraints { implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") } //kotlin implementation(platform("org.jetbrains.kotlin:kotlin-bom")) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlin:kotlin-reflect") implementation("cc.cfig:io:0.2") implementation("ch.qos.logback:logback-classic:1.4.14") implementation("com.fasterxml.jackson.core:jackson-annotations:2.14.0") implementation("com.fasterxml.jackson.core:jackson-databind:2.14.0") implementation("com.google.guava:guava:33.0.0-jre") implementation("org.apache.commons:commons-exec:1.3") implementation("org.apache.commons:commons-compress:1.26.0") implementation("org.tukaani:xz:1.9") implementation("commons-codec:commons-codec:1.15") implementation("junit:junit:4.13.2") implementation("org.bouncycastle:bcprov-jdk15on:1.70") implementation("de.vandermeer:asciitable:0.3.2") implementation("com.github.freva:ascii-table:1.8.0") implementation("com.google.protobuf:protobuf-java:3.21.7") implementation(project(":helper")) testImplementation("org.jetbrains.kotlin:kotlin-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit") } application { mainClass.set("cfig.packable.PackableLauncherKt") } java { sourceCompatibility = JavaVersion.VERSION_11 targetCompatibility = JavaVersion.VERSION_11 } tasks.withType().all { kotlinOptions { freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn" freeCompilerArgs += "-opt-in=kotlin.ExperimentalUnsignedTypes" jvmTarget = "11" } } tasks { jar { manifest { attributes["Implementation-Title"] = "Android image reverse engineering toolkit" attributes["Main-Class"] = "cfig.packable.PackableLauncherKt" } from(configurations.runtimeClasspath.get().map({ if (it.isDirectory) it else zipTree(it) })) excludes.addAll(mutableSetOf("META-INF/*.RSA", "META-INF/*.SF", "META-INF/*.DSA")) duplicatesStrategy = DuplicatesStrategy.EXCLUDE dependsOn(":helper:jar") } test { testLogging { showExceptions = true showStackTraces = true } } }