-
Notifications
You must be signed in to change notification settings - Fork 39
/
build.gradle.kts
123 lines (96 loc) · 3.22 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
val semVer: String? by rootProject
val kotlinLoggingVersion: String? by rootProject
// === IDE settings ===
val projectType: String by rootProject
val communityEdition: String by rootProject
val ultimateEdition: String by rootProject
val ideType: String by rootProject
val androidStudioPath: String? by rootProject
val ideaVersion: String? by rootProject
val pycharmVersion: String? by rootProject
val golandVersion: String? by rootProject
val javaIde: String? by rootProject
val pythonIde: String? by rootProject
val jsIde: String? by rootProject
val goIde: String? by rootProject
val ideVersion = when(ideType) {
"PC", "PY" -> pycharmVersion
"GO" -> golandVersion
else -> ideaVersion
}
val pythonCommunityPluginVersion: String? by rootProject
val pythonUltimatePluginVersion: String? by rootProject
val goPluginVersion: String? by rootProject
// https://plugins.jetbrains.com/docs/intellij/android-studio.html#configuring-the-plugin-pluginxml-file
val ideTypeOrAndroidStudio = if (androidStudioPath == null) ideType else "IC"
project.tasks.asMap["runIde"]?.enabled = false
// === IDE settings ===
plugins {
id("org.jetbrains.intellij") version "1.13.1"
}
tasks {
compileKotlin {
kotlinOptions {
jvmTarget = "17"
freeCompilerArgs = freeCompilerArgs + listOf("-Xallow-result-return-type", "-Xsam-conversions=class")
allWarningsAsErrors = false
}
}
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
patchPluginXml {
sinceBuild.set("223")
untilBuild.set("232.*")
version.set(semVer)
}
}
dependencies {
implementation(group = "io.github.microutils", name = "kotlin-logging", version = kotlinLoggingVersion)
implementation(project(":utbot-ui-commons"))
//Family
implementation(project(":utbot-intellij-python"))
}
intellij {
val androidPlugins = listOf("org.jetbrains.android")
val jvmPlugins = mutableListOf(
"java"
)
val kotlinPlugins = listOf(
"org.jetbrains.kotlin"
)
androidStudioPath?.let { jvmPlugins += androidPlugins }
val pythonCommunityPlugins = listOf(
"PythonCore:${pythonCommunityPluginVersion}"
)
val pythonUltimatePlugins = listOf(
"Pythonid:${pythonUltimatePluginVersion}"
)
val jsPlugins = listOf(
"JavaScript"
)
val goPlugins = listOf(
"org.jetbrains.plugins.go:${goPluginVersion}"
)
val mavenUtilsPlugins = listOf(
"org.jetbrains.idea.maven"
)
val basePluginSet = jvmPlugins + kotlinPlugins + mavenUtilsPlugins + androidPlugins
plugins.set(
when (projectType) {
communityEdition -> basePluginSet + pythonCommunityPlugins
ultimateEdition -> when (ideType) {
"IC" -> basePluginSet + pythonCommunityPlugins
"IU" -> basePluginSet + pythonUltimatePlugins + jsPlugins + goPlugins
"PC" -> pythonCommunityPlugins
"PY" -> pythonUltimatePlugins + jsPlugins
"GO" -> goPlugins
else -> basePluginSet
}
else -> basePluginSet
}
)
version.set(ideVersion)
type.set(ideType)
}