fix compilation of strange modules in rules_kotlin

GitOrigin-RevId: 98fda8ea8d4a3938976a94801063639b9ce33fe5
This commit is contained in:
Vladimir Krivosheev
2025-05-18 15:07:29 +02:00
committed by intellij-monorepo-bot
parent 1ef488575c
commit e4d5ef3329
5 changed files with 148 additions and 104 deletions

View File

@@ -3,6 +3,12 @@ load("@rules_java//java:defs.bzl", "java_import")
load("@rules_kotlin//kotlin:core.bzl", _kt_kotlinc_options = "kt_kotlinc_options")
load("@rules_kotlin//kotlin:jvm.bzl", "kt_jvm_import")
load("//:jvm.bzl", "jvm_import", "jvm_provided_library", "kt_kotlinc_options")
load("//:rules/strange-module.bzl", "create_strange_kotlinc_options")
create_strange_kotlinc_options(
name = "strange-module-8",
jvm_target = 17,
)
label_flag(
name = "default-kotlinc-opts",

View File

@@ -1,20 +1,28 @@
load("@rules_jvm//:jvm.bzl", "jvm_library")
load("//:jvm.bzl", "jvm_library")
jvm_library(
name = "dependency-graph",
module_name = "intellij.platform.jps.build.dependencyGraph",
visibility = ["//visibility:public"],
srcs = glob(["src/**/*.kt", "src/**/*.java"], allow_empty = True),
deps = [
"//:annotations",
"//:hash4j",
"//:asm-all",
"//:kotlin-metadata",
"//:kotlin-stdlib",
"//:caffeine",
"//:intellij-deps-fastutil",
"//jps-builders-6:build-javac-rt", # for Iterator utils and utility data structures
]
name = "dependency-graph",
srcs = glob(
[
"src/**/*.kt",
"src/**/*.java",
],
allow_empty = True,
),
kotlinc_opts = "//:strange-module-8",
module_name = "intellij.platform.jps.build.dependencyGraph",
visibility = ["//visibility:public"],
# buildifier: leave-alone
deps = [
"//:annotations",
"//:hash4j",
"//:asm-all",
"//:kotlin-metadata",
"//:kotlin-stdlib",
"//:caffeine",
"//:intellij-deps-fastutil",
"//jps-builders-6:build-javac-rt", # for Iterator utils and utility data structures
],
)
### skip generation section `build intellij.platform.jps.build.dependencyGraph`
### skip generation section `build intellij.platform.jps.build.dependencyGraph`

View File

@@ -1,28 +1,36 @@
### auto-generated section `build intellij.platform.jps.build.javac.rt` start
load("@rules_jvm//:jvm.bzl", "jvm_library", "jvm_resources")
load("//:jvm.bzl", "jvm_library", "jvm_resources")
jvm_resources(
name = "build-javac-rt_resources",
files = glob(["resources/**/*"]),
strip_prefix = "resources"
name = "build-javac-rt_resources",
files = glob(["resources/**/*"]),
strip_prefix = "resources",
)
jvm_library(
name = "build-javac-rt",
module_name = "intellij.platform.jps.build.javac.rt",
visibility = ["//visibility:public"],
srcs = glob(["gen/**/*.kt", "gen/**/*.java", "src/**/*.kt", "src/**/*.java"], allow_empty = True),
#kotlinc_opts = "@community//:k8",
deps = [
"//:annotations",
"//:javax-annotation-api",
"//:jps-javac-extension",
"//:netty-common",
"//:netty-buffer",
"//:protobuf-java",
"//:netty-transport-jps",
"//:netty-codec-jps",
],
runtime_deps = [":build-javac-rt_resources"]
name = "build-javac-rt",
srcs = glob(
[
"gen/**/*.kt",
"gen/**/*.java",
"src/**/*.kt",
"src/**/*.java",
],
allow_empty = True,
),
kotlinc_opts = "//:strange-module-8",
module_name = "intellij.platform.jps.build.javac.rt",
visibility = ["//visibility:public"],
runtime_deps = [":build-javac-rt_resources"],
# buildifier: leave-alone
deps = [
"//:annotations",
"//:javax-annotation-api",
"//:jps-javac-extension",
"//:netty-common",
"//:netty-buffer",
"//:protobuf-java",
"//:netty-transport-jps",
"//:netty-codec-jps",
],
)
### skip generation section `build intellij.platform.jps.build.javac.rt`
### skip generation section `build intellij.platform.jps.build.javac.rt`

View File

@@ -1,27 +1,35 @@
load("@rules_jvm//:jvm.bzl", "jvm_import", "jvm_library", "jvm_test")
load("//:jvm.bzl", "jvm_import", "jvm_library", "jvm_test")
jvm_library(
name = "jvm-inc-builder",
module_name = "intellij.tools.build.bazel.jvmIncBuilder",
visibility = ["//visibility:public"],
srcs = glob(["src/**/*.kt", "src/**/*.java"], allow_empty = True),
deps = [
"//dependency-graph",
"//jps-builders-6:build-javac-rt",
"//:jps-javac-extension",
"//:annotations",
"//:h2-mvstore",
"//:hash4j",
"//:asm-all",
"//:kotlin-metadata",
"//:caffeine",
"//:intellij-deps-fastutil",
"//:qdox",
"//:jps", # for instrumentation-util and instrumenters
"//:kotlin-compose-compiler-plugin",
"//:kotlin-serialization-compiler-plugin",
"patched-kotlin-compiler-for-bazel",
]
name = "jvm-inc-builder",
srcs = glob(
[
"src/**/*.kt",
"src/**/*.java",
],
allow_empty = True,
),
kotlinc_opts = "//:strange-module-8",
module_name = "intellij.tools.build.bazel.jvmIncBuilder",
visibility = ["//visibility:public"],
# buildifier: leave-alone
deps = [
"//dependency-graph",
"//jps-builders-6:build-javac-rt",
"//:jps-javac-extension",
"//:annotations",
"//:h2-mvstore",
"//:hash4j",
"//:asm-all",
"//:kotlin-metadata",
"//:caffeine",
"//:intellij-deps-fastutil",
"//:qdox",
"//:jps", # for instrumentation-util and instrumenters
"//:kotlin-compose-compiler-plugin",
"//:kotlin-serialization-compiler-plugin",
"patched-kotlin-compiler-for-bazel",
],
)
# todo: temporarily commented
@@ -31,23 +39,23 @@ jvm_library(
# srcs = glob(["testSrc/**/*.kt", "testSrc/**/*.java"], allow_empty = True),
# associates = [":jvm-inc-builder"],
# deps = [
#"//java/compiler/instrumentation-util:java-compiler-instrumentationUtil",
#"//jps/jps-builders-6:build-javac-rt",
#"@rules_jvm//dependency-graph",
#"//platform/util-rt",
#"//platform/util-rt:util-rt_test_lib",
#"@lib//:jps-javac-extension",
#"@lib//:jetbrains-annotations",
#"@lib//:mvstore",
#"@lib//:hash4j",
#"@lib//:asm",
#"@lib//:kotlin-metadata",
#"@lib//:caffeine",
#"@lib//:fastutil-min",
#"@lib//:platform-jps-build-jvm_inc_builder-qdox-java-parser",
#"@lib//:junit3",
#"@lib//:kotlinc-kotlin-compiler-common-provided",
#"@lib//:kotlinc-kotlin-compiler-cli-provided",
#"//java/compiler/instrumentation-util:java-compiler-instrumentationUtil",
#"//jps/jps-builders-6:build-javac-rt",
#"@rules_jvm//dependency-graph",
#"//platform/util-rt",
#"//platform/util-rt:util-rt_test_lib",
#"@lib//:jps-javac-extension",
#"@lib//:jetbrains-annotations",
#"@lib//:mvstore",
#"@lib//:hash4j",
#"@lib//:asm",
#"@lib//:kotlin-metadata",
#"@lib//:caffeine",
#"@lib//:fastutil-min",
#"@lib//:platform-jps-build-jvm_inc_builder-qdox-java-parser",
#"@lib//:junit3",
#"@lib//:kotlinc-kotlin-compiler-common-provided",
#"@lib//:kotlinc-kotlin-compiler-cli-provided",
# ]
#)
@@ -57,48 +65,48 @@ jvm_library(
#)
java_library(
name = "patched-kotlin-compiler-for-bazel",
exports = [
":kotlin-compiler-2_2_20-dev-2951_http_import",
":kotlin-stdlib-jdk8-2_2_20-dev-2951_http_import",
":kotlin-stdlib-2_2_20-dev-2951_http_import",
":kotlin-stdlib-jdk7-2_2_20-dev-2951_http_import",
":kotlin-script-runtime-2_2_20-dev-2951_http_import",
":kotlin-reflect-1_6_10_http_import",
#":kotlinx-coroutines-core-jvm-1_8_0_http_import",
#":annotations-23_0_0_http_import",
],
visibility = ["//visibility:public"]
name = "patched-kotlin-compiler-for-bazel",
visibility = ["//visibility:public"],
exports = [
":kotlin-compiler-2_2_20-dev-2951_http_import",
":kotlin-stdlib-jdk8-2_2_20-dev-2951_http_import",
":kotlin-stdlib-2_2_20-dev-2951_http_import",
":kotlin-stdlib-jdk7-2_2_20-dev-2951_http_import",
":kotlin-script-runtime-2_2_20-dev-2951_http_import",
":kotlin-reflect-1_6_10_http_import",
#":kotlinx-coroutines-core-jvm-1_8_0_http_import",
#":annotations-23_0_0_http_import",
],
)
jvm_import(
name = "kotlin-compiler-2_2_20-dev-2951_http_import",
jar = "@kotlin-compiler-2_2_20-dev-2951_http//file"
name = "kotlin-compiler-2_2_20-dev-2951_http_import",
jar = "@kotlin-compiler-2_2_20-dev-2951_http//file",
)
jvm_import(
name = "kotlin-stdlib-jdk8-2_2_20-dev-2951_http_import",
jar = "@kotlin-stdlib-jdk8-2_2_20-dev-2951_http//file"
name = "kotlin-stdlib-jdk8-2_2_20-dev-2951_http_import",
jar = "@kotlin-stdlib-jdk8-2_2_20-dev-2951_http//file",
)
jvm_import(
name = "kotlin-stdlib-2_2_20-dev-2951_http_import",
jar = "@kotlin-stdlib-2_2_20-dev-2951_http//file"
name = "kotlin-stdlib-2_2_20-dev-2951_http_import",
jar = "@kotlin-stdlib-2_2_20-dev-2951_http//file",
)
jvm_import(
name = "kotlin-stdlib-jdk7-2_2_20-dev-2951_http_import",
jar = "@kotlin-stdlib-jdk7-2_2_20-dev-2951_http//file"
name = "kotlin-stdlib-jdk7-2_2_20-dev-2951_http_import",
jar = "@kotlin-stdlib-jdk7-2_2_20-dev-2951_http//file",
)
jvm_import(
name = "kotlin-script-runtime-2_2_20-dev-2951_http_import",
jar = "@kotlin-script-runtime-2_2_20-dev-2951_http//file"
name = "kotlin-script-runtime-2_2_20-dev-2951_http_import",
jar = "@kotlin-script-runtime-2_2_20-dev-2951_http//file",
)
jvm_import(
name = "kotlin-reflect-1_6_10_http_import",
jar = "@kotlin-reflect-1_6_10_http//file"
name = "kotlin-reflect-1_6_10_http_import",
jar = "@kotlin-reflect-1_6_10_http//file",
)
#jvm_import(
@@ -111,6 +119,4 @@ jvm_import(
# jar = "@annotations-23_0_0_http//file"
#)
### skip generation section `build intellij.tools.build.bazel.jvmIncBuilder`
### skip generation section `build intellij.tools.build.bazel.jvmIncBuilder`

View File

@@ -0,0 +1,16 @@
load("//:jvm.bzl", "kt_kotlinc_options")
def create_strange_kotlinc_options(name, jvm_target = 17, opt_in = [], allow_kotlin_package = False, context_receivers = False, when_guards = False):
kt_kotlinc_options(
name = name,
allow_kotlin_package = allow_kotlin_package,
context_receivers = context_receivers,
jvm_default = "all",
jvm_target = jvm_target,
opt_in = [
"com.intellij.openapi.util.IntellijInternalApi",
] + opt_in,
visibility = ["//visibility:public"],
warn = "off",
when_guards = when_guards,
)