1# Copyright (C) 2017 The Dagger Authors. 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); 4# you may not use this file except in compliance with the License. 5# You may obtain a copy of the License at 6# 7# http://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, 11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12# See the License for the specific language governing permissions and 13# limitations under the License. 14 15load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 16 17############################# 18# Load nested repository 19############################# 20 21# Declare the nested workspace so that the top-level workspace doesn't try to 22# traverse it when calling `bazel build //...` 23local_repository( 24 name = "examples_bazel", 25 path = "examples/bazel", 26) 27 28############################# 29# Load Bazel-Common repository 30############################# 31 32http_archive( 33 name = "google_bazel_common", 34 sha256 = "d8aa0ef609248c2a494d5dbdd4c89ef2a527a97c5a87687e5a218eb0b77ff640", 35 strip_prefix = "bazel-common-4a8d451e57fb7e1efecbf9495587a10684a19eb2", 36 urls = ["https://github.com/google/bazel-common/archive/4a8d451e57fb7e1efecbf9495587a10684a19eb2.zip"], 37) 38 39load("@google_bazel_common//:workspace_defs.bzl", "google_common_workspace_rules") 40 41google_common_workspace_rules() 42 43############################# 44# Load Protobuf dependencies 45############################# 46 47# rules_python and zlib are required by protobuf. 48# TODO(ronshapiro): Figure out if zlib is in fact necessary, or if proto can depend on the 49# @bazel_tools library directly. See discussion in 50# https://github.com/protocolbuffers/protobuf/pull/5389#issuecomment-481785716 51# TODO(cpovirk): Should we eventually get rules_python from "Bazel Federation?" 52# https://github.com/bazelbuild/rules_python#getting-started 53 54http_archive( 55 name = "rules_python", 56 sha256 = "e5470e92a18aa51830db99a4d9c492cc613761d5bdb7131c04bd92b9834380f6", 57 strip_prefix = "rules_python-4b84ad270387a7c439ebdccfd530e2339601ef27", 58 urls = ["https://github.com/bazelbuild/rules_python/archive/4b84ad270387a7c439ebdccfd530e2339601ef27.tar.gz"], 59) 60 61http_archive( 62 name = "zlib", 63 build_file = "@com_google_protobuf//:third_party/zlib.BUILD", 64 sha256 = "629380c90a77b964d896ed37163f5c3a34f6e6d897311f1df2a7016355c45eff", 65 strip_prefix = "zlib-1.2.11", 66 urls = ["https://github.com/madler/zlib/archive/v1.2.11.tar.gz"], 67) 68 69############################# 70# Load Robolectric repository 71############################# 72 73ROBOLECTRIC_VERSION = "4.4" 74 75http_archive( 76 name = "robolectric", 77 sha256 = "d4f2eb078a51f4e534ebf5e18b6cd4646d05eae9b362ac40b93831bdf46112c7", 78 strip_prefix = "robolectric-bazel-%s" % ROBOLECTRIC_VERSION, 79 urls = ["https://github.com/robolectric/robolectric-bazel/archive/%s.tar.gz" % ROBOLECTRIC_VERSION], 80) 81 82load("@robolectric//bazel:robolectric.bzl", "robolectric_repositories") 83 84robolectric_repositories() 85 86############################# 87# Load Kotlin repository 88############################# 89 90RULES_KOTLIN_COMMIT = "2c283821911439e244285b5bfec39148e7d90e21" 91 92RULES_KOTLIN_SHA = "b04cd539e7e3571745179da95069586b6fa76a64306b24bb286154e652010608" 93 94http_archive( 95 name = "io_bazel_rules_kotlin", 96 sha256 = RULES_KOTLIN_SHA, 97 strip_prefix = "rules_kotlin-%s" % RULES_KOTLIN_COMMIT, 98 type = "zip", 99 urls = ["https://github.com/bazelbuild/rules_kotlin/archive/%s.zip" % RULES_KOTLIN_COMMIT], 100) 101 102load("@io_bazel_rules_kotlin//kotlin:dependencies.bzl", "kt_download_local_dev_dependencies") 103 104kt_download_local_dev_dependencies() 105 106load("@io_bazel_rules_kotlin//kotlin:kotlin.bzl", "kotlin_repositories") 107 108KOTLIN_VERSION = "1.4.20" 109 110KOTLINC_RELEASE_SHA = "11db93a4d6789e3406c7f60b9f267eba26d6483dcd771eff9f85bb7e9837011f" 111 112KOTLINC_RELEASE = { 113 "sha256": KOTLINC_RELEASE_SHA, 114 "urls": ["https://github.com/JetBrains/kotlin/releases/download/v{v}/kotlin-compiler-{v}.zip".format(v = KOTLIN_VERSION)], 115} 116 117kotlin_repositories(compiler_release = KOTLINC_RELEASE) 118 119register_toolchains("//:kotlin_toolchain") 120 121############################# 122# Load Maven dependencies 123############################# 124 125RULES_JVM_EXTERNAL_TAG = "2.7" 126 127RULES_JVM_EXTERNAL_SHA = "f04b1466a00a2845106801e0c5cec96841f49ea4e7d1df88dc8e4bf31523df74" 128 129http_archive( 130 name = "rules_jvm_external", 131 sha256 = RULES_JVM_EXTERNAL_SHA, 132 strip_prefix = "rules_jvm_external-%s" % RULES_JVM_EXTERNAL_TAG, 133 url = "https://github.com/bazelbuild/rules_jvm_external/archive/%s.zip" % RULES_JVM_EXTERNAL_TAG, 134) 135 136load("@rules_jvm_external//:defs.bzl", "maven_install") 137 138ANDROID_LINT_VERSION = "26.6.2" 139 140maven_install( 141 artifacts = [ 142 "androidx.annotation:annotation:1.1.0", 143 "androidx.appcompat:appcompat:1.2.0", 144 "androidx.activity:activity:1.2.2", 145 "androidx.fragment:fragment:1.3.2", 146 "androidx.lifecycle:lifecycle-common:2.3.1", 147 "androidx.lifecycle:lifecycle-viewmodel:2.3.1", 148 "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.3.1", 149 "androidx.multidex:multidex:2.0.1", 150 "androidx.savedstate:savedstate:1.0.0", 151 "androidx.test:monitor:1.1.1", 152 "androidx.test:core:1.1.0", 153 "androidx.test.ext:junit:1.1.2", 154 "com.google.auto:auto-common:0.11", 155 "com.android.support:appcompat-v7:25.0.0", 156 "com.android.support:support-annotations:25.0.0", 157 "com.android.support:support-fragment:25.0.0", 158 "com.android.tools.external.org-jetbrains:uast:%s" % ANDROID_LINT_VERSION, 159 "com.android.tools.external.com-intellij:intellij-core:%s" % ANDROID_LINT_VERSION, 160 "com.android.tools.external.com-intellij:kotlin-compiler:%s" % ANDROID_LINT_VERSION, 161 "com.android.tools.lint:lint:%s" % ANDROID_LINT_VERSION, 162 "com.android.tools.lint:lint-api:%s" % ANDROID_LINT_VERSION, 163 "com.android.tools.lint:lint-checks:%s" % ANDROID_LINT_VERSION, 164 "com.android.tools.lint:lint-tests:%s" % ANDROID_LINT_VERSION, 165 "com.android.tools:testutils:%s" % ANDROID_LINT_VERSION, 166 "com.github.tschuchortdev:kotlin-compile-testing:1.2.8", 167 "com.google.guava:guava:27.1-android", 168 "junit:junit:4.13", 169 "org.jetbrains.kotlin:kotlin-stdlib:%s" % KOTLIN_VERSION, 170 "org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.2.0", 171 "org.robolectric:robolectric:4.4", 172 "org.robolectric:shadows-framework:4.4", # For ActivityController 173 ], 174 repositories = [ 175 "https://repo1.maven.org/maven2", 176 "https://maven.google.com", 177 "https://jcenter.bintray.com/", # Lint has one trove4j dependency in jCenter 178 ], 179) 180 181############################# 182# Load Bazel Skylib rules 183############################# 184 185BAZEL_SKYLIB_VERSION = "1.0.2" 186 187BAZEL_SKYLIB_SHA = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44" 188 189http_archive( 190 name = "bazel_skylib", 191 sha256 = BAZEL_SKYLIB_SHA, 192 urls = [ 193 "https://github.com/bazelbuild/bazel-skylib/releases/download/{version}/bazel-skylib-{version}.tar.gz".format(version = BAZEL_SKYLIB_VERSION), 194 ], 195) 196 197load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace") 198 199bazel_skylib_workspace() 200