|  | # Copyright 2021 The IREE Authors | 
|  | # | 
|  | # Licensed under the Apache License v2.0 with LLVM Exceptions. | 
|  | # See https://llvm.org/LICENSE.txt for license information. | 
|  | # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception | 
|  | """Helper functions for configuring IREE and dependent project WORKSPACE files.""" | 
|  |  | 
|  | load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") | 
|  | load("@bazel_skylib//lib:paths.bzl", "paths") | 
|  |  | 
|  | def configure_iree_submodule_deps(iree_repo_alias = "@", iree_path = "./"): | 
|  | """Configure all of IREE's simple repository dependencies that come from submodules. | 
|  |  | 
|  | Simple is defined here as just calls to `local_repository` or | 
|  | `new_local_repository`. This assumes you have a directory that includes IREE | 
|  | and all its submodules. Note that fetching a GitHub archive does not include | 
|  | submodules. | 
|  | Yes it is necessary to have both the workspace alias and path argument... | 
|  |  | 
|  | Args: | 
|  | iree_repo_alias: The alias for the IREE repository. | 
|  | iree_path: The path to the IREE repository containing submodules | 
|  | """ | 
|  |  | 
|  | maybe( | 
|  | native.local_repository, | 
|  | name = "com_google_absl", | 
|  | path = paths.join(iree_path, "third_party/abseil-cpp"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.local_repository, | 
|  | name = "com_google_googletest", | 
|  | path = paths.join(iree_path, "third_party/googletest"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.new_local_repository, | 
|  | name = "com_github_dvidelabs_flatcc", | 
|  | build_file = iree_repo_alias + "//:build_tools/third_party/flatcc/BUILD.overlay", | 
|  | path = paths.join(iree_path, "third_party/flatcc"), | 
|  | ) | 
|  |  | 
|  | # TODO(scotttodd): TensorFlow is squatting on the vulkan_headers repo name, so | 
|  | # we use a temporary one until resolved. Theirs is set to an outdated version. | 
|  | maybe( | 
|  | native.new_local_repository, | 
|  | name = "iree_vulkan_headers", | 
|  | build_file = iree_repo_alias + "//:build_tools/third_party/vulkan_headers/BUILD.overlay", | 
|  | path = paths.join(iree_path, "third_party/vulkan_headers"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.new_local_repository, | 
|  | name = "vulkan_memory_allocator", | 
|  | build_file = iree_repo_alias + "//:build_tools/third_party/vulkan_memory_allocator/BUILD.overlay", | 
|  | path = paths.join(iree_path, "third_party/vulkan_memory_allocator"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.local_repository, | 
|  | name = "spirv_headers", | 
|  | path = paths.join(iree_path, "third_party/spirv_headers"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.local_repository, | 
|  | name = "mlir-hlo", | 
|  | path = paths.join(iree_path, "third_party/mlir-hlo"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.local_repository, | 
|  | name = "com_google_benchmark", | 
|  | path = paths.join(iree_path, "third_party/benchmark"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.new_local_repository, | 
|  | name = "renderdoc_api", | 
|  | build_file = iree_repo_alias + "//:build_tools/third_party/renderdoc_api/BUILD.overlay", | 
|  | path = paths.join(iree_path, "third_party/renderdoc_api"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.new_local_repository, | 
|  | name = "cpuinfo", | 
|  | build_file = iree_repo_alias + "//:build_tools/third_party/cpuinfo/BUILD.overlay", | 
|  | path = paths.join(iree_path, "third_party/cpuinfo"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.new_local_repository, | 
|  | name = "spirv_cross", | 
|  | build_file = iree_repo_alias + "//:build_tools/third_party/spirv_cross/BUILD.overlay", | 
|  | path = paths.join(iree_path, "third_party/spirv_cross"), | 
|  | ) | 
|  |  | 
|  | maybe( | 
|  | native.new_local_repository, | 
|  | name = "cuda", | 
|  | build_file = iree_repo_alias + "//:build_tools/third_party/cuda/BUILD.overlay", | 
|  | path = paths.join(iree_path, "third_party/cuda"), | 
|  | ) |