commit | acaa900b549be2f1855696d5a814db1cb9c81f1b | [log] [tgz] |
---|---|---|
author | David Flemström <david.flemstrom@gmail.com> | Sat Jun 09 20:08:13 2018 +0200 |
committer | Hassan Syed <h.a.syed@gmail.com> | Mon Jun 11 12:32:35 2018 +0100 |
tree | ab3c37529c25b2e78cb950e90a204b22ce34e02d | |
parent | cab1d677ef26b07125586029e654581ab8540342 [diff] |
Manually call the Kotlin compiler during bootstrap The usual `kotlinc` wrapper script fails to correctly detect KOTLIN_HOME unless we run with --spawn_strategy=standalone. With this change, it becomes possible to run the build even with a remote Bazel executor, or within a sandbox if desired.
kt_jvm_test
which allows the test to access internal members of the module under test.kotlin_
to kt_jvm_
.These rules were initially forked from pubref/rules_kotlin. Key changes:
kotlin_binary
, kotlin_library
and kotlin_test
.java_dep
and dep
.data
resource_jars
runtime_deps
resources
resources_strip_prefix
exports
In the project's WORKSPACE
, declare the external repository and initialize the toolchains, like this:
kotlin_release_version="1.2.30" rules_kotlin_version = "67f4a6050584730ebae7f8a40435a209f8e0b48e" http_archive( name = "io_bazel_rules_kotlin", urls = ["https://github.com/bazelbuild/rules_kotlin/archive/%s.zip" % rules_kotlin_version], type = "zip", strip_prefix = "rules_kotlin-%s" % rules_kotlin_version ) load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories", "kt_register_toolchains") kotlin_repositories(kotlin_release_version=kotlin_release_version) kt_register_toolchains()
If you omit kotlin_release_version
and just call kotlin_repositories()
with no arguments, you'll get the current kotlin compiler version (at least as known to the rules_kotlin project).
In your project's BUILD
files, load the kotlin rules and use them like so:
load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kt_jvm_library") kt_jvm_library( name = "package_name", srcs = glob(["*.kt"]), deps = [ "//path/to/dependency", ], )
This project is licensed under the Apache 2.0 license, as are all contributions
See the CONTRIBUTING doc for information about how to contribute to this project.