mirai/backend/mirai-console/build.gradle.kts

148 lines
4.1 KiB
Plaintext
Raw Normal View History

2020-05-10 14:22:33 +08:00
import upload.Bintray
2020-03-30 17:37:07 +08:00
import java.util.*
plugins {
2020-05-14 16:05:42 +08:00
id("kotlin")
2020-03-24 18:02:19 +08:00
kotlin("plugin.serialization")
id("java")
`maven-publish`
id("com.jfrog.bintray")
}
2020-03-06 17:39:53 +08:00
apply(plugin = "com.github.johnrengelman.shadow")
version = Versions.Mirai.console
description = "Console backend for mirai"
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
tasks.withType(JavaCompile::class.java) {
options.encoding = "UTF8"
}
2020-03-05 09:45:54 +08:00
kotlin {
sourceSets.all {
target.compilations.all {
kotlinOptions {
freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=enable"
jvmTarget = "1.8"
}
}
languageSettings.apply {
enableLanguageFeature("InlineClasses")
progressiveMode = true
useExperimentalAnnotation("kotlin.Experimental")
useExperimentalAnnotation("kotlin.OptIn")
useExperimentalAnnotation("net.mamoe.mirai.utils.MiraiInternalAPI")
useExperimentalAnnotation("net.mamoe.mirai.utils.MiraiExperimentalAPI")
useExperimentalAnnotation("kotlin.ExperimentalUnsignedTypes")
useExperimentalAnnotation("kotlin.experimental.ExperimentalTypeInference")
useExperimentalAnnotation("kotlin.contracts.ExperimentalContracts")
}
}
2020-03-05 09:45:54 +08:00
sourceSets {
getByName("test") {
languageSettings.apply {
languageVersion = "1.4"
}
2020-03-05 09:45:54 +08:00
}
}
}
2020-05-14 16:05:42 +08:00
dependencies {
2020-05-14 16:05:42 +08:00
compileAndRuntime("net.mamoe:mirai-core:${Versions.Mirai.core}")
compileAndRuntime(kotlin("stdlib"))
2020-03-04 22:15:46 +08:00
2020-05-22 19:33:46 +08:00
api("net.mamoe.yamlkt:yamlkt:0.3.1")
2020-05-11 13:22:09 +08:00
api("org.jetbrains:annotations:19.0.0")
2020-05-23 18:53:54 +08:00
api(kotlinx("coroutines-jdk8", Versions.Kotlin.coroutines))
2020-05-11 13:22:09 +08:00
2020-04-12 20:06:04 +08:00
testApi("net.mamoe:mirai-core-qqandroid:${Versions.Mirai.core}")
testApi(kotlin("stdlib-jdk8"))
testApi(kotlin("test"))
testApi(kotlin("test-junit5"))
2020-06-17 13:25:28 +08:00
testImplementation("org.junit.jupiter:junit-jupiter-api:5.2.0")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.2.0")
}
tasks {
"test"(Test::class) {
useJUnitPlatform()
}
}
// region PUBLISHING
2020-05-10 14:22:33 +08:00
tasks.register("ensureBintrayAvailable") {
doLast {
if (!Bintray.isBintrayAvailable(project)) {
error("bintray isn't available. ")
}
}
}
if (Bintray.isBintrayAvailable(project)) {
bintray {
val keyProps = Properties()
val keyFile = file("../keys.properties")
if (keyFile.exists()) keyFile.inputStream().use { keyProps.load(it) }
if (keyFile.exists()) keyFile.inputStream().use { keyProps.load(it) }
user = Bintray.getUser(project)
key = Bintray.getKey(project)
setPublications("mavenJava")
setConfigurations("archives")
pkg.apply {
repo = "mirai"
name = "mirai-console"
setLicenses("AGPLv3")
publicDownloadNumbers = true
vcsUrl = "https://github.com/mamoe/mirai-console"
}
}
@Suppress("DEPRECATION")
val sourcesJar by tasks.registering(Jar::class) {
classifier = "sources"
from(sourceSets.main.get().allSource)
}
publishing {
/*
repositories {
maven {
// change to point to your repo, e.g. http://my.org/repo
url = uri("$buildDir/repo")
}
}*/
publications {
register("mavenJava", MavenPublication::class) {
from(components["java"])
groupId = rootProject.group.toString()
artifactId = "mirai-console"
version = version
pom.withXml {
val root = asNode()
root.appendNode("description", description)
root.appendNode("name", project.name)
root.appendNode("url", "https://github.com/mamoe/mirai")
root.children().last()
}
artifact(sourcesJar.get())
}
}
}
} else println("bintray isn't available. NO PUBLICATIONS WILL BE SET")
// endregion