Skip to content

Commit e2e0170

Browse files
author
Jaden Peterson
committed
Export a ScalaInfo provider
1 parent ce5dabd commit e2e0170

8 files changed

+78
-35
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
load("//scala:providers.bzl", "ScalaInfo")
2+
3+
def _phase_scalainfo_provider_implementation(contains_macros):
4+
return struct(
5+
external_providers = {
6+
"ScalaInfo": ScalaInfo(contains_macros = contains_macros),
7+
},
8+
)
9+
10+
def phase_scalainfo_provider_macro(ctx, p):
11+
return _phase_scalainfo_provider_implementation(contains_macros = True)
12+
13+
def phase_scalainfo_provider_non_macro(ctx, p):
14+
return _phase_scalainfo_provider_implementation(contains_macros = False)

scala/private/phases/phases.bzl

+35-26
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,6 @@ load(
77
_extras_phases = "extras_phases",
88
_run_phases = "run_phases",
99
)
10-
load(
11-
"@io_bazel_rules_scala//scala/private:phases/phase_write_executable.bzl",
12-
_phase_write_executable_common = "phase_write_executable_common",
13-
_phase_write_executable_junit_test = "phase_write_executable_junit_test",
14-
_phase_write_executable_repl = "phase_write_executable_repl",
15-
_phase_write_executable_scalatest = "phase_write_executable_scalatest",
16-
)
17-
load(
18-
"@io_bazel_rules_scala//scala/private:phases/phase_java_wrapper.bzl",
19-
_phase_java_wrapper_common = "phase_java_wrapper_common",
20-
_phase_java_wrapper_repl = "phase_java_wrapper_repl",
21-
)
2210
load(
2311
"@io_bazel_rules_scala//scala/private:phases/phase_collect_jars.bzl",
2412
_phase_collect_jars_common = "phase_collect_jars_common",
@@ -27,6 +15,8 @@ load(
2715
_phase_collect_jars_repl = "phase_collect_jars_repl",
2816
_phase_collect_jars_scalatest = "phase_collect_jars_scalatest",
2917
)
18+
load("@io_bazel_rules_scala//scala/private:phases/phase_collect_exports_jars.bzl", _phase_collect_exports_jars = "phase_collect_exports_jars")
19+
load("@io_bazel_rules_scala//scala/private:phases/phase_collect_srcjars.bzl", _phase_collect_srcjars = "phase_collect_srcjars")
3020
load(
3121
"@io_bazel_rules_scala//scala/private:phases/phase_compile.bzl",
3222
_phase_compile_binary = "phase_compile_binary",
@@ -37,35 +27,50 @@ load(
3727
_phase_compile_repl = "phase_compile_repl",
3828
_phase_compile_scalatest = "phase_compile_scalatest",
3929
)
40-
load(
41-
"@io_bazel_rules_scala//scala/private:phases/phase_runfiles.bzl",
42-
_phase_runfiles_common = "phase_runfiles_common",
43-
_phase_runfiles_library = "phase_runfiles_library",
44-
_phase_runfiles_scalatest = "phase_runfiles_scalatest",
45-
)
4630
load(
4731
"@io_bazel_rules_scala//scala/private:phases/phase_coverage.bzl",
4832
_phase_coverage_common = "phase_coverage_common",
4933
_phase_coverage_library = "phase_coverage_library",
5034
)
35+
load("@io_bazel_rules_scala//scala/private:phases/phase_coverage_runfiles.bzl", _phase_coverage_runfiles = "phase_coverage_runfiles")
36+
load("@io_bazel_rules_scala//scala/private:phases/phase_declare_executable.bzl", _phase_declare_executable = "phase_declare_executable")
5137
load("@io_bazel_rules_scala//scala/private:phases/phase_default_info.bzl", _phase_default_info = "phase_default_info")
52-
load("@io_bazel_rules_scala//scala/private:phases/phase_scalac_provider.bzl", _phase_scalac_provider = "phase_scalac_provider")
53-
load("@io_bazel_rules_scala//scala/private:phases/phase_write_manifest.bzl", _phase_write_manifest = "phase_write_manifest")
54-
load("@io_bazel_rules_scala//scala/private:phases/phase_collect_srcjars.bzl", _phase_collect_srcjars = "phase_collect_srcjars")
55-
load("@io_bazel_rules_scala//scala/private:phases/phase_collect_exports_jars.bzl", _phase_collect_exports_jars = "phase_collect_exports_jars")
5638
load(
5739
"@io_bazel_rules_scala//scala/private:phases/phase_dependency.bzl",
5840
_phase_dependency_common = "phase_dependency_common",
5941
_phase_dependency_library_for_plugin_bootstrapping = "phase_dependency_library_for_plugin_bootstrapping",
6042
)
61-
load("@io_bazel_rules_scala//scala/private:phases/phase_declare_executable.bzl", _phase_declare_executable = "phase_declare_executable")
62-
load("@io_bazel_rules_scala//scala/private:phases/phase_merge_jars.bzl", _phase_merge_jars = "phase_merge_jars")
43+
load(
44+
"@io_bazel_rules_scala//scala/private:phases/phase_java_wrapper.bzl",
45+
_phase_java_wrapper_common = "phase_java_wrapper_common",
46+
_phase_java_wrapper_repl = "phase_java_wrapper_repl",
47+
)
6348
load("@io_bazel_rules_scala//scala/private:phases/phase_jvm_flags.bzl", _phase_jvm_flags = "phase_jvm_flags")
49+
load("@io_bazel_rules_scala//scala/private:phases/phase_merge_jars.bzl", _phase_merge_jars = "phase_merge_jars")
50+
load(
51+
"@io_bazel_rules_scala//scala/private:phases/phase_runfiles.bzl",
52+
_phase_runfiles_common = "phase_runfiles_common",
53+
_phase_runfiles_library = "phase_runfiles_library",
54+
_phase_runfiles_scalatest = "phase_runfiles_scalatest",
55+
)
56+
load("@io_bazel_rules_scala//scala/private:phases/phase_scalac_provider.bzl", _phase_scalac_provider = "phase_scalac_provider")
6457
load("@io_bazel_rules_scala//scala/private:phases/phase_scalacopts.bzl", _phase_scalacopts = "phase_scalacopts")
65-
load("@io_bazel_rules_scala//scala/private:phases/phase_coverage_runfiles.bzl", _phase_coverage_runfiles = "phase_coverage_runfiles")
6658
load("@io_bazel_rules_scala//scala/private:phases/phase_scalafmt.bzl", _phase_scalafmt = "phase_scalafmt")
67-
load("@io_bazel_rules_scala//scala/private:phases/phase_test_environment.bzl", _phase_test_environment = "phase_test_environment")
59+
load(
60+
"@io_bazel_rules_scala//scala/private:phases/phase_scalainfo_provider.bzl",
61+
_phase_scalainfo_provider_macro = "phase_scalainfo_provider_macro",
62+
_phase_scalainfo_provider_non_macro = "phase_scalainfo_provider_non_macro",
63+
)
6864
load("@io_bazel_rules_scala//scala/private:phases/phase_semanticdb.bzl", _phase_semanticdb = "phase_semanticdb")
65+
load("@io_bazel_rules_scala//scala/private:phases/phase_test_environment.bzl", _phase_test_environment = "phase_test_environment")
66+
load(
67+
"@io_bazel_rules_scala//scala/private:phases/phase_write_executable.bzl",
68+
_phase_write_executable_common = "phase_write_executable_common",
69+
_phase_write_executable_junit_test = "phase_write_executable_junit_test",
70+
_phase_write_executable_repl = "phase_write_executable_repl",
71+
_phase_write_executable_scalatest = "phase_write_executable_scalatest",
72+
)
73+
load("@io_bazel_rules_scala//scala/private:phases/phase_write_manifest.bzl", _phase_write_manifest = "phase_write_manifest")
6974

7075
# API
7176
run_phases = _run_phases
@@ -74,6 +79,10 @@ extras_phases = _extras_phases
7479
# scalac_provider
7580
phase_scalac_provider = _phase_scalac_provider
7681

82+
# scalainfo_provider
83+
phase_scalainfo_provider_macro = _phase_scalainfo_provider_macro
84+
phase_scalainfo_provider_non_macro = _phase_scalainfo_provider_non_macro
85+
7786
# collect_srcjars
7887
phase_collect_srcjars = _phase_collect_srcjars
7988

scala/private/rules/scala_binary.bzl

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ load(
2424
"phase_runfiles_common",
2525
"phase_scalac_provider",
2626
"phase_scalacopts",
27+
"phase_scalainfo_provider_non_macro",
2728
"phase_semanticdb",
2829
"phase_write_executable_common",
2930
"phase_write_manifest",
@@ -36,6 +37,7 @@ def _scala_binary_impl(ctx):
3637
# customizable phases
3738
[
3839
("scalac_provider", phase_scalac_provider),
40+
("scalainfo_provider", phase_scalainfo_provider_non_macro),
3941
("write_manifest", phase_write_manifest),
4042
("dependency", phase_dependency_common),
4143
("collect_jars", phase_collect_jars_common),

scala/private/rules/scala_junit_test.bzl

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ load(
2525
"phase_runfiles_common",
2626
"phase_scalac_provider",
2727
"phase_scalacopts",
28+
"phase_scalainfo_provider_non_macro",
2829
"phase_semanticdb",
2930
"phase_test_environment",
3031
"phase_write_executable_junit_test",
@@ -42,6 +43,7 @@ def _scala_junit_test_impl(ctx):
4243
# customizable phases
4344
[
4445
("scalac_provider", phase_scalac_provider),
46+
("scalainfo_provider", phase_scalainfo_provider_non_macro),
4547
("write_manifest", phase_write_manifest),
4648
("dependency", phase_dependency_common),
4749
("collect_jars", phase_collect_jars_junit_test),

scala/private/rules/scala_library.bzl

+5
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ load(
3434
"phase_runfiles_library",
3535
"phase_scalac_provider",
3636
"phase_scalacopts",
37+
"phase_scalainfo_provider_macro",
38+
"phase_scalainfo_provider_non_macro",
3739
"phase_semanticdb",
3840
"phase_write_manifest",
3941
"run_phases",
@@ -62,6 +64,7 @@ def _scala_library_impl(ctx):
6264
# customizable phases
6365
[
6466
("scalac_provider", phase_scalac_provider),
67+
("scalainfo_provider", phase_scalainfo_provider_non_macro),
6568
("collect_srcjars", phase_collect_srcjars),
6669
("write_manifest", phase_write_manifest),
6770
("dependency", phase_dependency_common),
@@ -150,6 +153,7 @@ def _scala_library_for_plugin_bootstrapping_impl(ctx):
150153
# customizable phases
151154
[
152155
("scalac_provider", phase_scalac_provider),
156+
("scalainfo_provider", phase_scalainfo_provider_non_macro),
153157
("collect_srcjars", phase_collect_srcjars),
154158
("write_manifest", phase_write_manifest),
155159
("dependency", phase_dependency_library_for_plugin_bootstrapping),
@@ -225,6 +229,7 @@ def _scala_macro_library_impl(ctx):
225229
# customizable phases
226230
[
227231
("scalac_provider", phase_scalac_provider),
232+
("scalainfo_provider", phase_scalainfo_provider_macro),
228233
("collect_srcjars", phase_collect_srcjars),
229234
("write_manifest", phase_write_manifest),
230235
("dependency", phase_dependency_common),

scala/private/rules/scala_repl.bzl

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ load(
2424
"phase_runfiles_common",
2525
"phase_scalac_provider",
2626
"phase_scalacopts",
27+
"phase_scalainfo_provider_non_macro",
2728
"phase_semanticdb",
2829
"phase_write_executable_repl",
2930
"phase_write_manifest",
@@ -36,6 +37,7 @@ def _scala_repl_impl(ctx):
3637
# customizable phases
3738
[
3839
("scalac_provider", phase_scalac_provider),
40+
("scalainfo_provider", phase_scalainfo_provider_non_macro),
3941
("write_manifest", phase_write_manifest),
4042
("dependency", phase_dependency_common),
4143
# need scala-compiler for MainGenericRunner below

scala/private/rules/scala_test.bzl

+2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ load(
2525
"phase_runfiles_scalatest",
2626
"phase_scalac_provider",
2727
"phase_scalacopts",
28+
"phase_scalainfo_provider_non_macro",
2829
"phase_semanticdb",
2930
"phase_test_environment",
3031
"phase_write_executable_scalatest",
@@ -38,6 +39,7 @@ def _scala_test_impl(ctx):
3839
# customizable phases
3940
[
4041
("scalac_provider", phase_scalac_provider),
42+
("scalainfo_provider", phase_scalainfo_provider_non_macro),
4143
("write_manifest", phase_write_manifest),
4244
("dependency", phase_dependency_common),
4345
("collect_jars", phase_collect_jars_scalatest),

scala/providers.bzl

+16-9
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,3 @@
1-
ScalacProvider = provider(
2-
doc = "ScalacProvider",
3-
fields = [
4-
"default_classpath",
5-
"default_macro_classpath",
6-
"default_repl_classpath",
7-
],
8-
)
9-
101
DepsInfo = provider(
112
doc = "Defines depset required by rules",
123
fields = {
@@ -30,3 +21,19 @@ declare_deps_provider = rule(
3021
"deps_id": attr.string(mandatory = True),
3122
},
3223
)
24+
25+
ScalacProvider = provider(
26+
doc = "ScalacProvider",
27+
fields = [
28+
"default_classpath",
29+
"default_macro_classpath",
30+
"default_repl_classpath",
31+
],
32+
)
33+
34+
ScalaInfo = provider(
35+
doc = "Contains information about Scala targets.",
36+
fields = {
37+
"contains_macros": "Whether this target contains macros.",
38+
},
39+
)

0 commit comments

Comments
 (0)