|  | # Copyright 2021 Google LLC | 
|  | # | 
|  | # 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 | 
|  | # | 
|  | #      https://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. | 
|  | """Configures a separate workspace for IREE's TF integrations. | 
|  |  | 
|  | This is siloed to limit TF complexity from leaking into the main project. It | 
|  | adds the core IREE project and its submodules as repo aliases based on relative | 
|  | directory paths.""" | 
|  |  | 
|  | load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") | 
|  | load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") | 
|  |  | 
|  | IREE_PATH = "../.." | 
|  |  | 
|  | #################################### Skylib #################################### | 
|  | http_archive( | 
|  | name = "bazel_skylib", | 
|  | sha256 = "97e70364e9249702246c0e9444bccdc4b847bed1eb03c5a3ece4f83dfe6abc44", | 
|  | urls = [ | 
|  | "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz", | 
|  | "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.2/bazel-skylib-1.0.2.tar.gz", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | load("@bazel_skylib//lib:paths.bzl", "paths") | 
|  | ################################################################################ | 
|  |  | 
|  | ################################## TensorFlow ################################## | 
|  | maybe( | 
|  | local_repository, | 
|  | name = "org_tensorflow", | 
|  | path = paths.join(IREE_PATH, "third_party/tensorflow"), | 
|  | ) | 
|  |  | 
|  | # Import all of the tensorflow dependencies. Note that we are deliberately | 
|  | # letting TensorFlow take control of all the dependencies it sets up, whereas | 
|  | # ours are initialized with `maybe`. Actually tracking this with Bazel is PITA | 
|  | # and for now this gets TF stuff building. This includes, for instance, | 
|  | # @llvm-project and @com_google_absl. | 
|  | load("@org_tensorflow//tensorflow:workspace3.bzl", "tf_workspace3") | 
|  |  | 
|  | tf_workspace3() | 
|  |  | 
|  | load("@org_tensorflow//tensorflow:workspace2.bzl", "tf_workspace2") | 
|  |  | 
|  | tf_workspace2() | 
|  |  | 
|  | load("@org_tensorflow//tensorflow:workspace1.bzl", "tf_workspace1") | 
|  |  | 
|  | tf_workspace1() | 
|  |  | 
|  | load("@org_tensorflow//tensorflow:workspace0.bzl", "tf_workspace0") | 
|  |  | 
|  | tf_workspace0() | 
|  | ################################################################################ | 
|  |  | 
|  | ##################################### IREE ##################################### | 
|  | # We need a shim here to make this use the version of mlir-hlo present in | 
|  | # TensorFlow. This shim is just alias rules that forward to the TF rule. Note | 
|  | # that because configure_iree_submodule_deps uses `maybe` and we define this | 
|  | # first we will use this definition instead of the one there. | 
|  | maybe( | 
|  | local_repository, | 
|  | name = "mlir-hlo", | 
|  | path = "build_tools/overlay/mlir-hlo", | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | local_repository, | 
|  | name = "iree", | 
|  | path = IREE_PATH, | 
|  | ) | 
|  |  | 
|  | load("@iree//build_tools/bazel:workspace.bzl", "configure_iree_submodule_deps") | 
|  |  | 
|  | configure_iree_submodule_deps( | 
|  | iree_path = IREE_PATH, | 
|  | iree_repo_alias = "@iree", | 
|  | ) | 
|  | ################################################################################ |