daml/scala-protoc-plugins/scalapb/BUILD.bazel
Samuel Williams 9179b2e7d0
Jar licensing (#17299)
* Add _distribute.jar target with correct license
Use it everywhere

* Fixes from review

* Change NOTICES to NOTICES.txt for consistency
2023-08-22 15:56:29 +01:00

62 lines
2.0 KiB
Python

# Copyright (c) 2023 Digital Asset (Switzerland) GmbH and/or its affiliates. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
load("//bazel_tools:scala.bzl", "da_scala_binary", "da_scala_library")
da_scala_binary(
name = "compiler_plugin",
srcs = glob(["*.scala"]),
main_class = "com.daml.protoc.plugins.scalapb.ScalaPbCompilerPlugin",
scala_deps = [
"@maven//:com_thesamet_scalapb_compilerplugin",
"@maven//:com_thesamet_scalapb_protoc_bridge",
"@maven//:com_thesamet_scalapb_protoc_gen",
],
visibility = ["//visibility:public"],
deps = [
"@maven//:com_google_protobuf_protobuf_java",
],
)
# From https://github.com/stackb/rules_proto/blob/3f890f5d6774bd74df28e89b20f34155dfe77732/scala/BUILD.bazel#L78-L97
# Curiously this didn't work
#
# genrule(
# name = "gen_protoc_gen_scala",
# srcs = ["compiler_plugin_distribute.jar", "@local_jdk//:bin/java"],
# outs = ["protoc-gen-scala.sh"],
# cmd = """
# echo '$(location @local_jdk//:bin/java) -jar $(location protoc_gen_deploy.jar) $$@' > $@
# """,
# executable = True,
# )
# ======================================================================
#
# Unable to get either bazel or maybe protoc to call a plugin whose
# implementation was fronted by a shell script (from a genrule). So, the only
# way this seemed to work was compile an executable that calls 'java -jar
# protoc_gen_scala_deploy.jar'. Either figure out how to do this in java
# directly or write the wrapper in C++ ot remove the go dependency here.
#
load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
go_library(
name = "go_default_library",
srcs = [
"protoc-gen-scalapb.go",
],
importpath = "github.com/digital-asset/daml/scala/protoc-gen-scalapb",
visibility = ["//visibility:public"],
)
go_binary(
name = "protoc-gen-scalapb",
data = [
":compiler_plugin_distribute.jar",
"@bazel_tools//tools/jdk",
],
embed = [":go_default_library"],
visibility = ["//visibility:public"],
)