blob: 25f6bafd0aa1e49f43ac7f71f16e00df935b2fe8 [file] [edit]
val descriptorsCompilerModules = arrayOf(
":core:descriptors",
).also { extra["descriptorsCompilerModules"] = it }
/**
* Common modules, used by K1 frontend, K2 frontend, backends, AA and CLI
*/
val commonCompilerModules = descriptorsCompilerModules + arrayOf(
":analysis:light-classes-base",
":compiler:psi:psi-api",
":compiler:psi:psi-impl",
":compiler:psi:psi-utils",
":compiler:psi:psi-frontend-utils",
":compiler:psi:parser",
":compiler:frontend.common-psi",
":compiler:frontend.common",
":compiler:util",
":compiler:config",
":compiler:config.jvm",
":compiler:serialization.common",
":compiler:compiler.version",
":compiler:resolution.common",
":compiler:resolution.common.jvm",
":compiler:backend.common.jvm",
":compiler:plugin-api",
":core:metadata",
":core:metadata.jvm",
":core:deserialization.common",
":core:deserialization.common.jvm",
":core:compiler.common",
":core:compiler.common.jvm",
":core:compiler.common.js",
":core:compiler.common.native",
":core:compiler.common.wasm",
":core:compiler.common.web",
":core:util.runtime",
":core:names",
":core:language.model",
":core:language.targets",
":core:language.targets.jvm",
":core:language.version-settings",
":core:reflection.common.jvm",
":compiler:frontend.common.jvm",
":kotlin-util-io",
":kotlin-util-klib",
":kotlin-util-klib-abi",
":kotlin-util-klib-metadata",
":compiler:build-tools:kotlin-build-statistics",
":js:js.config",
":js:js.frontend.common",
":js:js.ast", // used by js fir checkers and js backend
":wasm:wasm.config",
":native:base",
":native:native.config",
":native:kotlin-native-utils",
).also { extra["commonCompilerModules"] = it }
/**
* Modules of K2 (FIR) frontend
*/
val firCompilerModules = arrayOf(
":compiler:fir:cones",
":compiler:fir:providers",
":compiler:fir:semantics",
":compiler:fir:resolve",
":compiler:fir:fir-serialization",
":compiler:fir:fir-deserialization",
":compiler:fir:plugin-utils",
":compiler:fir:tree",
":compiler:fir:fir-jvm",
":compiler:fir:fir-js",
":compiler:fir:fir-native",
":compiler:fir:raw-fir:raw-fir.common",
":compiler:fir:raw-fir:psi2fir",
":compiler:fir:raw-fir:light-tree2fir",
":compiler:fir:checkers",
":compiler:fir:checkers:checkers.jvm",
":compiler:fir:checkers:checkers.js",
":compiler:fir:checkers:checkers.native",
":compiler:fir:checkers:checkers.wasm",
":compiler:fir:checkers:checkers.web.common",
":compiler:fir:diagnostic-renderers",
":compiler:fir:entrypoint", // TODO should not be in core modules but FIR IDE uses DependencyListForCliModule from this module
":compiler:fir:fir2ir:jvm-backend", // TODO should not be in core modules but FIR IDE uses Fir2IrSignatureComposer from this module
":compiler:fir:fir2ir", // TODO should not be in core modules but FIR IDE uses Fir2IrSignatureComposer from this module
).also { extra["firCompilerModules"] = it }
/**
* Modules of K1 frontend
*/
val fe10CompilerModules = arrayOf(
":compiler",
":core:descriptors.runtime",
":core:descriptors.jvm",
":compiler:resolution",
":compiler:serialization",
":compiler:frontend",
":compiler:frontend.java",
":compiler:container",
":core:deserialization",
":compiler:frontend:cfg",
":compiler:ir.psi2ir",
":compiler:javac-wrapper",
":js:js.frontend",
":native:frontend.native",
":wasm:wasm.frontend",
).also { extra["fe10CompilerModules"] = it }
/**
* Modules of IR-based backends
*/
val irCompilerModules = arrayOf(
":compiler:ir.tree",
":compiler:ir.serialization.common",
":compiler:ir.backend.common",
":compiler:ir.actualization",
":compiler:ir.interpreter",
":compiler:ir.inline",
":compiler:ir.validation",
).also { extra["irCompilerModules"] = it }
/**
* Modules of JVM backend
*/
val jvmCompilerModules = arrayOf(
":compiler:backend.common.jvm",
":compiler:backend",
":compiler:backend.jvm",
":compiler:backend.jvm.lower",
":compiler:backend.jvm.codegen",
":compiler:backend.jvm.entrypoint",
":compiler:ir.serialization.jvm",
).also { extra["jvmCompilerModules"] = it }
/**
* Modules of JS backend
*/
val jsCompilerModules = arrayOf(
":compiler:backend.js",
":js:js.sourcemap",
":js:js.parser",
":js:js.translator",
":js:typescript-export-model",
":js:typescript-printer",
":compiler:ir.serialization.js",
).also { extra["jsCompilerModules"] = it }
/**
* Modules of Wasm backend
*/
val wasmCompilerModules = arrayOf(
":compiler:backend.wasm",
":wasm:wasm.ir",
).also { extra["wasmCompilerModules"] = it }
/**
* Modules of Native backend
*/
val nativeCompilerModules = arrayOf(
":compiler:ir.backend.native",
":compiler:ir.serialization.native",
":compiler:ir.objcinterop",
":native:binary-options",
).also { extra["nativeCompilerModules"] = it }
/**
* Modules of IR-based backends used in IDE
*/
val irCompilerModulesForIDE = arrayOf(
":compiler:ir.tree",
":compiler:ir.serialization.common",
":compiler:ir.serialization.jvm",
":compiler:ir.serialization.js", // used in IJ android plugin in `ComposeIrGenerationExtension`
":compiler:ir.objcinterop",
":compiler:ir.backend.common",
":compiler:ir.backend.native",
":compiler:ir.actualization",
":compiler:ir.interpreter",
":compiler:ir.inline",
":compiler:ir.validation",
).also { extra["irCompilerModulesForIDE"] = it }
val analysisApiSurfaceDependencies by extra {
listOf(
":core:names",
":core:language.model",
":core:language.targets",
":core:language.targets.jvm",
":core:language.version-settings",
":compiler:psi:psi-api",
)
}
val cliCompilerModules = arrayOf(
":compiler:arguments.common",
":compiler:cli-base",
":compiler:cli",
":compiler:cli-jvm",
":compiler:cli-js",
":compiler:cli-metadata",
":compiler:incremental-compilation-impl",
":kotlin-build-common",
).also { extra["cliCompilerModules"] = it }
val analysisApiSurfaceModules = arrayOf(
":analysis:analysis-api",
":analysis:analysis-api-standalone",
).also { extra["analysisApiSurfaceModules"] = it }
/**
* The array of Analysis API modules that aren't part of [commonCompilerModules] (e.g., `:compiler:psi:psi-api`).
* It only covers production modules and is used only as a part of [projectsDependingOnStableStdlib].
*/
val analysisApiModules = arrayOf(
*analysisApiSurfaceModules,
":analysis:analysis-api-fir",
":analysis:analysis-api-impl-base",
":analysis:analysis-api-platform-interface",
":analysis:analysis-api-standalone:analysis-api-fir-standalone-base",
":analysis:analysis-api-standalone:analysis-api-standalone-base",
":analysis:analysis-internal-utils",
":analysis:decompiled:decompiler-js",
":analysis:decompiled:decompiler-native",
":analysis:decompiled:decompiler-to-file-stubs",
":analysis:decompiled:decompiler-to-psi",
":analysis:decompiled:decompiler-to-stubs",
":analysis:decompiled:light-classes-for-decompiled",
":analysis:low-level-api-fir",
":analysis:stubs",
":analysis:symbol-light-classes",
).also { extra["analysisApiModules"] = it }
extra["compilerModules"] =
commonCompilerModules +
fe10CompilerModules +
firCompilerModules +
irCompilerModules +
jvmCompilerModules +
jsCompilerModules +
wasmCompilerModules +
nativeCompilerModules +
cliCompilerModules
val analysisApiArtifacts by extra {
listOf(
":prepare:analysis-api:kotlin-analysis-api",
":prepare:analysis-api:kotlin-analysis-api-surface",
":prepare:analysis-api:kotlin-analysis-api-platform-interface",
":prepare:analysis-api:kotlin-analysis-api-implementation",
":prepare:analysis-api:kotlin-analysis-api-intellij-api-surface-components",
":prepare:analysis-api:kotlin-analysis-api-intellij-implementation-components",
":prepare:analysis-api:kotlin-analysis-api-allopen-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-assignment-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-compose-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-dataframe-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-js-plain-objects-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-kotlinx-serialization-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-lombok-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-noarg-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-parcelize-compiler-plugin-support",
":prepare:analysis-api:kotlin-analysis-api-sam-with-receiver-compiler-plugin-support",
)
}
/**
* An array of projects used in the IntelliJ Kotlin Plugin.
*
* Experimental declarations from Kotlin stdlib cannot be used in those projects to avoid stdlib binary compatibility problems.
* See KT-62510 for details.
*/
val projectsDependingOnStableStdlib =
fe10CompilerModules +
commonCompilerModules +
firCompilerModules +
irCompilerModulesForIDE +
analysisApiArtifacts.toTypedArray() +
analysisApiModules +
cliCompilerModules +
jvmCompilerModules + // used by K1 plugin
arrayOf(
":native:binary-options",
":kotlin-allopen-compiler-plugin.cli",
":kotlin-allopen-compiler-plugin.common",
":kotlin-allopen-compiler-plugin.k2",
":kotlin-assignment-compiler-plugin.cli",
":kotlin-assignment-compiler-plugin.common",
":kotlin-assignment-compiler-plugin.k2",
":plugins:parcelize:parcelize-compiler:parcelize.backend",
":plugins:parcelize:parcelize-compiler:parcelize.cli",
":plugins:parcelize:parcelize-compiler:parcelize.common",
":plugins:parcelize:parcelize-compiler:parcelize.k2",
":plugins:parcelize:parcelize-runtime",
":plugins:compose-compiler-plugin:compiler-hosted",
":kotlin-sam-with-receiver-compiler-plugin.cli",
":kotlin-sam-with-receiver-compiler-plugin.common",
":kotlin-sam-with-receiver-compiler-plugin.k2",
":kotlinx-serialization-compiler-plugin.cli",
":kotlinx-serialization-compiler-plugin.common",
":kotlinx-serialization-compiler-plugin.k2",
":kotlinx-serialization-compiler-plugin.backend",
":plugins:js-plain-objects:compiler-plugin:js-plain-objects.cli",
":plugins:js-plain-objects:compiler-plugin:js-plain-objects.common",
":plugins:js-plain-objects:compiler-plugin:js-plain-objects.k2",
":plugins:js-plain-objects:compiler-plugin:js-plain-objects.backend",
":kotlin-lombok-compiler-plugin.cli",
":kotlin-lombok-compiler-plugin.k2",
":kotlin-noarg-compiler-plugin.cli",
":kotlin-noarg-compiler-plugin.common",
":kotlin-noarg-compiler-plugin.k2",
":kotlin-noarg-compiler-plugin.backend",
":kotlin-sam-with-receiver-compiler-plugin.cli",
":kotlin-sam-with-receiver-compiler-plugin.common",
":kotlin-sam-with-receiver-compiler-plugin.k2",
":kotlin-dataframe-compiler-plugin.cli",
":kotlin-dataframe-compiler-plugin.common",
":kotlin-dataframe-compiler-plugin.k2",
":kotlin-dataframe-compiler-plugin.backend",
":kotlin-compiler-runner-unshaded",
":kotlin-preloader",
":daemon-common",
":kotlin-daemon-client",
":kotlin-scripting-jvm",
":kotlin-scripting-compiler",
":kotlin-gradle-statistics",
":jps:jps-common",
":compiler:build-tools:kotlin-build-tools-api",
) +
arrayOf(
":compiler:ir.serialization.native",
":libraries:tools:analysis-api-based-klib-reader",
":native:base",
":native:objcexport-header-generator",
":native:objcexport-header-generator-analysis-api",
":native:objcexport-header-generator-k1",
":native:analysis-api-based-export-common",
) +
arrayOf(
":native:swift:sir",
":native:swift:sir-light-classes",
":native:swift:sir-printer",
":native:swift:sir-providers",
":native:swift:swift-export-ide",
) +
arrayOf(
":analysis:analysis-tools:deprecated-k1-frontend-internals-for-ide-generated",
)
extra["projectsDependingOnStableStdlib"] = projectsDependingOnStableStdlib
// They are embedded just because we don't publish those dependencies as separate Maven artifacts (yet)
extra["kotlinJpsPluginEmbeddedDependencies"] = listOf(
":compiler:cli-base",
":kotlin-build-tools-enum-compat",
":kotlin-compiler-runner-unshaded",
":daemon-common",
":core:names",
":core:language.model",
":core:language.targets",
":core:language.targets.jvm",
":core:language.version-settings",
":core:compiler.common",
":core:compiler.common.jvm",
":core:compiler.common.js",
":core:compiler.common.native",
":core:compiler.common.wasm",
":core:compiler.common.web",
":core:descriptors",
":core:descriptors.jvm",
":compiler:backend.common.jvm",
":core:deserialization",
":core:deserialization.common",
":core:deserialization.common.jvm",
":compiler:frontend.common.jvm",
":compiler:frontend.java",
":core:metadata",
":core:metadata.jvm",
":kotlin-preloader",
":compiler:util",
":compiler:config",
":compiler:config.jvm",
":js:js.config",
":wasm:wasm.config",
":native:native.config",
":core:util.runtime",
":compiler:compiler.version",
":compiler:build-tools:kotlin-build-statistics",
":kotlin-build-common",
":compiler:arguments.common",
)
extra["kotlinJpsPluginMavenDependencies"] = listOf(
":kotlin-daemon-client",
":kotlin-util-io",
":kotlin-util-klib",
":kotlin-util-klib-metadata",
":native:kotlin-native-utils",
":compiler:build-tools:kotlin-build-tools-api",
)
extra["compilerArtifactsForIde"] = listOfNotNull(
":prepare:ide-plugin-dependencies:allopen-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:compose-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:js-plain-objects-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:scripting-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:incremental-compilation-impl-tests-for-ide",
":prepare:ide-plugin-dependencies:js-ir-runtime-for-ide",
":prepare:ide-plugin-dependencies:kotlin-build-common-tests-for-ide",
":prepare:ide-plugin-dependencies:kotlin-compiler-cli-for-ide",
":prepare:ide-plugin-dependencies:kotlin-gradle-statistics-for-ide",
":prepare:ide-plugin-dependencies:kotlin-jps-common-for-ide",
":prepare:ide-plugin-dependencies:kotlin-jps-plugin-classpath",
":prepare:ide-plugin-dependencies:kotlin-jps-plugin-tests-for-ide",
":prepare:ide-plugin-dependencies:kotlin-jps-plugin-testdata-for-ide",
":prepare:ide-plugin-dependencies:kotlinx-serialization-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:noarg-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:sam-with-receiver-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:assignment-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:parcelize-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:lombok-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:kotlin-dataframe-compiler-plugin-for-ide",
":prepare:ide-plugin-dependencies:kotlin-objcexport-header-generator-for-ide",
":prepare:ide-plugin-dependencies:kotlin-swift-export-for-ide",
":prepare:ide-plugin-dependencies:kotlin-compiler-tests-for-ide",
":prepare:ide-plugin-dependencies:low-level-api-fir-for-ide",
":prepare:ide-plugin-dependencies:analysis-api-for-ide",
":prepare:ide-plugin-dependencies:analysis-api-impl-base-for-ide",
":prepare:ide-plugin-dependencies:analysis-api-k2-for-ide",
":prepare:ide-plugin-dependencies:analysis-api-fe10-for-ide",
":prepare:ide-plugin-dependencies:analysis-api-platform-interface-for-ide",
":prepare:ide-plugin-dependencies:symbol-light-classes-for-ide",
":prepare:ide-plugin-dependencies:analysis-api-standalone-for-ide",
":prepare:ide-plugin-dependencies:kotlin-compiler-ir-for-ide",
":prepare:ide-plugin-dependencies:kotlin-compiler-common-for-ide",
":prepare:ide-plugin-dependencies:kotlin-compiler-fe10-for-ide",
":prepare:ide-plugin-dependencies:kotlin-compiler-fir-for-ide",
":prepare:kotlin-jps-plugin",
":kotlin-script-runtime",
":kotlin-scripting-common",
":kotlin-scripting-dependencies",
":kotlin-scripting-jvm",
":kotlin-scripting-compiler",
":kotlin-scripting-compiler-impl",
":plugins:parcelize:parcelize-runtime",
":plugins:jvm-abi-gen",
":kotlin-stdlib-common",
":kotlin-stdlib",
":kotlin-test",
":kotlin-daemon",
":kotlin-compiler",
":kotlin-annotations-jvm",
":kotlin-stdlib-jdk7",
":kotlin-stdlib-jdk8",
":kotlin-reflect",
":kotlin-main-kts",
":kotlin-dom-api-compat",
":compiler:build-tools:kotlin-build-tools-api",
":compiler:build-tools:kotlin-build-tools-impl",
":compiler:build-tools:kotlin-build-tools-cri-impl",
)