xref: /aosp_15_r20/external/tensorflow/third_party/gpus/local_config_cuda.BUILD (revision b6fb3261f9314811a0f4371741dbb8839866f948)
1load("@bazel_skylib//rules:common_settings.bzl", "string_flag")
2load("@local_config_cuda//cuda:build_defs.bzl", "enable_cuda_flag")
3
4package(default_visibility = ["//visibility:public"])
5
6# Build flag to enable CUDA support.
7#
8# Enable with '--@local_config_cuda//:enable_cuda', or indirectly with
9# ./configure or '--config=cuda'.
10enable_cuda_flag(
11    name = "enable_cuda",
12    build_setting_default = False,
13    enable_override = select({
14        ":define_using_cuda_nvcc": True,
15        "//conditions:default": False,
16    }),
17)
18
19# Config setting whether CUDA support has been requested.
20#
21# Enable path: ./configure > --config=cuda (.tf_configure.bazelrc)
22#     > --//tensorflow:enable_cuda (.bazelrc) > :is_cuda_enabled
23config_setting(
24    name = "is_cuda_enabled",
25    flag_values = {":enable_cuda": "True"},
26)
27
28# Build flag to select CUDA compiler.
29#
30# Set with '--@local_config_cuda//:cuda_compiler=...', or indirectly with
31# ./configure, '--config=cuda' or '--config=cuda_clang'.
32string_flag(
33    name = "cuda_compiler",
34    build_setting_default = "nvcc",
35    values = [
36        "clang",
37        "nvcc",
38    ],
39)
40
41# Config setting whether CUDA device code should be compiled with clang.
42config_setting(
43    name = "is_cuda_compiler_clang",
44    flag_values = {":cuda_compiler": "clang"},
45)
46
47# Config setting whether CUDA device code should be compiled with nvcc.
48config_setting(
49    name = "is_cuda_compiler_nvcc",
50    flag_values = {":cuda_compiler": "nvcc"},
51)
52
53# Config setting to keep `--define=using_cuda_nvcc=true` working.
54# TODO(b/174244321): Remove when downstream projects have been fixed, along
55# with the enable_cuda_flag rule in cuda:build_defs.bzl.tpl.
56config_setting(
57    name = "define_using_cuda_nvcc",
58    define_values = {"using_cuda_nvcc": "true"},
59    visibility = ["//visibility:private"],
60)
61