daml/scala-protoc-plugins/scalapb/BUILD.bazel
Andreas Herrmann 2bd1db490a
Replace bazel-deps by rules_jvm_external (#3253)
* Update bazel-common to fix javadoc issues

Specifically, to fix the following error

```
ERROR: /home/aj/tweag.io/da/da-bazel-1.1/ledger-api/rs-grpc-bridge/BUILD.bazel:7:1: in javadoc_library rule //ledger-api/rs-grpc-bridge:rs-grpc-bridge_javadoc:
Traceback (most recent call last):
        File "/home/aj/tweag.io/da/da-bazel-1.1/ledger-api/rs-grpc-bridge/BUILD.bazel", line 7
                javadoc_library(name = 'rs-grpc-bridge_javadoc')
        File "/home/aj/.cache/bazel/_bazel_aj/5f825ad28f8e070f999ba37395e46ee5/external/com_github_google_bazel_common/tools/javadoc/javadoc.bzl", line 27, in _javadoc_library
                dep.java.transitive_deps
object of type 'JavaSkylarkApiProvider' has no field 'transitive_deps'
```

* Define Maven deps using rules_jvm_external

* Pin artifacts

* Remove bazel-deps generated targets

* Remove bazel-deps

* Switch to rules_jvm_external targets

* update bazel documentation

* pom_file: There are no more bazel-deps targets

* BAZEL-JVM.md `maven_install` typo
2019-10-28 13:53:14 +01:00

62 lines
2.0 KiB
Python

# Copyright (c) 2019 The DAML Authors. 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.digitalasset.protoc.plugins.scalapb.ScalaPbCompilerPlugin",
visibility = ["//visibility:public"],
runtime_deps = [
"@com_github_scalapb_scalapb//:scala-library",
],
deps = [
"@maven//:com_google_protobuf_protobuf_java",
"@maven//:com_thesamet_scalapb_compilerplugin_2_12",
"@maven//:com_thesamet_scalapb_protoc_bridge_2_12",
],
)
# 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_deploy.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_deploy.jar",
"@bazel_tools//tools/jdk:jre",
],
embed = [":go_default_library"],
visibility = ["//visibility:public"],
)