summaryrefslogtreecommitdiff
path: root/kotlin/internal/repositories/repositories.bzl
diff options
context:
space:
mode:
Diffstat (limited to 'kotlin/internal/repositories/repositories.bzl')
-rw-r--r--kotlin/internal/repositories/repositories.bzl78
1 files changed, 78 insertions, 0 deletions
diff --git a/kotlin/internal/repositories/repositories.bzl b/kotlin/internal/repositories/repositories.bzl
new file mode 100644
index 0000000..3faa13c
--- /dev/null
+++ b/kotlin/internal/repositories/repositories.bzl
@@ -0,0 +1,78 @@
+# Copyright 2018 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""This file contains the Kotlin compiler repository definitions. It should not be loaded directly by client workspaces.
+"""
+load("@bazel_tools//tools/build_defs/repo:http.bzl", _http_file="http_file", _http_archive="http_archive")
+load("//kotlin/internal:defs.bzl", "KT_COMPILER_REPO")
+load("//kotlin/internal/repositories:compiler_releases.bzl", "KOTLIN_COMPILER_RELEASES", "KOTLIN_CURRENT_RELEASE")
+load("//third_party/jvm:workspace.bzl", _maven_dependencies="maven_dependencies")
+
+_BAZEL_JAVA_LAUNCHER_VERSION = "0.8.1"
+
+def github_archive(name, repo, commit, build_file_content = None):
+ if build_file_content:
+ _http_archive(
+ name = name,
+ strip_prefix = "%s-%s" % (repo.split("/")[1], commit),
+ url = "https://github.com/%s/archive/%s.zip" % (repo, commit),
+ type = "zip",
+ build_file_content = build_file_content,
+ )
+ else:
+ _http_archive(
+ name = name,
+ strip_prefix = "%s-%s" % (repo.split("/")[1], commit),
+ url = "https://github.com/%s/archive/%s.zip" % (repo, commit),
+ type = "zip",
+ )
+
+def _compiler_repositories(kotlin_release_version):
+ """
+ Prime the compiler repository.
+
+ This function should not be called directly instead `kotlin_repositories` from `//kotlin:kotlin.bzl` should be
+ called to ensure common deps are loaded.
+ """
+ release=KOTLIN_COMPILER_RELEASES[kotlin_release_version]
+ if not release:
+ fail('"%s" not a valid kotlin release, current release is "%s"' % (kotlin_release_version, KOTLIN_CURRENT_RELEASE))
+
+ _http_archive(
+ name = KT_COMPILER_REPO,
+ url = release["url"],
+ sha256 = release["sha256"],
+ build_file= "@io_bazel_rules_kotlin//kotlin/internal/repositories:BUILD.com_github_jetbrains_kotlin",
+ strip_prefix = "kotlinc",
+ )
+
+ _http_file(
+ name = "kt_java_stub_template",
+ urls = [("https://raw.githubusercontent.com/bazelbuild/bazel/" +
+ _BAZEL_JAVA_LAUNCHER_VERSION +
+ "/src/main/java/com/google/devtools/build/lib/bazel/rules/java/" +
+ "java_stub_template.txt")],
+ sha256 = "86660ee7d5b498ccf611a1e000564f45268dbf301e0b2b08c984dcecc6513f6e",
+ )
+
+def kotlin_repositories(
+ kotlin_release_version=KOTLIN_CURRENT_RELEASE
+):
+ """Call this in the WORKSPACE file to setup the Kotlin rules.
+
+ Args:
+ kotlin_release_version: The kotlin compiler release version. If this is not set the latest release version is
+ chosen by default.
+ """
+ _maven_dependencies()
+ _compiler_repositories(kotlin_release_version)