Skip to content

Commit

Permalink
Don't rely on global SCALA_VERSION in BUILD files, use select inste…
Browse files Browse the repository at this point in the history
…ad (#1564)
  • Loading branch information
aszady authored Apr 24, 2024
1 parent d83ba31 commit f4f3d9c
Show file tree
Hide file tree
Showing 7 changed files with 112 additions and 182 deletions.
96 changes: 17 additions & 79 deletions scala/support/BUILD
Original file line number Diff line number Diff line change
@@ -1,98 +1,36 @@
load("//scala:scala.bzl", "scala_library")
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION")
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")

scala_library(
name = "test_reporter",
srcs = ["JUnitXmlReporter.scala"],
scalacopts = {
"3.3": [
"-deprecation:true",
"-encoding",
"UTF-8",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-unchecked",
"-Xfatal-warnings",
],
"3.2": [
"-deprecation:true",
"-encoding",
"UTF-8",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-unchecked",
"-Xfatal-warnings",
],
"3.1": [
"-deprecation:true",
"-encoding",
"UTF-8",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-unchecked",
"-Xfatal-warnings",
],
"2.13": [
"-deprecation:true",
"-encoding",
"UTF-8",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-unchecked",
"-Xfatal-warnings",
scalacopts = [
"-deprecation:true",
"-encoding",
"UTF-8",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-unchecked",
"-Xfatal-warnings",
] + select_for_scala_version(
any_2 = [
"-Xlint",
"-Ywarn-dead-code",
"-Ywarn-numeric-widen",
"-Ywarn-value-discard",
"-Wunused:imports",
],
"2.12": [
"-deprecation:true",
"-encoding",
"UTF-8",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-unchecked",
"-Xfatal-warnings",
"-Xlint",
"-Yno-adapted-args",
"-Ywarn-dead-code",
"-Ywarn-numeric-widen",
"-Ywarn-value-discard",
"-Xfuture",
"-Ywarn-unused-import",
"-Ypartial-unification",
any_2_13 = [
"-Wunused:imports",
],
"2.11": [
"-deprecation:true",
"-encoding",
"UTF-8",
"-feature",
"-language:existentials",
"-language:higherKinds",
"-language:implicitConversions",
"-unchecked",
"-Xfatal-warnings",
"-Xlint",
before_2_13 = [
"-Yno-adapted-args",
"-Ywarn-dead-code",
"-Ywarn-numeric-widen",
"-Ywarn-value-discard",
"-Xfuture",
"-Ywarn-unused-import",
"-Ypartial-unification",
],
}[SCALA_MAJOR_VERSION],
),
visibility = ["//visibility:public"],
deps = [
"//scala/private/toolchain_deps:scala_xml",
Expand Down
24 changes: 13 additions & 11 deletions src/java/io/bazel/rulesscala/scalac/BUILD
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
load("@rules_java//java:defs.bzl", "java_binary")
load(
"@io_bazel_rules_scala_config//:config.bzl",
"ENABLE_COMPILER_DEPENDENCY_TRACKING",
"SCALA_MAJOR_VERSION",
)
load("@io_bazel_rules_scala_config//:config.bzl", "ENABLE_COMPILER_DEPENDENCY_TRACKING")
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")

SCALAC_DEPS = [
"//scala/private/toolchain_deps:scala_compile_classpath",
Expand All @@ -16,8 +13,6 @@ SCALAC_DEPS = [
"//src/java/io/bazel/rulesscala/scalac/reporter",
]

DEP_REPORTING_DEPS = ["//third_party/dependency_analyzer/src/main/io/bazel/rulesscala/dependencyanalyzer/compiler:dep_reporting_compiler"] if ENABLE_COMPILER_DEPENDENCY_TRACKING and SCALA_MAJOR_VERSION.startswith("2") else []

java_binary(
name = "scalac",
srcs = [
Expand All @@ -29,7 +24,11 @@ java_binary(
],
main_class = "io.bazel.rulesscala.scalac.ScalacWorker",
visibility = ["//visibility:public"],
deps = DEP_REPORTING_DEPS + SCALAC_DEPS,
deps = (select_for_scala_version(
any_2 = [
"//third_party/dependency_analyzer/src/main/io/bazel/rulesscala/dependencyanalyzer/compiler:dep_reporting_compiler",
],
) if ENABLE_COMPILER_DEPENDENCY_TRACKING else []) + SCALAC_DEPS,
)

java_binary(
Expand All @@ -51,11 +50,14 @@ filegroup(
srcs = [
"ScalacWorker.java",
"ScalacInvokerResults.java",
] + (
[
] + select_for_scala_version(
any_2 = [
"ScalacInvoker.java",
"ReportableMainClass.java",
] if SCALA_MAJOR_VERSION.startswith("2") else ["ScalacInvoker3.java"]
],
any_3 = [
"ScalacInvoker3.java",
],
),
visibility = ["//visibility:public"],
)
14 changes: 6 additions & 8 deletions src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter/BUILD
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION", "SCALA_MINOR_VERSION")
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")

filegroup(
name = "deps_tracking_reporter",
srcs = [
"before_2_12_13/DepsTrackingReporter.java",
] if (SCALA_MAJOR_VERSION == "2.11") or ((SCALA_MAJOR_VERSION == "2.12") and int(SCALA_MINOR_VERSION) < 13) else [
"after_2_12_13_and_before_2_13_12/DepsTrackingReporter.java",
] if ((SCALA_MAJOR_VERSION == "2.12") and int(SCALA_MINOR_VERSION) >= 13) or ((SCALA_MAJOR_VERSION == "2.13") and int(SCALA_MINOR_VERSION) < 12) else [
"after_2_13_12/DepsTrackingReporter.java",
],
srcs = select_for_scala_version(
before_2_12_13 = ["before_2_12_13/DepsTrackingReporter.java"],
between_2_12_13_and_2_13_12 = ["after_2_12_13_and_before_2_13_12/DepsTrackingReporter.java"],
since_2_13_12 = ["after_2_13_12/DepsTrackingReporter.java"],
),
visibility = ["//visibility:public"],
)
27 changes: 16 additions & 11 deletions src/java/io/bazel/rulesscala/scalac/reporter/BUILD
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
load("@rules_proto//proto:defs.bzl", "proto_library")
load("@rules_java//java:defs.bzl", "java_library", "java_proto_library")
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION", "SCALA_MINOR_VERSION")
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")

java_library(
name = "reporter",
srcs = [
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
"before_2_12_13/ProtoReporter.java",
] if SCALA_MAJOR_VERSION.startswith("2.11") or (SCALA_MAJOR_VERSION.startswith("2.12") and int(SCALA_MINOR_VERSION) < 13) else [
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
"after_2_12_13_and_before_2_13_12/ProtoReporter.java",
] if ((SCALA_MAJOR_VERSION.startswith("2.12") and int(SCALA_MINOR_VERSION) >= 13) or (SCALA_MAJOR_VERSION.startswith("2.13") and int(SCALA_MINOR_VERSION) < 12)) else [
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
"after_2_13_12/ProtoReporter.java",
] if (SCALA_MAJOR_VERSION.startswith("2.13") and int(SCALA_MINOR_VERSION) >= 12) else ["PlaceholderForEmptyScala3Lib.java"],
srcs = select_for_scala_version(
before_2_12_13 = [
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
"before_2_12_13/ProtoReporter.java",
],
between_2_12_13_and_2_13_12 = [
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
"after_2_12_13_and_before_2_13_12/ProtoReporter.java",
],
between_2_13_12_and_3 = [
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
"after_2_13_12/ProtoReporter.java",
],
default = ["PlaceholderForEmptyScala3Lib.java"],
),
visibility = ["//visibility:public"],
deps = [
":scala_deps_java_proto",
Expand Down
52 changes: 50 additions & 2 deletions third_party/dependency_analyzer/src/main/BUILD
Original file line number Diff line number Diff line change
@@ -1,3 +1,51 @@
load(":analyzer.bzl", "analyzer")
load("//scala:scala.bzl", "scala_library_for_plugin_bootstrapping")
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")

analyzer()
scala_library_for_plugin_bootstrapping(
name = "dependency_analyzer",
srcs = select_for_scala_version(
any_2 = [
"io/bazel/rulesscala/dependencyanalyzer/AstUsedJarFinder.scala",
"io/bazel/rulesscala/dependencyanalyzer/DependencyAnalyzer.scala",
"io/bazel/rulesscala/dependencyanalyzer/DependencyAnalyzerSettings.scala",
"io/bazel/rulesscala/dependencyanalyzer/HighLevelCrawlUsedJarFinder.scala",
"io/bazel/rulesscala/dependencyanalyzer/OptionsParser.scala",
],
before_2_12_13 = [
"io/bazel/rulesscala/dependencyanalyzer/Reporter.scala",
],
between_2_12_13_and_3 = [
"io/bazel/rulesscala/dependencyanalyzer/Reporter213.scala",
],
since_3 = [
"io/bazel/rulesscala/dependencyanalyzer3/DependencyAnalyzer.scala",
],
),
resources = select_for_scala_version(
any_2 = ["resources/scalac-plugin.xml"],
any_3 = ["resources/plugin.properties"],
),
visibility = ["//visibility:public"],
deps = [
"//scala/private/toolchain_deps:scala_compile_classpath",
] + select_for_scala_version(
any_2 = [
":scala_version",
"//src/java/io/bazel/rulesscala/scalac/reporter",
],
),
)

scala_library_for_plugin_bootstrapping(
name = "scala_version",
srcs = [
"io/bazel/rulesscala/dependencyanalyzer/ScalaVersion.scala",
],
# As this contains macros we shouldn't make an ijar
build_ijar = False,
resources = ["resources/scalac-plugin.xml"],
visibility = ["//visibility:public"],
deps = [
"//scala/private/toolchain_deps:scala_compile_classpath",
],
)
64 changes: 0 additions & 64 deletions third_party/dependency_analyzer/src/main/analyzer.bzl

This file was deleted.

17 changes: 10 additions & 7 deletions third_party/utils/src/test/BUILD
Original file line number Diff line number Diff line change
@@ -1,16 +1,19 @@
load("//scala:scala.bzl", "scala_library")
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION")
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")

licenses(["notice"]) # 3-clause BSD

scala_library(
name = "test_util",
srcs = ([
"io/bazel/rulesscala/utils/JavaCompileUtil.scala",
"io/bazel/rulesscala/utils/TestUtil.scala",
] if SCALA_MAJOR_VERSION.startswith("2") else [
"io/bazel/rulesscala/utils/Scala3CompilerUtils.scala",
]),
srcs = select_for_scala_version(
any_2 = [
"io/bazel/rulesscala/utils/JavaCompileUtil.scala",
"io/bazel/rulesscala/utils/TestUtil.scala",
],
any_3 = [
"io/bazel/rulesscala/utils/Scala3CompilerUtils.scala",
],
),
visibility = ["//visibility:public"],
deps = [
"//scala/private/toolchain_deps:scala_compile_classpath",
Expand Down

0 comments on commit f4f3d9c

Please sign in to comment.