1- import org.gradle.api.internal.HasConvention
2- import org.jetbrains.grammarkit.tasks.GenerateLexer
3- import org.jetbrains.grammarkit.tasks.GenerateParser
4- import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
1+ import org.jetbrains.grammarkit.tasks.GenerateLexerTask
2+ import org.jetbrains.grammarkit.tasks.GenerateParserTask
53import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
64
7- val ideaVersion = " 2018 .3.3 " // prop("ideaVersion")
5+ val ideaVersion = " 2021 .3.1 " // prop("ideaVersion")
86
9-
10- repositories {
11- mavenCentral()
12- maven(" https://dl.bintray.com/jetbrains/markdown" )
13- maven(" https://plugins.gradle.org/m2/" )
14- }
7+ group = " com.lfrobeen"
8+ version = " 2.0.0"
159
1610plugins {
1711 idea
18- kotlin(" jvm" ) version " 1.3.30 "
19- id(" org.jetbrains.intellij" ) version " 0.4.7 "
20- id(" org.jetbrains.grammarkit" ) version " 2018.3 "
12+ kotlin(" jvm" ) version " 1.6.20 "
13+ id(" org.jetbrains.intellij" ) version " 1.5.2 "
14+ id(" org.jetbrains.grammarkit" ) version " 2021.2.2 "
2115 id(" de.undercouch.download" ) version " 3.4.3"
2216 id(" net.saliman.properties" ) version " 1.4.6"
2317 id(" com.palantir.git-version" ) version " 0.11.0"
2418}
2519
26- idea {
27- module {
28- generatedSourceDirs.add(file(" src/main/gen" ))
29- }
30- }
3120
3221apply {
3322 plugin(" idea" )
@@ -36,82 +25,85 @@ apply {
3625 plugin(" org.jetbrains.intellij" )
3726}
3827
39- group = " com.lfrobeen"
40- version = " 1.1.0"
28+ repositories {
29+ mavenCentral()
30+ maven(" https://dl.bintray.com/jetbrains/markdown" )
31+ maven(" https://plugins.gradle.org/m2/" )
32+ }
33+
34+ idea {
35+ module {
36+ generatedSourceDirs.add(file(" src/main/gen" ))
37+ }
38+ }
4139
4240intellij {
43- pluginName = " intellij-datalog"
41+ pluginName.set(" intellij-datalog" )
42+ version.set(ideaVersion)
43+ updateSinceUntilBuild.set(false )
44+ instrumentCode.set(false )
4445
45- version = ideaVersion
46- updateSinceUntilBuild = false
47- instrumentCode = false
46+ // https://plugins.jetbrains.com/docs/intellij/annotator.html#required-project-configuration-changes
47+ // plugins.set(listOf("com.intellij.java"))
4848}
4949
50-
51- val generateLexer = task<GenerateLexer >(" generateLexer" ) {
52- source = " src/main/grammars/datalog.flex"
53- targetDir = " src/main/gen/com/lfrobeen/datalog/lang/lexer"
54- targetClass = " DatalogLexer"
55- purgeOldFiles = true
50+ configure<JavaPluginExtension > {
51+ sourceCompatibility = JavaVersion .VERSION_11
52+ targetCompatibility = JavaVersion .VERSION_11
5653}
5754
58- val generateParser = task<GenerateParser >(" generateParser" ) {
59- source = " src/main/grammars/datalog.bnf"
60- targetRoot = " src/main/gen"
61- pathToParser = " /datalog/lang/parser/DatalogParser.java"
62- pathToPsiRoot = " /datalog/lang/psi"
63- purgeOldFiles = true
55+ sourceSets {
56+ main {
57+ java.srcDirs(" src/main/gen" )
58+ resources.srcDirs(" src/main/resources" )
59+ }
60+ test {
61+ resources.srcDirs(" src/test/resources" )
62+ }
6463}
6564
66- tasks.withType<KotlinCompile > {
67- kotlinOptions {
68- jvmTarget = " 1.8"
69- languageVersion = " 1.3"
70- apiVersion = " 1.3"
71- freeCompilerArgs = listOf (" -Xjvm-default=enable" )
65+ kotlin {
66+ sourceSets {
67+ main {
68+ kotlin.srcDirs(" src/main/kotlin" )
69+ }
70+ test {
71+ kotlin.srcDirs(" src/test/kotlin" )
72+ }
7273 }
74+ }
7375
74- dependsOn(
75- generateLexer,
76- generateParser
77- )
76+ val generateDatalogLexer = task<GenerateLexerTask >(" generateDatalogLexer" ) {
77+ source.set(" src/main/grammars/datalog.flex" )
78+ targetDir.set(" src/main/gen/com/lfrobeen/datalog/lang/lexer" )
79+ targetClass.set(" DatalogLexer" )
80+ purgeOldFiles.set(true )
7881}
7982
80- configure<JavaPluginConvention > {
81- sourceCompatibility = JavaVersion .VERSION_1_8
82- targetCompatibility = JavaVersion .VERSION_1_8
83+ val generateDatalogParser = task<GenerateParserTask >(" generateDatalogParser" ) {
84+ source.set(" src/main/grammars/datalog.bnf" )
85+ targetRoot.set(" src/main/gen" )
86+ pathToParser.set(" /datalog/lang/parser/DatalogParser.java" )
87+ pathToPsiRoot.set(" /datalog/lang/psi" )
88+ purgeOldFiles.set(true )
8389}
8490
8591
8692tasks.withType<KotlinCompile > {
8793 kotlinOptions {
88- jvmTarget = " 1.8 "
89- languageVersion = " 1.3 "
90- apiVersion = " 1.3 "
91- freeCompilerArgs = listOf (" -Xjvm-default=enable " )
94+ jvmTarget = " 11 "
95+ languageVersion = " 1.6 "
96+ apiVersion = " 1.5 "
97+ freeCompilerArgs = listOf (" -Xjvm-default=all " )
9298 }
93- }
9499
95- configure<JavaPluginConvention > {
96- sourceCompatibility = JavaVersion .VERSION_1_8
97- targetCompatibility = JavaVersion .VERSION_1_8
100+ dependsOn(
101+ generateDatalogLexer,
102+ generateDatalogParser
103+ )
98104}
99105
100- sourceSets {
101- main {
102- java.srcDirs(" src/main/gen" )
103- kotlin.srcDirs(" src/main/kotlin" )
104- resources.srcDirs(" src/main/resources" )
105- }
106- test {
107- kotlin.srcDirs(" src/test/kotlin" )
108- resources.srcDirs(" src/test/resources" )
109- }
110- }
111106
112- val SourceSet .kotlin: SourceDirectorySet
113- get() =
114- (this as HasConvention )
115- .convention
116- .getPlugin(KotlinSourceSet ::class .java)
117- .kotlin
107+ tasks.withType<Copy > {
108+ duplicatesStrategy = DuplicatesStrategy .EXCLUDE
109+ }
0 commit comments