1"""Module extension for compatibility with previous Bazel versions""" 2 3load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") 4load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") 5 6def _compatibility_proxy_repo_impl(rctx): 7 # TODO: use @bazel_features 8 bazel = native.bazel_version 9 if not bazel or bazel >= "8": 10 rctx.file( 11 "BUILD.bazel", 12 """ 13load("@bazel_skylib//:bzl_library.bzl", "bzl_library") 14exports_files(['proxy.bzl'], visibility = ["@rules_java//test:__pkg__"]) 15bzl_library( 16 name = "proxy_bzl", 17 srcs = ["proxy.bzl"], 18 deps = [ 19 "@rules_java//java/bazel/rules", 20 "@rules_java//java/common/rules:toolchain_rules", 21 "@rules_java//java/private:internals", 22 "@rules_java//java/bazel:http_jar_bzl", 23 ], 24 visibility = ["//visibility:public"] 25) 26 """, 27 ) 28 rctx.file( 29 "proxy.bzl", 30 """ 31load("@rules_java//java/bazel/rules:bazel_java_binary_wrapper.bzl", _java_binary = "java_binary") 32load("@rules_java//java/bazel/rules:bazel_java_import.bzl", _java_import = "java_import") 33load("@rules_java//java/bazel/rules:bazel_java_library.bzl", _java_library = "java_library") 34load("@rules_java//java/bazel/rules:bazel_java_plugin.bzl", _java_plugin = "java_plugin") 35load("@rules_java//java/bazel/rules:bazel_java_test.bzl", _java_test = "java_test") 36load("@rules_java//java/bazel:http_jar.bzl", _http_jar = "http_jar") 37load("@rules_java//java/common/rules:java_package_configuration.bzl", _java_package_configuration = "java_package_configuration") 38load("@rules_java//java/common/rules:java_runtime.bzl", _java_runtime = "java_runtime") 39load("@rules_java//java/common/rules:java_toolchain.bzl", _java_toolchain = "java_toolchain") 40load("@rules_java//java/private:java_common.bzl", _java_common = "java_common") 41load("@rules_java//java/private:java_common_internal.bzl", _java_common_internal_compile = "compile") 42load("@rules_java//java/private:java_info.bzl", _JavaInfo = "JavaInfo", _JavaPluginInfo = "JavaPluginInfo", _java_info_internal_merge = "merge") 43 44java_binary = _java_binary 45java_import = _java_import 46java_library = _java_library 47java_plugin = _java_plugin 48java_test = _java_test 49java_package_configuration = _java_package_configuration 50java_runtime = _java_runtime 51java_toolchain = _java_toolchain 52java_common = _java_common 53JavaInfo = _JavaInfo 54JavaPluginInfo = _JavaPluginInfo 55java_common_internal_compile = _java_common_internal_compile 56java_info_internal_merge = _java_info_internal_merge 57http_jar = _http_jar 58 """, 59 ) 60 else: 61 rctx.file( 62 "BUILD.bazel", 63 """ 64load("@bazel_skylib//:bzl_library.bzl", "bzl_library") 65exports_files(['proxy.bzl'], visibility = ["@rules_java//test:__pkg__"]) 66bzl_library( 67 name = "proxy_bzl", 68 srcs = ["proxy.bzl"], 69 deps = [ 70 "@rules_java//java/private:native_bzl", 71 "@bazel_tools//tools:bzl_srcs", 72 ], 73 visibility = ["//visibility:public"] 74) 75 """, 76 ) 77 rctx.file( 78 "proxy.bzl", 79 """ 80load("@bazel_tools//tools/build_defs/repo:http.bzl", _http_jar = "http_jar") 81load("@rules_java//java/private:native.bzl", "native_java_common", "NativeJavaInfo", "NativeJavaPluginInfo") 82 83java_binary = native.java_binary 84java_import = native.java_import 85java_library = native.java_library 86java_plugin = native.java_plugin 87java_test = native.java_test 88 89java_package_configuration = native.java_package_configuration 90java_runtime = native.java_runtime 91java_toolchain = native.java_toolchain 92 93java_common = native_java_common 94JavaInfo = NativeJavaInfo 95JavaPluginInfo = NativeJavaPluginInfo 96java_common_internal_compile = None 97java_info_internal_merge = None 98 99http_jar = _http_jar 100 """, 101 ) 102 103_compatibility_proxy_repo_rule = repository_rule( 104 _compatibility_proxy_repo_impl, 105 # force reruns on server restarts to use correct native.bazel_version 106 local = True, 107) 108 109def compatibility_proxy_repo(): 110 maybe(_compatibility_proxy_repo_rule, name = "compatibility_proxy") 111 112def _compat_proxy_impl(_unused): 113 compatibility_proxy_repo() 114 115compatibility_proxy = module_extension(_compat_proxy_impl) 116 117def protobuf_repo(): 118 maybe( 119 http_archive, 120 name = "com_google_protobuf", 121 sha256 = "ce5d00b78450a0ca400bf360ac00c0d599cc225f049d986a27e9a4e396c5a84a", 122 strip_prefix = "protobuf-29.0-rc2", 123 url = "https://github.com/protocolbuffers/protobuf/releases/download/v29.0-rc2/protobuf-29.0-rc2.tar.gz", 124 ) 125 126def rules_cc_repo(): 127 maybe( 128 http_archive, 129 name = "rules_cc", 130 sha256 = "f4aadd8387f381033a9ad0500443a52a0cea5f8ad1ede4369d3c614eb7b2682e", 131 strip_prefix = "rules_cc-0.0.15", 132 urls = ["https://github.com/bazelbuild/rules_cc/releases/download/0.0.15/rules_cc-0.0.15.tar.gz"], 133 ) 134 135def bazel_skylib_repo(): 136 maybe( 137 http_archive, 138 name = "bazel_skylib", 139 sha256 = "bc283cdfcd526a52c3201279cda4bc298652efa898b10b4db0837dc51652756f", 140 urls = [ 141 "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz", 142 "https://github.com/bazelbuild/bazel-skylib/releases/download/1.7.1/bazel-skylib-1.7.1.tar.gz", 143 ], 144 ) 145 146def rules_java_dependencies(): 147 """An utility method to load non-toolchain dependencies of rules_java. 148 149 Loads the remote repositories used by default in Bazel. 150 """ 151 compatibility_proxy_repo() 152 bazel_skylib_repo() 153 rules_cc_repo() 154 protobuf_repo() 155