blob: a9ecad1cb9d3a54b88980ae2814b499b6e2806d3 [file] [log] [blame]
# Copyright 2024 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
"""Bzlmod extension for IREE repository rules."""
load("@bazel_tools//tools/build_defs/repo:local.bzl", "local_repository", "new_local_repository")
load("//build_tools/bazel:workspace.bzl", "cuda_auto_configure")
def _iree_extension_impl(module_ctx):
"""Implementation of the IREE module extension."""
# Create llvm-raw only when IREE is the root module.
# This allows downstream consumers to provide their own LLVM.
if any([m.is_root and m.name == "iree_core" for m in module_ctx.modules]):
new_local_repository(
name = "llvm-raw",
build_file_content = "# empty",
path = "third_party/llvm-project",
)
# Googletest
local_repository(
name = "com_google_googletest",
path = "third_party/googletest",
)
# Flatcc
new_local_repository(
name = "com_github_dvidelabs_flatcc",
build_file = "@iree_core//:build_tools/third_party/flatcc/BUILD.overlay",
path = "third_party/flatcc",
)
# Vulkan headers
new_local_repository(
name = "vulkan_headers",
build_file = "@iree_core//:build_tools/third_party/vulkan_headers/BUILD.overlay",
path = "third_party/vulkan_headers",
)
# StableHLO
local_repository(
name = "stablehlo",
path = "third_party/stablehlo",
)
# Benchmark
local_repository(
name = "com_google_benchmark",
path = "third_party/benchmark",
)
# SPIRV-Cross
new_local_repository(
name = "spirv_cross",
build_file = "@iree_core//:build_tools/third_party/spirv_cross/BUILD.overlay",
path = "third_party/spirv_cross",
)
# Tracy
new_local_repository(
name = "tracy_client",
build_file = "@iree_core//:build_tools/third_party/tracy_client/BUILD.overlay",
path = "third_party/tracy",
)
# NCCL
new_local_repository(
name = "nccl",
build_file = "@iree_core//:build_tools/third_party/nccl/BUILD.overlay",
path = "third_party/nccl",
)
# HSA runtime headers
new_local_repository(
name = "hsa_runtime_headers",
build_file = "@iree_core//:build_tools/third_party/hsa-runtime-headers/BUILD.overlay",
path = "third_party/hsa-runtime-headers",
)
# WebGPU headers
new_local_repository(
name = "webgpu_headers",
build_file = "@iree_core//:build_tools/third_party/webgpu-headers/BUILD.overlay",
path = "third_party/webgpu-headers",
)
# CUDA auto-configuration
cuda_auto_configure(
name = "iree_cuda",
iree_repo_alias = "@iree_core",
)
iree_extension = module_extension(
implementation = _iree_extension_impl,
)