Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion scala/private/phases/phase_compile.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ def _phase_compile(

out = _compile_or_empty(
ctx,
p.scalacopts,
manifest,
jars,
srcjars,
Expand All @@ -157,6 +158,7 @@ def _phase_compile(

def _compile_or_empty(
ctx,
scalacopts,
manifest,
jars,
srcjars,
Expand Down Expand Up @@ -202,10 +204,10 @@ def _compile_or_empty(
ctx.files.resources,
ctx.files.resource_jars,
jars2labels,
ctx.attr.scalacopts,
ctx.attr.print_compile_time,
ctx.attr.expect_java_output,
ctx.attr.scalac_jvm_flags,
scalacopts,
ctx.executable._scalac,
dependency_info,
unused_dependency_checker_ignored_targets,
Expand Down
3 changes: 3 additions & 0 deletions scala/private/phases/phase_scalacopts.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
def phase_scalacopts(ctx, p):
toolchain = ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"]
return toolchain.scalacopts + ctx.attr.scalacopts
4 changes: 4 additions & 0 deletions scala/private/phases/phases.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ load(
load("@io_bazel_rules_scala//scala/private:phases/phase_declare_executable.bzl", _phase_declare_executable = "phase_declare_executable")
load("@io_bazel_rules_scala//scala/private:phases/phase_merge_jars.bzl", _phase_merge_jars = "phase_merge_jars")
load("@io_bazel_rules_scala//scala/private:phases/phase_jvm_flags.bzl", _phase_jvm_flags = "phase_jvm_flags")
load("@io_bazel_rules_scala//scala/private:phases/phase_scalacopts.bzl", _phase_scalacopts = "phase_scalacopts")
load("@io_bazel_rules_scala//scala/private:phases/phase_coverage_runfiles.bzl", _phase_coverage_runfiles = "phase_coverage_runfiles")
load("@io_bazel_rules_scala//scala/private:phases/phase_scalafmt.bzl", _phase_scalafmt = "phase_scalafmt")
load("@io_bazel_rules_scala//scala/private:phases/phase_test_environment.bzl", _phase_test_environment = "phase_test_environment")
Expand Down Expand Up @@ -95,6 +96,9 @@ phase_merge_jars = _phase_merge_jars
# jvm_flags
phase_jvm_flags = _phase_jvm_flags

# scalacopts
phase_scalacopts = _phase_scalacopts

# coverage
phase_coverage_library = _phase_coverage_library
phase_coverage_common = _phase_coverage_common
Expand Down
6 changes: 3 additions & 3 deletions scala/private/rule_impls.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ def compile_scala(
resources,
resource_jars,
labels,
in_scalacopts,
print_compile_time,
expect_java_output,
scalac_jvm_flags,
scalacopts,
scalac,
dependency_info,
unused_dependency_checker_ignored_targets,
Expand All @@ -65,7 +65,7 @@ def compile_scala(
toolchain = ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"]
compiler_classpath_jars = cjars if dependency_info.dependency_mode == "direct" else transitive_compile_jars
classpath_resources = getattr(ctx.files, "classpath_resources", [])
scalacopts = [ctx.expand_location(v, input_plugins) for v in toolchain.scalacopts + in_scalacopts]
scalacopts_expanded = [ctx.expand_location(v, input_plugins) for v in scalacopts]
resource_paths = _resource_paths(resources, resource_strip_prefix)
enable_stats_file = toolchain.enable_stats_file
enable_diagnostics_report = toolchain.enable_diagnostics_report
Expand Down Expand Up @@ -93,7 +93,7 @@ def compile_scala(
args.add_all("--ResourceTargets", [p[0] for p in resource_paths])
args.add_all("--ResourceSources", [p[1] for p in resource_paths])
args.add_all("--ResourceJars", resource_jars)
args.add_all("--ScalacOpts", scalacopts)
args.add_all("--ScalacOpts", scalacopts_expanded)
args.add_all("--SourceJars", all_srcjars)

if dependency_info.need_direct_info:
Expand Down
2 changes: 2 additions & 0 deletions scala/private/rules/scala_binary.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ load(
"phase_merge_jars",
"phase_runfiles_common",
"phase_scalac_provider",
"phase_scalacopts",
"phase_write_executable_common",
"phase_write_manifest",
"run_phases",
Expand All @@ -38,6 +39,7 @@ def _scala_binary_impl(ctx):
("collect_jars", phase_collect_jars_common),
("java_wrapper", phase_java_wrapper_common),
("declare_executable", phase_declare_executable),
("scalacopts", phase_scalacopts),
# no need to build an ijar for an executable
("compile", phase_compile_binary),
("coverage", phase_coverage_common),
Expand Down
2 changes: 2 additions & 0 deletions scala/private/rules/scala_junit_test.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ load(
"phase_merge_jars",
"phase_runfiles_common",
"phase_scalac_provider",
"phase_scalacopts",
"phase_test_environment",
"phase_write_executable_junit_test",
"phase_write_manifest",
Expand All @@ -44,6 +45,7 @@ def _scala_junit_test_impl(ctx):
("collect_jars", phase_collect_jars_junit_test),
("java_wrapper", phase_java_wrapper_common),
("declare_executable", phase_declare_executable),
("scalacopts", phase_scalacopts),
# no need to build an ijar for an executable
("compile", phase_compile_junit_test),
("coverage", phase_coverage_common),
Expand Down
4 changes: 4 additions & 0 deletions scala/private/rules/scala_library.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ load(
"phase_merge_jars",
"phase_runfiles_library",
"phase_scalac_provider",
"phase_scalacopts",
"phase_write_manifest",
"run_phases",
)
Expand Down Expand Up @@ -64,6 +65,7 @@ def _scala_library_impl(ctx):
("write_manifest", phase_write_manifest),
("dependency", phase_dependency_common),
("collect_jars", phase_collect_jars_common),
("scalacopts", phase_scalacopts),
("compile", phase_compile_library),
("coverage", phase_coverage_library),
("merge_jars", phase_merge_jars),
Expand Down Expand Up @@ -143,6 +145,7 @@ def _scala_library_for_plugin_bootstrapping_impl(ctx):
("write_manifest", phase_write_manifest),
("dependency", phase_dependency_library_for_plugin_bootstrapping),
("collect_jars", phase_collect_jars_common),
("scalacopts", phase_scalacopts),
("compile", phase_compile_library_for_plugin_bootstrapping),
("merge_jars", phase_merge_jars),
("runfiles", phase_runfiles_library),
Expand Down Expand Up @@ -201,6 +204,7 @@ def _scala_macro_library_impl(ctx):
("write_manifest", phase_write_manifest),
("dependency", phase_dependency_common),
("collect_jars", phase_collect_jars_macro_library),
("scalacopts", phase_scalacopts),
("compile", phase_compile_macro_library),
("coverage", phase_coverage_common),
("merge_jars", phase_merge_jars),
Expand Down
2 changes: 2 additions & 0 deletions scala/private/rules/scala_repl.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ load(
"phase_merge_jars",
"phase_runfiles_common",
"phase_scalac_provider",
"phase_scalacopts",
"phase_write_executable_repl",
"phase_write_manifest",
"run_phases",
Expand All @@ -39,6 +40,7 @@ def _scala_repl_impl(ctx):
("collect_jars", phase_collect_jars_repl),
("java_wrapper", phase_java_wrapper_repl),
("declare_executable", phase_declare_executable),
("scalacopts", phase_scalacopts),
# no need to build an ijar for an executable
("compile", phase_compile_repl),
("coverage", phase_coverage_common),
Expand Down
2 changes: 2 additions & 0 deletions scala/private/rules/scala_test.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ load(
"phase_merge_jars",
"phase_runfiles_scalatest",
"phase_scalac_provider",
"phase_scalacopts",
"phase_test_environment",
"phase_write_executable_scalatest",
"phase_write_manifest",
Expand All @@ -40,6 +41,7 @@ def _scala_test_impl(ctx):
("collect_jars", phase_collect_jars_scalatest),
("java_wrapper", phase_java_wrapper_common),
("declare_executable", phase_declare_executable),
("scalacopts", phase_scalacopts),
# no need to build an ijar for an executable
("compile", phase_compile_scalatest),
("coverage", phase_coverage_common),
Expand Down
11 changes: 8 additions & 3 deletions scala_proto/private/scala_proto_aspect.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def _generate_sources(ctx, toolchain, proto):

return outputs.values()

def _compile_sources(ctx, toolchain, proto, src_jars, deps, stamp_label):
def _compile_sources(ctx, toolchain, proto, src_jars, deps, scalacopts, stamp_label):
output = ctx.actions.declare_file(ctx.label.name + "_scalapb.jar")
manifest = ctx.actions.declare_file(ctx.label.name + "_MANIFEST.MF")
write_manifest_file(ctx.actions, manifest, None)
Expand Down Expand Up @@ -112,10 +112,10 @@ def _compile_sources(ctx, toolchain, proto, src_jars, deps, stamp_label):
resources = proto.direct_sources,
resource_jars = [],
labels = {},
in_scalacopts = [],
print_compile_time = False,
expect_java_output = False,
scalac_jvm_flags = [],
scalacopts = scalacopts,
scalac = toolchain.scalac,
dependency_info = legacy_unclear_dependency_info_for_protobuf_scrooge(ctx),
unused_dependency_checker_ignored_targets = [],
Expand All @@ -137,15 +137,19 @@ def _phase_proto_provider(ctx, p):
def _phase_deps(ctx, p):
return [d[ScalaProtoAspectInfo].java_info for d in ctx.rule.attr.deps]

def _phase_scalacopts(ctx, p):
return ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"].scalacopts

def _phase_generate_and_compile(ctx, p):
proto = p.proto_info
deps = p.deps
scalacopts = p.scalacopts
stamp_label = p.stamp_label
toolchain = ctx.toolchains["@io_bazel_rules_scala//scala_proto:toolchain_type"]

if proto.direct_sources and _code_should_be_generated(ctx, toolchain):
src_jars = _generate_sources(ctx, toolchain, proto)
java_info = _compile_sources(ctx, toolchain, proto, src_jars, deps, stamp_label)
java_info = _compile_sources(ctx, toolchain, proto, src_jars, deps, scalacopts, stamp_label)
return java_info
else:
# this target is only an aggregation target
Expand Down Expand Up @@ -184,6 +188,7 @@ def _scala_proto_aspect_impl(target, ctx):
("proto_info", _phase_proto_provider),
("deps", _phase_deps),
("stamp_label", _phase_stamp_label),
("scalacopts", _phase_scalacopts),
("generate_and_compile", _phase_generate_and_compile),
("aspect_provider", _phase_aspect_provider),
],
Expand Down
2 changes: 1 addition & 1 deletion twitter_scrooge/twitter_scrooge.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -271,10 +271,10 @@ def _compile_generated_scala(
resources = [],
resource_jars = [],
labels = {},
in_scalacopts = [],
print_compile_time = False,
expect_java_output = False,
scalac_jvm_flags = [],
scalacopts = ctx.toolchains["@io_bazel_rules_scala//scala:toolchain_type"].scalacopts,
scalac = ctx.executable._scalac,
dependency_info = legacy_unclear_dependency_info_for_protobuf_scrooge(ctx),
unused_dependency_checker_ignored_targets = [],
Expand Down