Files
eagle0/tools/BUILD.bazel
T

107 lines
3.8 KiB
Python

load("@rules_scala//scala:providers.bzl", "declare_deps_provider")
load("@rules_scala//scala:scala_toolchain.bzl", "scala_toolchain")
load("@rules_scala//scala_proto:scala_proto_toolchain.bzl", "scalapb_toolchain")
scalapb_toolchain(
name = "custom_scalapb_toolchain_impl",
opts = [
"grpc",
"flat_package",
"java_conversions",
"single_line_to_proto_string",
],
visibility = ["//visibility:public"],
)
toolchain(
name = "custom_scalapb_toolchain",
toolchain = ":custom_scalapb_toolchain_impl",
toolchain_type = "@rules_scala//scala_proto:toolchain_type",
)
scala_toolchain(
name = "unused_dependency_checker_error_and_opts_toolchain_impl",
scalacopts = [
"-deprecation",
"-feature",
# Scala 3 equivalent flags
"-Wvalue-discard",
"-Wunused:all",
# Treat all warnings as errors inside src, silence warnings elsewhere (ie third party deps and rules_scala)
# Also suppress duplicate flag warnings caused by rules_scala test_reporter
# Suppress warnings from external deps, generated code, and some stylistic warnings
# Suppress "unused value" warnings in test code since ScalaTest assertions work via side effects
"-Wconf:src=external/rules_scala.*/.*:silent,src=external/protobuf.*/.*:silent,msg=Flag.*set repeatedly:silent,msg=Compiler synthesis of Manifest:silent,src=.*_scalac/.*:silent,msg=interpolation uses toString:silent,msg=unused value of type org.scalatest:silent,msg=Could not verify that the method argument is transitively initialized:silent,msg=Problematic object instantiation:silent,msg=may cause initialization errors:silent",
# Enable all warnings including exhaustive pattern matching checks
"-Wall",
"-Werror",
],
unused_dependency_checker_mode = "error",
visibility = ["//visibility:public"],
)
toolchain(
name = "unused_dependency_checker_error_and_opts_toolchain",
toolchain = ":unused_dependency_checker_error_and_opts_toolchain_impl",
toolchain_type = "@rules_scala//scala:toolchain_type",
visibility = ["//visibility:public"],
)
declare_deps_provider(
name = "custom_grpc_deps",
deps_id = "scalapb_grpc_deps",
visibility = ["//visibility:public"],
deps = [
"@grpc-java//api",
"@grpc-java//context",
"@grpc-java//core",
"@grpc-java//netty",
"@grpc-java//protobuf",
"@grpc-java//stub",
"@maven//:com_thesamet_scalapb_scalapb_runtime_grpc_3",
"@maven//:io_netty_netty_buffer",
"@maven//:io_netty_netty_codec",
"@maven//:io_netty_netty_codec_http",
"@maven//:io_netty_netty_codec_http2",
"@maven//:io_netty_netty_codec_socks",
"@maven//:io_netty_netty_common",
"@maven//:io_netty_netty_handler",
"@maven//:io_netty_netty_handler_proxy",
"@maven//:io_netty_netty_resolver",
"@maven//:io_netty_netty_transport",
],
)
java_binary(
name = "scalafmt",
main_class = "org.scalafmt.cli.Cli",
visibility = ["//visibility:public"],
runtime_deps = [
"@maven//:org_scalameta_scalafmt_cli_2_13",
],
)
declare_deps_provider(
name = "custom_compile_deps",
deps_id = "scalapb_compile_deps",
visibility = ["//visibility:public"],
deps = [
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:com_thesamet_scalapb_lenses_3",
"@maven//:com_thesamet_scalapb_scalapb_runtime_3",
"@maven//:io_grpc_grpc_protobuf",
"@maven//:org_scala_lang_scala_library",
],
)
declare_deps_provider(
name = "custom_worker_deps",
deps_id = "scalapb_worker_deps",
visibility = ["//visibility:public"],
deps = [
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:com_thesamet_scalapb_compilerplugin_3",
"@maven//:com_thesamet_scalapb_protoc_bridge_3",
],
)