xref: /aosp_15_r20/external/pytorch/third_party/kineto.buck.bzl (revision da0073e96a02ea20f0ac840b70461e3646d07c45)
1load("//tools/build_defs:glob_defs.bzl", "subdir_glob")
2
3# kineto code should be updated to not have to
4# suppress these warnings.
5KINETO_COMPILER_FLAGS = [
6    "-fexceptions",
7    "-Wno-deprecated-declarations",
8    "-Wno-unused-function",
9    "-Wno-unused-private-field",
10]
11
12def define_kineto():
13    cxx_library(
14        name = "libkineto",
15        srcs = [
16            "kineto/libkineto/src/ActivityProfilerController.cpp",
17            "kineto/libkineto/src/ActivityProfilerProxy.cpp",
18            "kineto/libkineto/src/CuptiActivityApi.cpp",
19            "kineto/libkineto/src/CuptiActivityProfiler.cpp",
20            "kineto/libkineto/src/CuptiRangeProfilerApi.cpp",
21            "kineto/libkineto/src/Demangle.cpp",
22            "kineto/libkineto/src/init.cpp",
23            "kineto/libkineto/src/output_csv.cpp",
24            "kineto/libkineto/src/output_json.cpp",
25        ],
26        headers = subdir_glob(
27            [
28                ("kineto/libkineto/include", "*.h"),
29                ("kineto/libkineto/src", "*.h"),
30            ],
31        ),
32        compiler_flags = KINETO_COMPILER_FLAGS,
33        # @lint-ignore BUCKLINT
34        link_whole = True,
35        visibility = ["PUBLIC"],
36        exported_deps = [
37            ":base_logger",
38            ":libkineto_api",
39            ":thread_util",
40            ":fmt",
41        ],
42    )
43
44    cxx_library(
45        name = "libkineto_api",
46        srcs = [
47            "kineto/libkineto/src/libkineto_api.cpp",
48        ],
49        headers = subdir_glob(
50            [
51                ("kineto/libkineto/include", "*.h"),
52                ("kineto/libkineto/src", "*.h"),
53            ],
54        ),
55        compiler_flags = KINETO_COMPILER_FLAGS,
56        # @lint-ignore BUCKLINT
57        link_whole = True,
58        visibility = ["PUBLIC"],
59        exported_deps = [
60            ":base_logger",
61            ":config_loader",
62            ":thread_util",
63            ":fmt",
64        ],
65    )
66
67    cxx_library(
68        name = "config_loader",
69        srcs = [
70            "kineto/libkineto/src/ConfigLoader.cpp",
71        ],
72        headers = subdir_glob(
73            [
74                ("kineto/libkineto/include", "ActivityType.h"),
75                ("kineto/libkineto/src", "*.h"),
76            ],
77        ),
78        compiler_flags = KINETO_COMPILER_FLAGS,
79        exported_deps = [
80            ":config",
81            ":thread_util",
82        ],
83    )
84
85    cxx_library(
86        name = "config",
87        srcs = [
88            "kineto/libkineto/src/AbstractConfig.cpp",
89            "kineto/libkineto/src/ActivityType.cpp",
90            "kineto/libkineto/src/Config.cpp",
91        ],
92        compiler_flags = KINETO_COMPILER_FLAGS,
93        public_include_directories = [
94            "kineto/libkineto/include",
95            "kineto/libkineto/src",
96        ],
97        raw_headers = glob([
98            "kineto/libkineto/include/*.h",
99            "kineto/libkineto/src/*.h",
100        ]),
101        exported_deps = [
102            ":logger",
103            ":thread_util",
104            ":fmt",
105        ],
106    )
107
108    cxx_library(
109        name = "logger",
110        srcs = [
111            "kineto/libkineto/src/ILoggerObserver.cpp",
112            "kineto/libkineto/src/Logger.cpp",
113        ],
114        compiler_flags = KINETO_COMPILER_FLAGS,
115        public_include_directories = [
116            "kineto/libkineto/include",
117            "kineto/libkineto/src",
118        ],
119        raw_headers = [
120            "kineto/libkineto/include/ILoggerObserver.h",
121            "kineto/libkineto/include/ThreadUtil.h",
122            "kineto/libkineto/src/Logger.h",
123            "kineto/libkineto/src/LoggerCollector.h",
124        ],
125        exported_deps = [
126            ":thread_util",
127            ":fmt",
128        ],
129    )
130
131    cxx_library(
132        name = "base_logger",
133        srcs = [
134            "kineto/libkineto/src/GenericTraceActivity.cpp",
135        ],
136        public_include_directories = [
137            "kineto/libkineto/include",
138            "kineto/libkineto/src",
139        ],
140        raw_headers = glob([
141            "kineto/libkineto/include/*.h",
142            "kineto/libkineto/src/*.h",
143            "kineto/libkineto/src/*.tpp",
144        ]),
145        exported_deps = [
146            ":thread_util",
147        ],
148    )
149
150    cxx_library(
151        name = "thread_util",
152        srcs = [
153            "kineto/libkineto/src/ThreadUtil.cpp",
154        ],
155        compiler_flags = KINETO_COMPILER_FLAGS,
156        exported_preprocessor_flags = [
157            "-DKINETO_NAMESPACE=libkineto",
158        ],
159        public_include_directories = [
160            "kineto/libkineto/include",
161        ],
162        raw_headers = [
163            "kineto/libkineto/include/ThreadUtil.h",
164        ],
165        exported_deps = [
166            ":fmt",
167        ],
168    )
169
170    cxx_library(
171        name = "libkineto_headers",
172        exported_headers = native.glob([
173            "kineto/libkineto/include/*.h",
174        ]),
175        public_include_directories = [
176            "kineto/libkineto/include",
177        ],
178        visibility = ["PUBLIC"],
179    )
180