From 7f18d147c182315c9371db3e282a341ab3ab8e63 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 20 May 2021 11:52:55 +0300 Subject: [PATCH] [FIR] Introduce new module for jvm specific checkers --- .../checkers/checkers.jvm/build.gradle.kts | 39 +++++++++++++++++++ compiler/fir/entrypoint/build.gradle.kts | 1 + idea/idea-frontend-fir/build.gradle.kts | 1 + .../idea-fir-low-level-api/build.gradle.kts | 1 + settings.gradle | 1 + 5 files changed, 43 insertions(+) create mode 100644 compiler/fir/checkers/checkers.jvm/build.gradle.kts diff --git a/compiler/fir/checkers/checkers.jvm/build.gradle.kts b/compiler/fir/checkers/checkers.jvm/build.gradle.kts new file mode 100644 index 00000000000..dac39603fe1 --- /dev/null +++ b/compiler/fir/checkers/checkers.jvm/build.gradle.kts @@ -0,0 +1,39 @@ +import org.jetbrains.kotlin.ideaExt.idea + +plugins { + kotlin("jvm") + id("jps-compatible") +} + +dependencies { + api(project(":compiler:fir:checkers")) + api(project(":compiler:fir:java")) + + /* + * We can't remove this dependency until we use + * diagnostics framework from FE 1.0 + */ + implementation(project(":compiler:frontend")) + implementation(project(":compiler:psi")) + + compileOnly(project(":kotlin-reflect-api")) + compileOnly(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) } +} + +sourceSets { + "main" { + projectDefault() + this.java.srcDir("gen") + } + "test" { none() } +} + +val compileKotlin by tasks +compileKotlin.dependsOn(":compiler:fir:checkers:generateCheckersComponents") + +if (kotlinBuildProperties.isInJpsBuildIdeaSync) { + apply(plugin = "idea") + idea { + this.module.generatedSourceDirs.add(projectDir.resolve("gen")) + } +} diff --git a/compiler/fir/entrypoint/build.gradle.kts b/compiler/fir/entrypoint/build.gradle.kts index 7ee11956ab9..6718b0fb8ab 100644 --- a/compiler/fir/entrypoint/build.gradle.kts +++ b/compiler/fir/entrypoint/build.gradle.kts @@ -11,6 +11,7 @@ dependencies { api(project(":compiler:fir:raw-fir:light-tree2fir")) api(project(":compiler:fir:fir2ir")) api(project(":compiler:fir:checkers")) + api(project(":compiler:fir:checkers:checkers.jvm")) // TODO: do not use GeneratorExtensions in `FirAnalyzerFacade.convertToIr`, and make this an 'implementation' dependency. api(project(":compiler:ir.psi2ir")) diff --git a/idea/idea-frontend-fir/build.gradle.kts b/idea/idea-frontend-fir/build.gradle.kts index e9e5bd12ee0..cde3f77b190 100644 --- a/idea/idea-frontend-fir/build.gradle.kts +++ b/idea/idea-frontend-fir/build.gradle.kts @@ -14,6 +14,7 @@ dependencies { compile(project(":compiler:ir.tree")) compile(project(":compiler:fir:resolve")) compile(project(":compiler:fir:checkers")) + compile(project(":compiler:fir:checkers:checkers.jvm")) compile(project(":compiler:fir:java")) compile(project(":compiler:fir:jvm")) compile(project(":idea:idea-frontend-fir:idea-fir-low-level-api")) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/build.gradle.kts b/idea/idea-frontend-fir/idea-fir-low-level-api/build.gradle.kts index 861016ce4f0..a76bdb78771 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/build.gradle.kts +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/build.gradle.kts @@ -13,6 +13,7 @@ dependencies { compile(project(":compiler:ir.serialization.common")) compile(project(":compiler:fir:resolve")) compile(project(":compiler:fir:checkers")) + compile(project(":compiler:fir:checkers:checkers.jvm")) compile(project(":compiler:fir:java")) compile(project(":compiler:fir:jvm")) implementation(project(":compiler:ir.psi2ir")) diff --git a/settings.gradle b/settings.gradle index 1239032892a..7e71be0fc59 100644 --- a/settings.gradle +++ b/settings.gradle @@ -277,6 +277,7 @@ include ":compiler:fir:cones", ":compiler:fir:dump", ":compiler:fir:jvm", ":compiler:fir:checkers", + ":compiler:fir:checkers:checkers.jvm", ":compiler:fir:checkers:checkers-component-generator", ":compiler:fir:entrypoint", ":compiler:fir:analysis-tests",