diff options
author | David Ostrovsky <david@ostrovsky.org> | 2018-01-31 09:01:27 +0100 |
---|---|---|
committer | David Ostrovsky <david@ostrovsky.org> | 2018-01-31 23:12:04 +0100 |
commit | 85b488f7fa12cfe7bfd3c10aecd25aefda734a17 (patch) | |
tree | fcdf8ec96c28379dc8fb045460f1fe63fbe5c4f7 | |
parent | b718551571983f281d065e818da4fd9ca5723d89 (diff) | |
download | protobuf-85b488f7fa12cfe7bfd3c10aecd25aefda734a17.tar.gz protobuf-85b488f7fa12cfe7bfd3c10aecd25aefda734a17.tar.bz2 protobuf-85b488f7fa12cfe7bfd3c10aecd25aefda734a17.zip |
Bazel: Support building with Java 9
Fixes: #4256.
Bazel@HEAD supports Java 9.
The current code has one single issue with Java 9 compliance: the usage
of sun.misc package. We add jdk.unsupported module with --add-modules
compiler option for now. Long term, the usage of non public API should
be avoided.
To build with Java 9, build custom bazel version and issue:
$ bazel --host_javabase=/usr/lib64/jvm/java-9-openjdk build \
--javacopt='--release 9' \
--java_toolchain=@bazel_tools//tools/jdk:toolchain_jdk9 \
:protobuf_java
-rw-r--r-- | BUILD | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -5,6 +5,17 @@ licenses(["notice"]) exports_files(["LICENSE"]) ################################################################################ +# Java 9 configuration +################################################################################ + +config_setting( + name = "jdk9", + values = { + "java_toolchain": "@bazel_tools//tools/jdk:toolchain_jdk9", + }, +) + +################################################################################ # Protobuf Runtime Library ################################################################################ @@ -608,7 +619,10 @@ java_library( ]) + [ ":gen_well_known_protos_java", ], - javacopts = ["-source 7", "-target 7"], + javacopts = select({ + "//:jdk9": ["--add-modules=jdk.unsupported"], + "//conditions:default": ["-source 7", "-target 7"], + }), visibility = ["//visibility:public"], ) |