# 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", "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"],
)

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:generate_embed_data",
    h_file_output = "iree_cuda/libdevice_embedded.h",
    includes = [
        "iree_cuda",
    ],
)
