xref: /aosp_15_r20/external/pytorch/c10/cuda/build.bzl (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1*da0073e9SAndroid Build Coastguard Workerdef define_targets(rules, extra_defines=[]):
2*da0073e9SAndroid Build Coastguard Worker    rules.cc_library(
3*da0073e9SAndroid Build Coastguard Worker        name = "cuda",
4*da0073e9SAndroid Build Coastguard Worker        srcs = rules.glob(
5*da0073e9SAndroid Build Coastguard Worker            [
6*da0073e9SAndroid Build Coastguard Worker                "*.cpp",
7*da0073e9SAndroid Build Coastguard Worker                "impl/*.cpp",
8*da0073e9SAndroid Build Coastguard Worker            ],
9*da0073e9SAndroid Build Coastguard Worker            exclude = [
10*da0073e9SAndroid Build Coastguard Worker                "test/**/*.cpp",
11*da0073e9SAndroid Build Coastguard Worker            ],
12*da0073e9SAndroid Build Coastguard Worker        ),
13*da0073e9SAndroid Build Coastguard Worker        hdrs = rules.glob(
14*da0073e9SAndroid Build Coastguard Worker            [
15*da0073e9SAndroid Build Coastguard Worker                "*.h",
16*da0073e9SAndroid Build Coastguard Worker                "impl/*.h",
17*da0073e9SAndroid Build Coastguard Worker            ],
18*da0073e9SAndroid Build Coastguard Worker            exclude = [
19*da0073e9SAndroid Build Coastguard Worker                "CUDAMacros.h",
20*da0073e9SAndroid Build Coastguard Worker            ],
21*da0073e9SAndroid Build Coastguard Worker        ),
22*da0073e9SAndroid Build Coastguard Worker        defines = ["USE_CUDA"] + extra_defines,
23*da0073e9SAndroid Build Coastguard Worker        linkstatic = True,
24*da0073e9SAndroid Build Coastguard Worker        local_defines = ["C10_BUILD_MAIN_LIB"],
25*da0073e9SAndroid Build Coastguard Worker        target_compatible_with = rules.requires_cuda_enabled(),
26*da0073e9SAndroid Build Coastguard Worker        visibility = ["//visibility:public"],
27*da0073e9SAndroid Build Coastguard Worker        deps = [
28*da0073e9SAndroid Build Coastguard Worker            ":Macros",
29*da0073e9SAndroid Build Coastguard Worker            "//c10/core:base",
30*da0073e9SAndroid Build Coastguard Worker            "//c10/macros",
31*da0073e9SAndroid Build Coastguard Worker            "//c10/util:base",
32*da0073e9SAndroid Build Coastguard Worker            "@cuda",
33*da0073e9SAndroid Build Coastguard Worker        ],
34*da0073e9SAndroid Build Coastguard Worker        # This library uses registration. Don't let registered
35*da0073e9SAndroid Build Coastguard Worker        # entities be removed.
36*da0073e9SAndroid Build Coastguard Worker        alwayslink = True,
37*da0073e9SAndroid Build Coastguard Worker    )
38*da0073e9SAndroid Build Coastguard Worker
39*da0073e9SAndroid Build Coastguard Worker    rules.cc_library(
40*da0073e9SAndroid Build Coastguard Worker        name = "Macros",
41*da0073e9SAndroid Build Coastguard Worker        srcs = [":cuda_cmake_macros"],
42*da0073e9SAndroid Build Coastguard Worker        hdrs = ["CUDAMacros.h"],
43*da0073e9SAndroid Build Coastguard Worker        linkstatic = True,
44*da0073e9SAndroid Build Coastguard Worker        local_defines = ["C10_BUILD_MAIN_LIB"],
45*da0073e9SAndroid Build Coastguard Worker        visibility = ["//visibility:public"],
46*da0073e9SAndroid Build Coastguard Worker    )
47*da0073e9SAndroid Build Coastguard Worker
48*da0073e9SAndroid Build Coastguard Worker    rules.cmake_configure_file(
49*da0073e9SAndroid Build Coastguard Worker        name = "cuda_cmake_macros",
50*da0073e9SAndroid Build Coastguard Worker        src = "impl/cuda_cmake_macros.h.in",
51*da0073e9SAndroid Build Coastguard Worker        out = "impl/cuda_cmake_macros.h",
52*da0073e9SAndroid Build Coastguard Worker        definitions = [],
53*da0073e9SAndroid Build Coastguard Worker    )
54*da0073e9SAndroid Build Coastguard Worker
55*da0073e9SAndroid Build Coastguard Worker    rules.filegroup(
56*da0073e9SAndroid Build Coastguard Worker        name = "headers",
57*da0073e9SAndroid Build Coastguard Worker        srcs = rules.glob(
58*da0073e9SAndroid Build Coastguard Worker            [
59*da0073e9SAndroid Build Coastguard Worker                "*.h",
60*da0073e9SAndroid Build Coastguard Worker                "impl/*.h",
61*da0073e9SAndroid Build Coastguard Worker            ],
62*da0073e9SAndroid Build Coastguard Worker            exclude = [
63*da0073e9SAndroid Build Coastguard Worker            ],
64*da0073e9SAndroid Build Coastguard Worker        ),
65*da0073e9SAndroid Build Coastguard Worker        visibility = ["//c10:__pkg__"],
66*da0073e9SAndroid Build Coastguard Worker    )
67