|
1 | 1 | load("//scala:providers.bzl", _DepsInfo = "DepsInfo")
|
| 2 | +load("//scala:scala_cross_version.bzl", "version_suffix") |
| 3 | +load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo") |
2 | 4 | load(
|
3 | 5 | "@io_bazel_rules_scala_config//:config.bzl",
|
4 | 6 | "ENABLE_COMPILER_DEPENDENCY_TRACKING",
|
5 |
| - "SCALA_MAJOR_VERSION", |
| 7 | + "SCALA_VERSION", |
6 | 8 | )
|
7 |
| -load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo") |
8 | 9 |
|
9 | 10 | def _compute_strict_deps_mode(input_strict_deps_mode, dependency_mode):
|
10 | 11 | if dependency_mode == "direct":
|
@@ -111,7 +112,7 @@ def _default_dep_providers():
|
111 | 112 | "scala_library_classpath",
|
112 | 113 | "scala_macro_classpath",
|
113 | 114 | ]
|
114 |
| - if SCALA_MAJOR_VERSION.startswith("2."): |
| 115 | + if SCALA_VERSION.startswith("2."): |
115 | 116 | dep_providers.append("semanticdb")
|
116 | 117 | return [
|
117 | 118 | "@rules_scala_toolchains//scala:%s_provider" % p
|
@@ -198,12 +199,32 @@ def _expand_patterns(patterns):
|
198 | 199 |
|
199 | 200 | return result
|
200 | 201 |
|
201 |
| -def scala_toolchain(**kwargs): |
202 |
| - """Creates a Scala toolchain target.""" |
| 202 | +def scala_toolchain(name, visibility = ["//visibility:public"], **kwargs): |
| 203 | + """Creates Scala toolchain implementation and `toolchain` targets. |
| 204 | +
|
| 205 | + Use this instead of `setup_scala_toolchain()` when setting custom compiler |
| 206 | + attributes, but still using the builtin toolchain dependency artifacts. |
| 207 | +
|
| 208 | + See `docs/scala_toolchain.md` for example usage and documentation on the |
| 209 | + available attributes. |
| 210 | + """ |
| 211 | + impl_name = "%s_impl" % name |
203 | 212 | strict = kwargs.pop("dependency_tracking_strict_deps_patterns", [""])
|
204 | 213 | unused = kwargs.pop("dependency_tracking_unused_deps_patterns", [""])
|
205 | 214 | _scala_toolchain(
|
| 215 | + name = impl_name, |
206 | 216 | dependency_tracking_strict_deps_patterns = _expand_patterns(strict),
|
207 | 217 | dependency_tracking_unused_deps_patterns = _expand_patterns(unused),
|
208 | 218 | **kwargs
|
209 | 219 | )
|
| 220 | + |
| 221 | + native.toolchain( |
| 222 | + name = name, |
| 223 | + toolchain = ":" + impl_name, |
| 224 | + toolchain_type = Label("//scala:toolchain_type"), |
| 225 | + target_settings = [ |
| 226 | + "@io_bazel_rules_scala_config//:scala_version" + |
| 227 | + version_suffix(SCALA_VERSION), |
| 228 | + ], |
| 229 | + visibility = visibility, |
| 230 | + ) |
0 commit comments