Skip to content

Commit fac4a15

Browse files
authored
Add javac_option to pass release flag to javac (#1064)
1 parent 1d9a8f2 commit fac4a15

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

docs/kotlin.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ kt_js_library(<a href="#kt_js_library-name">name</a>, <a href="#kt_js_library-kw
4848

4949
## kt_javac_options
5050

51-
kt_javac_options(<a href="#kt_javac_options-name">name</a>, <a href="#kt_javac_options-warn">warn</a>, <a href="#kt_javac_options-x_ep_disable_all_checks">x_ep_disable_all_checks</a>, <a href="#kt_javac_options-x_explicit_api_mode">x_explicit_api_mode</a>, <a href="#kt_javac_options-x_lint">x_lint</a>,
51+
kt_javac_options(<a href="#kt_javac_options-name">name</a>, <a href="#kt_javac_options-release">release</a>, <a href="#kt_javac_options-warn">warn</a>, <a href="#kt_javac_options-x_ep_disable_all_checks">x_ep_disable_all_checks</a>, <a href="#kt_javac_options-x_explicit_api_mode">x_explicit_api_mode</a>, <a href="#kt_javac_options-x_lint">x_lint</a>,
5252
<a href="#kt_javac_options-xd_suppress_notes">xd_suppress_notes</a>)
5353

5454
@@ -61,6 +61,7 @@ kt_javac_options(<a href="#kt_javac_options-name">name</a>, <a href="#kt_javac_o
6161
| Name | Description | Type | Mandatory | Default |
6262
| :------------- | :------------- | :------------- | :------------- | :------------- |
6363
|<a id="kt_javac_options-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
64+
|<a id="kt_javac_options-release"></a>release | Compile for the specified Java SE release | String | optional | "default" |
6465
|<a id="kt_javac_options-warn"></a>warn | Control warning behaviour. | String | optional | "report" |
6566
|<a id="kt_javac_options-x_ep_disable_all_checks"></a>x_ep_disable_all_checks | See javac -XepDisableAllChecks documentation | Boolean | optional | False |
6667
|<a id="kt_javac_options-x_explicit_api_mode"></a>x_explicit_api_mode | Enable explicit API mode for Kotlin libraries. | String | optional | "off" |
@@ -368,7 +369,7 @@ kt_compiler_plugin(<a href="#kt_compiler_plugin-name">name</a>, <a href="#kt_com
368369

369370
## kt_javac_options
370371

371-
kt_javac_options(<a href="#kt_javac_options-name">name</a>, <a href="#kt_javac_options-warn">warn</a>, <a href="#kt_javac_options-x_ep_disable_all_checks">x_ep_disable_all_checks</a>, <a href="#kt_javac_options-x_explicit_api_mode">x_explicit_api_mode</a>, <a href="#kt_javac_options-x_lint">x_lint</a>,
372+
kt_javac_options(<a href="#kt_javac_options-name">name</a>, <a href="#kt_javac_options-release">release</a>, <a href="#kt_javac_options-warn">warn</a>, <a href="#kt_javac_options-x_ep_disable_all_checks">x_ep_disable_all_checks</a>, <a href="#kt_javac_options-x_explicit_api_mode">x_explicit_api_mode</a>, <a href="#kt_javac_options-x_lint">x_lint</a>,
372373
<a href="#kt_javac_options-xd_suppress_notes">xd_suppress_notes</a>)
373374

374375
@@ -381,6 +382,7 @@ kt_javac_options(<a href="#kt_javac_options-name">name</a>, <a href="#kt_javac_o
381382
| Name | Description | Type | Mandatory | Default |
382383
| :------------- | :------------- | :------------- | :------------- | :------------- |
383384
|<a id="kt_javac_options-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
385+
|<a id="kt_javac_options-release"></a>release | Compile for the specified Java SE release | String | optional | "default" |
384386
|<a id="kt_javac_options-warn"></a>warn | Control warning behaviour. | String | optional | "report" |
385387
|<a id="kt_javac_options-x_ep_disable_all_checks"></a>x_ep_disable_all_checks | See javac -XepDisableAllChecks documentation | Boolean | optional | False |
386388
|<a id="kt_javac_options-x_explicit_api_mode"></a>x_explicit_api_mode | Enable explicit API mode for Kotlin libraries. | String | optional | "off" |

kotlin/internal/jvm/compile.bzl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -763,7 +763,7 @@ def _run_kt_java_builder_actions(
763763
# If there is Java source or KAPT generated Java source compile that Java and fold it into
764764
# the final ABI jar. Otherwise just use the KT ABI jar as final ABI jar.
765765
if srcs.java or generated_kapt_src_jars or srcs.src_jars:
766-
javac_opts = javac_options_to_flags(toolchains.kt.javac_options)
766+
javac_opts = javac_options_to_flags(ctx.attr.javac_opts[JavacOptions] if ctx.attr.javac_opts else toolchains.kt.javac_options)
767767

768768
# Kotlin takes care of annotation processing. Note that JavaBuilder "discovers"
769769
# annotation processors in `deps` also.

src/main/starlark/core/options/opts.javac.bzl

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,21 @@ _JOPTS = {
2929
"report": None,
3030
},
3131
),
32+
"release": struct(
33+
args = dict(
34+
default = "default",
35+
doc = "Compile for the specified Java SE release",
36+
values = ["default", "8", "11", "17", "21"],
37+
),
38+
type = attr.string,
39+
value_to_flag = {
40+
"8": ["--release 8"],
41+
"11": ["--release 11"],
42+
"17": ["--release 17"],
43+
"21": ["--release 21"],
44+
"default": None,
45+
},
46+
),
3247
"x_ep_disable_all_checks": struct(
3348
args = dict(
3449
default = False,

0 commit comments

Comments
 (0)