Files
YukiHookAPI/yukihookapi-core/build.gradle.kts
fankesyooni fc2187ddc8 chore: migrate build script from groovy to kts
- using SweetDependency, SweetProperty
- using new maven publish function
- update gradle and dependencies
2023-09-21 03:13:14 +08:00

85 lines
2.7 KiB
Plaintext

plugins {
autowire(libs.plugins.android.library)
autowire(libs.plugins.kotlin.android)
autowire(libs.plugins.maven.publish)
}
android {
namespace = property.project.groupName
compileSdk = property.project.android.compileSdk
defaultConfig {
minSdk = property.project.android.minSdk
consumerProguardFiles("consumer-rules.pro")
}
buildTypes {
release {
isMinifyEnabled = false
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = "17"
freeCompilerArgs = listOf(
"-opt-in=${property.project.yukihookapi.core.kotlin.optIn.yukiPrivateApi}",
"-opt-in=${property.project.yukihookapi.core.kotlin.optIn.yukiGenerateApi}",
"-Xno-param-assertions",
"-Xno-call-assertions",
"-Xno-receiver-assertions"
)
}
lint { checkReleaseBuilds = false }
}
kotlin {
sourceSets {
all {
languageSettings {
optIn(property.project.yukihookapi.core.kotlin.optIn.yukiPrivateApi)
optIn(property.project.yukihookapi.core.kotlin.optIn.yukiGenerateApi)
}
}
}
}
dependencies {
compileOnly(de.robv.android.xposed.api)
compileOnly(projects.yukihookapiStub)
implementation(androidx.core.core.ktx)
implementation(androidx.appcompat.appcompat)
implementation(androidx.preference.preference.ktx)
}
mavenPublishing {
coordinates(property.project.groupName, property.project.yukihookapi.core.moduleName, property.project.yukihookapi.core.version)
pom {
name = property.project.name
description = property.project.description
url = property.project.url
licenses {
license {
name = property.project.licence.name
url = property.project.licence.url
distribution = property.project.licence.url
}
}
developers {
developer {
id = property.project.developer.id
name = property.project.developer.name
email = property.project.developer.email
}
}
scm {
url = property.maven.publish.scm.url
connection = property.maven.publish.scm.connection
developerConnection = property.maven.publish.scm.developerConnection
}
}
publishToMavenCentral(com.vanniktech.maven.publish.SonatypeHost.S01)
signAllPublications()
}