build.gradle.kts 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. @file:Suppress("UnusedImport")
  2. plugins {
  3. kotlin("jvm")
  4. id("java")
  5. `maven-publish`
  6. id("com.jfrog.bintray")
  7. id("org.jetbrains.intellij") version "0.4.16"
  8. }
  9. repositories {
  10. maven("http://maven.aliyun.com/nexus/content/groups/public/")
  11. }
  12. version = Versions.console
  13. description = "IntelliJ plugin for Mirai Console"
  14. java {
  15. sourceCompatibility = JavaVersion.VERSION_1_8
  16. targetCompatibility = JavaVersion.VERSION_1_8
  17. }
  18. tasks.withType(JavaCompile::class.java) {
  19. options.encoding = "UTF8"
  20. }
  21. // See https://github.com/JetBrains/gradle-intellij-plugin/
  22. intellij {
  23. version = "2020.2.1"
  24. isDownloadSources = true
  25. updateSinceUntilBuild = false
  26. setPlugins(
  27. "org.jetbrains.kotlin:1.4.10-release-IJ2020.2-1@staging"
  28. )
  29. }
  30. tasks.getByName("publishPlugin", org.jetbrains.intellij.tasks.PublishTask::class) {
  31. val pluginKey = project.findProperty("jetbrains.hub.key")?.toString()
  32. if (pluginKey != null) {
  33. logger.info("Found jetbrains.hub.key")
  34. setToken(pluginKey)
  35. } else {
  36. logger.info("jetbrains.hub.key not found")
  37. }
  38. }
  39. tasks.withType<org.jetbrains.intellij.tasks.PatchPluginXmlTask> {
  40. sinceBuild("193.*")
  41. untilBuild("205.*")
  42. pluginDescription("""
  43. Plugin development support for <a href='https://github.com/mamoe/mirai-console'>Mirai Conosle</a>
  44. <h3>Features</h3>
  45. <ul>
  46. <li>Inspections for plugin properties, for example, checking PluginDescription.</li>
  47. <li>Inspections for illegal calls.</li>
  48. <li>Intentions for resolving serialization problems.</li>
  49. </ul>
  50. """.trimIndent())
  51. changeNotes("""
  52. Initial release
  53. """.trimIndent())
  54. }
  55. kotlin {
  56. sourceSets.all {
  57. target.compilations.all {
  58. kotlinOptions {
  59. jvmTarget = "1.8"
  60. freeCompilerArgs = freeCompilerArgs + "-Xjvm-default=all"
  61. //useIR = true
  62. }
  63. }
  64. languageSettings.apply {
  65. progressiveMode = true
  66. useExperimentalAnnotation("kotlin.Experimental")
  67. useExperimentalAnnotation("kotlin.RequiresOptIn")
  68. useExperimentalAnnotation("net.mamoe.mirai.utils.MiraiInternalAPI")
  69. useExperimentalAnnotation("net.mamoe.mirai.utils.MiraiExperimentalAPI")
  70. useExperimentalAnnotation("net.mamoe.mirai.console.ConsoleFrontEndImplementation")
  71. useExperimentalAnnotation("net.mamoe.mirai.console.util.ConsoleExperimentalApi")
  72. useExperimentalAnnotation("kotlin.ExperimentalUnsignedTypes")
  73. useExperimentalAnnotation("kotlin.experimental.ExperimentalTypeInference")
  74. useExperimentalAnnotation("kotlin.contracts.ExperimentalContracts")
  75. useExperimentalAnnotation("kotlinx.serialization.ExperimentalSerializationApi")
  76. useExperimentalAnnotation("net.mamoe.mirai.console.util.ConsoleInternalApi")
  77. }
  78. }
  79. }
  80. dependencies {
  81. api("org.jetbrains:annotations:19.0.0")
  82. api(kotlinx("coroutines-jdk8", Versions.coroutines))
  83. api(project(":mirai-console-compiler-common"))
  84. compileOnly("org.jetbrains.kotlin:kotlin-compiler:${Versions.kotlinCompiler}")
  85. compileOnly("org.jetbrains.kotlin:kotlin-compiler:${Versions.kotlinCompiler}")
  86. compileOnly(files("libs/ide-common.jar"))
  87. testApi(kotlin("test"))
  88. testApi(kotlin("test-junit5"))
  89. testImplementation("org.junit.jupiter:junit-jupiter-api:5.2.0")
  90. testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.2.0")
  91. }
  92. tasks {
  93. "test"(Test::class) {
  94. useJUnitPlatform()
  95. }
  96. }
  97. // setupPublishing("mirai-console-intellij")