| # Copyright 2022 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 |
| |
| |
| load("@bazel_skylib//rules:common_settings.bzl", "bool_flag") |
| # Variables and string substitutions don't work here because of course they don't |
| load("%IREE_REPO_ALIAS%//build_tools/embed_data:build_defs.bzl", "iree_c_embed_data") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| # The repository rule will perform some substitutions that we use to |
| # customize the build based on the actually found toolkit. |
| ENABLED = %ENABLED% |
| LIBDEVICE_REL_PATH = "%LIBDEVICE_REL_PATH%" |
| |
| # Note that this BUILD file is overlaid on top of a partial CUDA SDK directory |
| # as symlinked by the cuda_auto_configure repository rule in |
| # build_tools/bazel/workspace.bzl |
| |
| # This flag will be True if the workspace repository rules detected a usable |
| # SDK. config_settings in the project can join over this in order to |
| # conditionally enable CUDA features based on pressence of the SDK. |
| bool_flag( |
| name = "enabled", |
| build_setting_default = ENABLED, |
| ) |
| |
| # If the SDK was not found, these targets will be missing inputs and will |
| # error if used. This will happen if someone tries to build them directly |
| # or transitively. |
| |
| cc_library( |
| name = "headers", |
| hdrs = glob([ |
| "include/**/*.h", |
| "include/**/*.hpp", |
| "include/nv/**/*", |
| ]), |
| includes = ["include"], |
| ) |
| |
| iree_c_embed_data( |
| name = "libdevice_embedded", |
| srcs = [ |
| LIBDEVICE_REL_PATH, |
| ], |
| c_file_output = "iree_cuda/libdevice_embedded.c", |
| flatten = True, |
| generator = "%IREE_REPO_ALIAS%//build_tools/embed_data:iree-c-embed-data", |
| h_file_output = "iree_cuda/libdevice_embedded.h", |
| includes = [ |
| "iree_cuda", |
| ], |
| ) |