Skip to content

Commit 1607689

Browse files
committed
Don't rely on global SCALA_VERSION in BUILD files, use select instead
1 parent efdc88e commit 1607689

File tree

7 files changed

+112
-183
lines changed

7 files changed

+112
-183
lines changed

scala/support/BUILD

Lines changed: 17 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,36 @@
11
load("//scala:scala.bzl", "scala_library")
2-
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION")
2+
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")
33

44
scala_library(
55
name = "test_reporter",
66
srcs = ["JUnitXmlReporter.scala"],
7-
scalacopts = {
8-
"3.3": [
9-
"-deprecation:true",
10-
"-encoding",
11-
"UTF-8",
12-
"-feature",
13-
"-language:existentials",
14-
"-language:higherKinds",
15-
"-language:implicitConversions",
16-
"-unchecked",
17-
"-Xfatal-warnings",
18-
],
19-
"3.2": [
20-
"-deprecation:true",
21-
"-encoding",
22-
"UTF-8",
23-
"-feature",
24-
"-language:existentials",
25-
"-language:higherKinds",
26-
"-language:implicitConversions",
27-
"-unchecked",
28-
"-Xfatal-warnings",
29-
],
30-
"3.1": [
31-
"-deprecation:true",
32-
"-encoding",
33-
"UTF-8",
34-
"-feature",
35-
"-language:existentials",
36-
"-language:higherKinds",
37-
"-language:implicitConversions",
38-
"-unchecked",
39-
"-Xfatal-warnings",
40-
],
41-
"2.13": [
42-
"-deprecation:true",
43-
"-encoding",
44-
"UTF-8",
45-
"-feature",
46-
"-language:existentials",
47-
"-language:higherKinds",
48-
"-language:implicitConversions",
49-
"-unchecked",
50-
"-Xfatal-warnings",
7+
scalacopts = [
8+
"-deprecation:true",
9+
"-encoding",
10+
"UTF-8",
11+
"-feature",
12+
"-language:existentials",
13+
"-language:higherKinds",
14+
"-language:implicitConversions",
15+
"-unchecked",
16+
"-Xfatal-warnings",
17+
] + select_for_scala_version(
18+
any_2 = [
5119
"-Xlint",
5220
"-Ywarn-dead-code",
5321
"-Ywarn-numeric-widen",
5422
"-Ywarn-value-discard",
55-
"-Wunused:imports",
5623
],
57-
"2.12": [
58-
"-deprecation:true",
59-
"-encoding",
60-
"UTF-8",
61-
"-feature",
62-
"-language:existentials",
63-
"-language:higherKinds",
64-
"-language:implicitConversions",
65-
"-unchecked",
66-
"-Xfatal-warnings",
67-
"-Xlint",
68-
"-Yno-adapted-args",
69-
"-Ywarn-dead-code",
70-
"-Ywarn-numeric-widen",
71-
"-Ywarn-value-discard",
72-
"-Xfuture",
73-
"-Ywarn-unused-import",
74-
"-Ypartial-unification",
24+
any_2_13 = [
25+
"-Wunused:imports",
7526
],
76-
"2.11": [
77-
"-deprecation:true",
78-
"-encoding",
79-
"UTF-8",
80-
"-feature",
81-
"-language:existentials",
82-
"-language:higherKinds",
83-
"-language:implicitConversions",
84-
"-unchecked",
85-
"-Xfatal-warnings",
86-
"-Xlint",
27+
before_2_13 = [
8728
"-Yno-adapted-args",
88-
"-Ywarn-dead-code",
89-
"-Ywarn-numeric-widen",
90-
"-Ywarn-value-discard",
9129
"-Xfuture",
9230
"-Ywarn-unused-import",
9331
"-Ypartial-unification",
9432
],
95-
}[SCALA_MAJOR_VERSION],
33+
),
9634
visibility = ["//visibility:public"],
9735
deps = [
9836
"//scala/private/toolchain_deps:scala_xml",

src/java/io/bazel/rulesscala/scalac/BUILD

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
1-
load("@rules_java//java:defs.bzl", "java_binary")
2-
load(
3-
"@io_bazel_rules_scala_config//:config.bzl",
4-
"ENABLE_COMPILER_DEPENDENCY_TRACKING",
5-
"SCALA_MAJOR_VERSION",
6-
)
1+
load("@io_bazel_rules_scala_config//:config.bzl", "ENABLE_COMPILER_DEPENDENCY_TRACKING")
2+
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")
73

84
SCALAC_DEPS = [
95
"//scala/private/toolchain_deps:scala_compile_classpath",
@@ -16,8 +12,6 @@ SCALAC_DEPS = [
1612
"//src/java/io/bazel/rulesscala/scalac/reporter",
1713
]
1814

19-
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 []
20-
2115
java_binary(
2216
name = "scalac",
2317
srcs = [
@@ -29,7 +23,11 @@ java_binary(
2923
],
3024
main_class = "io.bazel.rulesscala.scalac.ScalacWorker",
3125
visibility = ["//visibility:public"],
32-
deps = DEP_REPORTING_DEPS + SCALAC_DEPS,
26+
deps = (select_for_scala_version(
27+
any_2 = [
28+
"//third_party/dependency_analyzer/src/main/io/bazel/rulesscala/dependencyanalyzer/compiler:dep_reporting_compiler",
29+
],
30+
) if ENABLE_COMPILER_DEPENDENCY_TRACKING else []) + SCALAC_DEPS,
3331
)
3432

3533
java_binary(
@@ -51,11 +49,14 @@ filegroup(
5149
srcs = [
5250
"ScalacWorker.java",
5351
"ScalacInvokerResults.java",
54-
] + (
55-
[
52+
] + select_for_scala_version(
53+
any_2 = [
5654
"ScalacInvoker.java",
5755
"ReportableMainClass.java",
58-
] if SCALA_MAJOR_VERSION.startswith("2") else ["ScalacInvoker3.java"]
56+
],
57+
any_3 = [
58+
"ScalacInvoker3.java",
59+
],
5960
),
6061
visibility = ["//visibility:public"],
6162
)
Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,11 @@
1-
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION", "SCALA_MINOR_VERSION")
1+
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")
22

33
filegroup(
44
name = "deps_tracking_reporter",
5-
srcs = [
6-
"before_2_12_13/DepsTrackingReporter.java",
7-
] if (SCALA_MAJOR_VERSION == "2.11") or ((SCALA_MAJOR_VERSION == "2.12") and int(SCALA_MINOR_VERSION) < 13) else [
8-
"after_2_12_13_and_before_2_13_12/DepsTrackingReporter.java",
9-
] 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 [
10-
"after_2_13_12/DepsTrackingReporter.java",
11-
],
5+
srcs = select_for_scala_version(
6+
before_2_12_13 = ["before_2_12_13/DepsTrackingReporter.java"],
7+
between_2_12_13_and_2_13_12 = ["after_2_12_13_and_before_2_13_12/DepsTrackingReporter.java"],
8+
since_2_13_12 = ["after_2_13_12/DepsTrackingReporter.java"],
9+
),
1210
visibility = ["//visibility:public"],
1311
)

src/java/io/bazel/rulesscala/scalac/reporter/BUILD

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
load("@rules_proto//proto:defs.bzl", "proto_library")
22
load("@rules_java//java:defs.bzl", "java_library", "java_proto_library")
3-
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION", "SCALA_MINOR_VERSION")
3+
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")
44

55
java_library(
66
name = "reporter",
7-
srcs = [
8-
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
9-
"before_2_12_13/ProtoReporter.java",
10-
] if SCALA_MAJOR_VERSION.startswith("2.11") or (SCALA_MAJOR_VERSION.startswith("2.12") and int(SCALA_MINOR_VERSION) < 13) else [
11-
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
12-
"after_2_12_13_and_before_2_13_12/ProtoReporter.java",
13-
] 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 [
14-
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
15-
"after_2_13_12/ProtoReporter.java",
16-
] if (SCALA_MAJOR_VERSION.startswith("2.13") and int(SCALA_MINOR_VERSION) >= 12) else ["PlaceholderForEmptyScala3Lib.java"],
7+
srcs = select_for_scala_version(
8+
before_2_12_13 = [
9+
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
10+
"before_2_12_13/ProtoReporter.java",
11+
],
12+
between_2_12_13_and_2_13_12 = [
13+
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
14+
"after_2_12_13_and_before_2_13_12/ProtoReporter.java",
15+
],
16+
between_2_13_12_and_3 = [
17+
"//src/java/io/bazel/rulesscala/scalac/deps_tracking_reporter",
18+
"after_2_13_12/ProtoReporter.java",
19+
],
20+
default = ["PlaceholderForEmptyScala3Lib.java"],
21+
),
1722
visibility = ["//visibility:public"],
1823
deps = [
1924
":scala_deps_java_proto",
Lines changed: 50 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,51 @@
1-
load(":analyzer.bzl", "analyzer")
1+
load("//scala:scala.bzl", "scala_library_for_plugin_bootstrapping")
2+
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")
23

3-
analyzer()
4+
scala_library_for_plugin_bootstrapping(
5+
name = "dependency_analyzer",
6+
srcs = select_for_scala_version(
7+
any_2 = [
8+
"io/bazel/rulesscala/dependencyanalyzer/AstUsedJarFinder.scala",
9+
"io/bazel/rulesscala/dependencyanalyzer/DependencyAnalyzer.scala",
10+
"io/bazel/rulesscala/dependencyanalyzer/DependencyAnalyzerSettings.scala",
11+
"io/bazel/rulesscala/dependencyanalyzer/HighLevelCrawlUsedJarFinder.scala",
12+
"io/bazel/rulesscala/dependencyanalyzer/OptionsParser.scala",
13+
],
14+
before_2_12_13 = [
15+
"io/bazel/rulesscala/dependencyanalyzer/Reporter.scala",
16+
],
17+
between_2_12_13_and_3 = [
18+
"io/bazel/rulesscala/dependencyanalyzer/Reporter213.scala",
19+
],
20+
since_3 = [
21+
"io/bazel/rulesscala/dependencyanalyzer3/DependencyAnalyzer.scala",
22+
],
23+
),
24+
resources = select_for_scala_version(
25+
any_2 = ["resources/scalac-plugin.xml"],
26+
any_3 = ["resources/plugin.properties"],
27+
),
28+
visibility = ["//visibility:public"],
29+
deps = [
30+
"//scala/private/toolchain_deps:scala_compile_classpath",
31+
] + select_for_scala_version(
32+
any_2 = [
33+
":scala_version",
34+
"//src/java/io/bazel/rulesscala/scalac/reporter",
35+
],
36+
),
37+
)
38+
39+
scala_library_for_plugin_bootstrapping(
40+
name = "scala_version",
41+
srcs = [
42+
"io/bazel/rulesscala/dependencyanalyzer/ScalaVersion.scala",
43+
],
44+
# As this contains macros we shouldn't make an ijar
45+
build_ijar = False,
46+
resources = ["resources/scalac-plugin.xml"],
47+
visibility = ["//visibility:public"],
48+
deps = [
49+
"//scala/private/toolchain_deps:scala_compile_classpath",
50+
],
51+
)

third_party/dependency_analyzer/src/main/analyzer.bzl

Lines changed: 0 additions & 64 deletions
This file was deleted.

third_party/utils/src/test/BUILD

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
load("//scala:scala.bzl", "scala_library")
2-
load("@io_bazel_rules_scala_config//:config.bzl", "SCALA_MAJOR_VERSION")
2+
load("//scala:scala_cross_version_select.bzl", "select_for_scala_version")
33

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

66
scala_library(
77
name = "test_util",
8-
srcs = ([
9-
"io/bazel/rulesscala/utils/JavaCompileUtil.scala",
10-
"io/bazel/rulesscala/utils/TestUtil.scala",
11-
] if SCALA_MAJOR_VERSION.startswith("2") else [
12-
"io/bazel/rulesscala/utils/Scala3CompilerUtils.scala",
13-
]),
8+
srcs = select_for_scala_version(
9+
any_2 = [
10+
"io/bazel/rulesscala/utils/JavaCompileUtil.scala",
11+
"io/bazel/rulesscala/utils/TestUtil.scala",
12+
],
13+
any_3 = [
14+
"io/bazel/rulesscala/utils/Scala3CompilerUtils.scala",
15+
],
16+
),
1417
visibility = ["//visibility:public"],
1518
deps = [
1619
"//scala/private/toolchain_deps:scala_compile_classpath",

0 commit comments

Comments
 (0)