diff --git a/src/java/io/bazel/rulesscala/scalac/BUILD b/src/java/io/bazel/rulesscala/scalac/BUILD index aa6caca17..217c9c19e 100644 --- a/src/java/io/bazel/rulesscala/scalac/BUILD +++ b/src/java/io/bazel/rulesscala/scalac/BUILD @@ -1,53 +1,15 @@ -load("@rules_java//java:defs.bzl", "java_binary") -load("@io_bazel_rules_scala_config//:config.bzl", "ENABLE_COMPILER_DEPENDENCY_TRACKING") load("//scala:scala_cross_version_select.bzl", "select_for_scala_version") +load("//src/java/io/bazel/rulesscala/scalac:definitions.bzl", "define_scalac", "define_scalac_bootstrap") -SCALAC_DEPS = [ - "//scala/private/toolchain_deps:scala_compile_classpath", - "//src/java/io/bazel/rulesscala/io_utils", - "@bazel_tools//src/main/protobuf:worker_protocol_java_proto", - "@io_bazel_rules_scala//src/java/io/bazel/rulesscala/jar", - "@io_bazel_rules_scala//src/java/io/bazel/rulesscala/worker", - "@io_bazel_rules_scala//src/protobuf/io/bazel/rules_scala:diagnostics_java_proto", - "//src/java/io/bazel/rulesscala/scalac/compileoptions", - "//src/java/io/bazel/rulesscala/scalac/reporter", -] +define_scalac() -java_binary( - name = "scalac", - srcs = [ - ":scalac_files", - ], - javacopts = [ - "-source 1.8", - "-target 1.8", - ], - main_class = "io.bazel.rulesscala.scalac.ScalacWorker", - visibility = ["//visibility:public"], - deps = ([ - "//third_party/dependency_analyzer/src/main/io/bazel/rulesscala/dependencyanalyzer/compiler:dep_reporting_compiler", - ] if ENABLE_COMPILER_DEPENDENCY_TRACKING else []) + SCALAC_DEPS, -) - -java_binary( - name = "scalac_bootstrap", - srcs = [ - ":scalac_files", - ], - javacopts = [ - "-source 1.8", - "-target 1.8", - ], - main_class = "io.bazel.rulesscala.scalac.ScalacWorker", - visibility = ["//visibility:public"], - deps = SCALAC_DEPS, -) +define_scalac_bootstrap() filegroup( name = "scalac_files", srcs = [ - "ScalacWorker.java", "ScalacInvokerResults.java", + "ScalacWorker.java", ] + select_for_scala_version( any_2 = glob(["scala_2/*.java"]), any_3 = glob(["scala_3/*.java"]), diff --git a/src/java/io/bazel/rulesscala/scalac/definitions.bzl b/src/java/io/bazel/rulesscala/scalac/definitions.bzl new file mode 100644 index 000000000..64fe04da2 --- /dev/null +++ b/src/java/io/bazel/rulesscala/scalac/definitions.bzl @@ -0,0 +1,48 @@ +load("@io_bazel_rules_scala_config//:config.bzl", "ENABLE_COMPILER_DEPENDENCY_TRACKING") +load("@rules_java//java:defs.bzl", "java_binary") + +DEFAULT_SCALAC_DEPS = [ + Label(dep) + for dep in [ + "//scala/private/toolchain_deps:scala_compile_classpath", + "//src/java/io/bazel/rulesscala/io_utils", + "//src/java/io/bazel/rulesscala/jar", + "//src/java/io/bazel/rulesscala/worker", + "//src/protobuf/io/bazel/rules_scala:diagnostics_java_proto", + "//src/java/io/bazel/rulesscala/scalac/compileoptions", + "//src/java/io/bazel/rulesscala/scalac/reporter", + "@bazel_tools//src/main/protobuf:worker_protocol_java_proto", + ] +] + +DEFAULT_SRCS = [ + Label("//src/java/io/bazel/rulesscala/scalac:scalac_files"), +] + +def define_scalac(name = "scalac", srcs = DEFAULT_SRCS, deps = DEFAULT_SCALAC_DEPS): + java_binary( + name = name, + srcs = srcs, + javacopts = [ + "-source 1.8", + "-target 1.8", + ], + main_class = "io.bazel.rulesscala.scalac.ScalacWorker", + visibility = ["//visibility:public"], + deps = ([ + Label("//third_party/dependency_analyzer/src/main/io/bazel/rulesscala/dependencyanalyzer/compiler:dep_reporting_compiler"), + ] if ENABLE_COMPILER_DEPENDENCY_TRACKING else []) + deps, + ) + +def define_scalac_bootstrap(name = "scalac_bootstrap", srcs = DEFAULT_SRCS, deps = DEFAULT_SCALAC_DEPS): + java_binary( + name = name, + srcs = srcs, + javacopts = [ + "-source 1.8", + "-target 1.8", + ], + main_class = "io.bazel.rulesscala.scalac.ScalacWorker", + visibility = ["//visibility:public"], + deps = deps, + )