xref: /aosp_15_r20/external/executorch/third-party/TARGETS (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
1*523fa7a6SAndroid Build Coastguard Workerload("@fbsource//xplat/executorch/build/runtime_wrapper.bzl", "runtime")
2*523fa7a6SAndroid Build Coastguard Workerload(":flatcc_defs.bzl", "define_flatcc_targets")
3*523fa7a6SAndroid Build Coastguard Workerload(":gflags.bzl", "define_gflags")
4*523fa7a6SAndroid Build Coastguard Workerload(":glob_defs.bzl", "subdir_glob")
5*523fa7a6SAndroid Build Coastguard Workerload(":gtest_defs.bzl", "define_gtest_targets")
6*523fa7a6SAndroid Build Coastguard Workerload(":prebuilt_python_defs.bzl", "add_prebuilt_python_library_targets")
7*523fa7a6SAndroid Build Coastguard Workerload("@prelude//rules.bzl", "prebuilt_cxx_library")
8*523fa7a6SAndroid Build Coastguard Worker
9*523fa7a6SAndroid Build Coastguard Workerdefine_gflags()
10*523fa7a6SAndroid Build Coastguard Worker
11*523fa7a6SAndroid Build Coastguard Workerdefine_gtest_targets()
12*523fa7a6SAndroid Build Coastguard Worker
13*523fa7a6SAndroid Build Coastguard Workerprebuilt_python_library_defs = {
14*523fa7a6SAndroid Build Coastguard Worker    "prettytable": {
15*523fa7a6SAndroid Build Coastguard Worker        "additional_deps": [":wcwidth"],
16*523fa7a6SAndroid Build Coastguard Worker        "out": "prettytable-3.8.0-py3-none-any.whl",
17*523fa7a6SAndroid Build Coastguard Worker        "sha1": "22a8347abd5a72e4ea8d5f5bb2956d956148e6fa",
18*523fa7a6SAndroid Build Coastguard Worker        "url": "https://files.pythonhosted.org/packages/25/1e/4c284713b092ec384fad4399452f43f6446ad9aabc9c0b3c3c0920cc53b6/prettytable-3.8.0-py3-none-any.whl",
19*523fa7a6SAndroid Build Coastguard Worker    },
20*523fa7a6SAndroid Build Coastguard Worker    "pyyaml": {
21*523fa7a6SAndroid Build Coastguard Worker        "out": "pyyaml.whl",
22*523fa7a6SAndroid Build Coastguard Worker        "sha1": "11aa9c5fe2d890b6a73212beadc7c8a4265ebc39",
23*523fa7a6SAndroid Build Coastguard Worker        "url": "https://files.pythonhosted.org/packages/12/fc/a4d5a7554e0067677823f7265cb3ae22aed8a238560b5133b58cda252dad/PyYAML-6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
24*523fa7a6SAndroid Build Coastguard Worker    },
25*523fa7a6SAndroid Build Coastguard Worker    "typing-extensions": {
26*523fa7a6SAndroid Build Coastguard Worker        "out": "typing_extensions-4.2.0-py3-none-any.whl",
27*523fa7a6SAndroid Build Coastguard Worker        "sha1": "ff0849420e94f425818bff5d0f25e3cdfaba8601",
28*523fa7a6SAndroid Build Coastguard Worker        "url": "https://files.pythonhosted.org/packages/75/e1/932e06004039dd670c9d5e1df0cd606bf46e29a28e65d5bb28e894ea29c9/typing_extensions-4.2.0-py3-none-any.whl",
29*523fa7a6SAndroid Build Coastguard Worker    },
30*523fa7a6SAndroid Build Coastguard Worker    "wcwidth": {
31*523fa7a6SAndroid Build Coastguard Worker        "out": "wcwidth-0.1.5-py2.py3-none-any.whl",
32*523fa7a6SAndroid Build Coastguard Worker        "sha1": "f132a6fdff56d1d8bf572f00ef6985a327784bbd",
33*523fa7a6SAndroid Build Coastguard Worker        "url": "https://files.pythonhosted.org/packages/8b/30/f46badba94cedcd5ceb5918a7c5a34f3a1b9e902e045b7d8d39c1db3d99a/wcwidth-0.1.5-py2.py3-none-any.whl",
34*523fa7a6SAndroid Build Coastguard Worker    },
35*523fa7a6SAndroid Build Coastguard Worker}
36*523fa7a6SAndroid Build Coastguard Worker
37*523fa7a6SAndroid Build Coastguard Workeradd_prebuilt_python_library_targets(prebuilt_python_library_defs)
38*523fa7a6SAndroid Build Coastguard Worker
39*523fa7a6SAndroid Build Coastguard Workerruntime.genrule(
40*523fa7a6SAndroid Build Coastguard Worker    name = "torchgen_files",
41*523fa7a6SAndroid Build Coastguard Worker    outs = {
42*523fa7a6SAndroid Build Coastguard Worker        "torchgen": ["torchgen"],
43*523fa7a6SAndroid Build Coastguard Worker    },
44*523fa7a6SAndroid Build Coastguard Worker    default_outs = ["."],
45*523fa7a6SAndroid Build Coastguard Worker    srcs = ["link_torch.sh"],
46*523fa7a6SAndroid Build Coastguard Worker    bash = "bash $SRCS -f torchgen -o ${OUT}",
47*523fa7a6SAndroid Build Coastguard Worker)
48*523fa7a6SAndroid Build Coastguard Worker
49*523fa7a6SAndroid Build Coastguard Workerruntime.genrule(
50*523fa7a6SAndroid Build Coastguard Worker    name = "yaml_files",
51*523fa7a6SAndroid Build Coastguard Worker    outs = {
52*523fa7a6SAndroid Build Coastguard Worker        "tags": ["aten/src/ATen/native/tags.yaml"],
53*523fa7a6SAndroid Build Coastguard Worker        "native_functions": ["aten/src/ATen/native/native_functions.yaml"],
54*523fa7a6SAndroid Build Coastguard Worker    },
55*523fa7a6SAndroid Build Coastguard Worker    default_outs = ["."],
56*523fa7a6SAndroid Build Coastguard Worker    srcs = ["link_torch.sh"],
57*523fa7a6SAndroid Build Coastguard Worker    bash = "mkdir -p ${OUT}/aten/src/ATen/native/ && bash $SRCS -f torchgen/packaged/ATen/native/tags.yaml,torchgen/packaged/ATen/native/native_functions.yaml -o ${OUT}/aten/src/ATen/native/",
58*523fa7a6SAndroid Build Coastguard Worker)
59*523fa7a6SAndroid Build Coastguard Worker
60*523fa7a6SAndroid Build Coastguard Workerruntime.python_library(
61*523fa7a6SAndroid Build Coastguard Worker    name = "torchgen",
62*523fa7a6SAndroid Build Coastguard Worker    srcs = [":torchgen_files[torchgen]"] + glob(["**/*.py"]),
63*523fa7a6SAndroid Build Coastguard Worker    base_module = "torchgen,torchgen.executorch",
64*523fa7a6SAndroid Build Coastguard Worker    visibility = ["PUBLIC"],
65*523fa7a6SAndroid Build Coastguard Worker    deps = [
66*523fa7a6SAndroid Build Coastguard Worker        "//third-party:pyyaml",
67*523fa7a6SAndroid Build Coastguard Worker        "//third-party:typing-extensions",
68*523fa7a6SAndroid Build Coastguard Worker    ],
69*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
70*523fa7a6SAndroid Build Coastguard Worker)
71*523fa7a6SAndroid Build Coastguard Worker
72*523fa7a6SAndroid Build Coastguard Workerruntime.python_binary(
73*523fa7a6SAndroid Build Coastguard Worker    name = "gen",
74*523fa7a6SAndroid Build Coastguard Worker    main_module = "torchgen.gen",
75*523fa7a6SAndroid Build Coastguard Worker    visibility = [
76*523fa7a6SAndroid Build Coastguard Worker        "PUBLIC",
77*523fa7a6SAndroid Build Coastguard Worker    ],
78*523fa7a6SAndroid Build Coastguard Worker    deps = [
79*523fa7a6SAndroid Build Coastguard Worker        ":torchgen",
80*523fa7a6SAndroid Build Coastguard Worker    ],
81*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
82*523fa7a6SAndroid Build Coastguard Worker)
83*523fa7a6SAndroid Build Coastguard Worker
84*523fa7a6SAndroid Build Coastguard Workerruntime.python_binary(
85*523fa7a6SAndroid Build Coastguard Worker    name = "gen_executorch",
86*523fa7a6SAndroid Build Coastguard Worker    main_module = "torchgen.gen_executorch",
87*523fa7a6SAndroid Build Coastguard Worker    visibility = [
88*523fa7a6SAndroid Build Coastguard Worker        "PUBLIC",
89*523fa7a6SAndroid Build Coastguard Worker    ],
90*523fa7a6SAndroid Build Coastguard Worker    deps = [
91*523fa7a6SAndroid Build Coastguard Worker        ":torchgen",
92*523fa7a6SAndroid Build Coastguard Worker    ],
93*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
94*523fa7a6SAndroid Build Coastguard Worker)
95*523fa7a6SAndroid Build Coastguard Worker
96*523fa7a6SAndroid Build Coastguard Workerruntime.filegroup(
97*523fa7a6SAndroid Build Coastguard Worker    name = "aten_src_path",
98*523fa7a6SAndroid Build Coastguard Worker    srcs = [
99*523fa7a6SAndroid Build Coastguard Worker        ":yaml_files[tags]",
100*523fa7a6SAndroid Build Coastguard Worker        ":yaml_files[native_functions]",
101*523fa7a6SAndroid Build Coastguard Worker    ],
102*523fa7a6SAndroid Build Coastguard Worker    visibility = [
103*523fa7a6SAndroid Build Coastguard Worker        "PUBLIC",
104*523fa7a6SAndroid Build Coastguard Worker    ],
105*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
106*523fa7a6SAndroid Build Coastguard Worker)
107*523fa7a6SAndroid Build Coastguard Worker
108*523fa7a6SAndroid Build Coastguard Workerruntime.cxx_library(
109*523fa7a6SAndroid Build Coastguard Worker    name = "flatbuffers-api",
110*523fa7a6SAndroid Build Coastguard Worker    public_include_directories = ["flatbuffers/include"],
111*523fa7a6SAndroid Build Coastguard Worker    raw_headers = [
112*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/base.h",
113*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/flatbuffers.h",
114*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/stl_emulation.h",
115*523fa7a6SAndroid Build Coastguard Worker    ],
116*523fa7a6SAndroid Build Coastguard Worker    link_style = "static",
117*523fa7a6SAndroid Build Coastguard Worker    visibility = ["PUBLIC"],
118*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
119*523fa7a6SAndroid Build Coastguard Worker)
120*523fa7a6SAndroid Build Coastguard Worker
121*523fa7a6SAndroid Build Coastguard Workerdefine_flatcc_targets()
122*523fa7a6SAndroid Build Coastguard Worker
123*523fa7a6SAndroid Build Coastguard Workerruntime.cxx_library(
124*523fa7a6SAndroid Build Coastguard Worker    name = "flatc_library",
125*523fa7a6SAndroid Build Coastguard Worker    srcs = [
126*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_text.cpp",
127*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_parser.cpp",
128*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/reflection.cpp",
129*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/util.cpp",
130*523fa7a6SAndroid Build Coastguard Worker    ],
131*523fa7a6SAndroid Build Coastguard Worker    public_include_directories = [
132*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc",
133*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include",
134*523fa7a6SAndroid Build Coastguard Worker    ],
135*523fa7a6SAndroid Build Coastguard Worker    raw_headers = [
136*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/allocator.h",
137*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/array.h",
138*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/base.h",
139*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/buffer.h",
140*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/buffer_ref.h",
141*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/code_generator.h",
142*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/default_allocator.h",
143*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/detached_buffer.h",
144*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/file_manager.h",
145*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/flatbuffer_builder.h",
146*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/flatbuffers.h",
147*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/flex_flat_util.h",
148*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/flexbuffers.h",
149*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/hash.h",
150*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/idl.h",
151*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/minireflect.h",
152*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/reflection.h",
153*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/reflection_generated.h",
154*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/registry.h",
155*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/stl_emulation.h",
156*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/string.h",
157*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/struct.h",
158*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/table.h",
159*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/util.h",
160*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/vector.h",
161*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/vector_downward.h",
162*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/verifier.h",
163*523fa7a6SAndroid Build Coastguard Worker    ],
164*523fa7a6SAndroid Build Coastguard Worker    link_style = "static",
165*523fa7a6SAndroid Build Coastguard Worker    visibility = ["PUBLIC"],
166*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
167*523fa7a6SAndroid Build Coastguard Worker)
168*523fa7a6SAndroid Build Coastguard Worker
169*523fa7a6SAndroid Build Coastguard Workerruntime.cxx_binary(
170*523fa7a6SAndroid Build Coastguard Worker    name = "flatc",
171*523fa7a6SAndroid Build Coastguard Worker    srcs = [
172*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/cpp_generator.cc",
173*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/go_generator.cc",
174*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/java_generator.cc",
175*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/python_generator.cc",
176*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/swift_generator.cc",
177*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/ts_generator.cc",
178*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/annotated_binary_text_gen.cpp",
179*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/bfbs_gen_lua.cpp",
180*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/bfbs_gen_nim.cpp",
181*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/binary_annotator.cpp",
182*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/code_generators.cpp",
183*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/file_binary_writer.cpp",
184*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/file_name_saving_file_manager.cpp",
185*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/file_writer.cpp",
186*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/flatc.cpp",
187*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/flatc_main.cpp",
188*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_binary.cpp",
189*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_cpp.cpp",
190*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_csharp.cpp",
191*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_dart.cpp",
192*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_fbs.cpp",
193*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_go.cpp",
194*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_grpc.cpp",
195*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_java.cpp",
196*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_json_schema.cpp",
197*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_kotlin.cpp",
198*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_kotlin_kmp.cpp",
199*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_lobster.cpp",
200*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_php.cpp",
201*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_python.cpp",
202*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_rust.cpp",
203*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_swift.cpp",
204*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_text.cpp",
205*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_gen_ts.cpp",
206*523fa7a6SAndroid Build Coastguard Worker    ],
207*523fa7a6SAndroid Build Coastguard Worker    include_directories = [
208*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc",
209*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include",
210*523fa7a6SAndroid Build Coastguard Worker    ],
211*523fa7a6SAndroid Build Coastguard Worker    raw_headers = [
212*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/cpp_generator.h",
213*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/go_generator.h",
214*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/java_generator.h",
215*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/python_generator.h",
216*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/schema_interface.h",
217*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/swift_generator.h",
218*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/grpc/src/compiler/ts_generator.h",
219*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/include/flatbuffers/code_generators.h",
220*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/annotated_binary_text_gen.h",
221*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/bfbs_gen.h",
222*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/bfbs_gen_lua.h",
223*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/bfbs_gen_nim.h",
224*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/bfbs_namer.h",
225*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/binary_annotator.h",
226*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/idl_namer.h",
227*523fa7a6SAndroid Build Coastguard Worker        "flatbuffers/src/namer.h",
228*523fa7a6SAndroid Build Coastguard Worker    ],
229*523fa7a6SAndroid Build Coastguard Worker    visibility = ["PUBLIC"],
230*523fa7a6SAndroid Build Coastguard Worker    deps = [":flatc_library"],
231*523fa7a6SAndroid Build Coastguard Worker    link_style = "static",
232*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
233*523fa7a6SAndroid Build Coastguard Worker)
234*523fa7a6SAndroid Build Coastguard Worker
235*523fa7a6SAndroid Build Coastguard Workerruntime.genrule(
236*523fa7a6SAndroid Build Coastguard Worker    name = "libpython_gen",
237*523fa7a6SAndroid Build Coastguard Worker    outs = {
238*523fa7a6SAndroid Build Coastguard Worker        "include": ["include"],
239*523fa7a6SAndroid Build Coastguard Worker    },
240*523fa7a6SAndroid Build Coastguard Worker    srcs = ["link_python.sh"],
241*523fa7a6SAndroid Build Coastguard Worker    bash = select({
242*523fa7a6SAndroid Build Coastguard Worker        "ovr_config//os:macos": "bash $SRCS $OUT libpython.dylib",
243*523fa7a6SAndroid Build Coastguard Worker        "DEFAULT": "bash $SRCS $OUT libpython.so",
244*523fa7a6SAndroid Build Coastguard Worker    }),
245*523fa7a6SAndroid Build Coastguard Worker)
246*523fa7a6SAndroid Build Coastguard Worker
247*523fa7a6SAndroid Build Coastguard Workerruntime.cxx_library(
248*523fa7a6SAndroid Build Coastguard Worker    name = "pybind11",
249*523fa7a6SAndroid Build Coastguard Worker    public_include_directories = [
250*523fa7a6SAndroid Build Coastguard Worker        "pybind11/include",
251*523fa7a6SAndroid Build Coastguard Worker    ],
252*523fa7a6SAndroid Build Coastguard Worker    exported_preprocessor_flags = [
253*523fa7a6SAndroid Build Coastguard Worker        "-I$(location :libpython_gen[include])",  # include header directories
254*523fa7a6SAndroid Build Coastguard Worker    ],
255*523fa7a6SAndroid Build Coastguard Worker    exported_linker_flags = ["-Xlinker", "-undefined", "-Xlinker", "dynamic_lookup"],
256*523fa7a6SAndroid Build Coastguard Worker    raw_headers = glob(["pybind11/include/**/*.h"]),
257*523fa7a6SAndroid Build Coastguard Worker    visibility = ["PUBLIC"],
258*523fa7a6SAndroid Build Coastguard Worker    _is_external_target = True,
259*523fa7a6SAndroid Build Coastguard Worker)
260*523fa7a6SAndroid Build Coastguard Worker
261*523fa7a6SAndroid Build Coastguard Workerruntime.genrule(
262*523fa7a6SAndroid Build Coastguard Worker    name = "libtorch_gen",
263*523fa7a6SAndroid Build Coastguard Worker    outs = select({
264*523fa7a6SAndroid Build Coastguard Worker        "ovr_config//os:macos": {
265*523fa7a6SAndroid Build Coastguard Worker            "libtorch": ["libtorch.dylib"],
266*523fa7a6SAndroid Build Coastguard Worker            "libc10": ["libc10.dylib"],
267*523fa7a6SAndroid Build Coastguard Worker            "libtorch_cpu": ["libtorch_cpu.dylib"],
268*523fa7a6SAndroid Build Coastguard Worker            "libtorch_python": ["libtorch_python.dylib"],
269*523fa7a6SAndroid Build Coastguard Worker            "include": ["include"],
270*523fa7a6SAndroid Build Coastguard Worker        },
271*523fa7a6SAndroid Build Coastguard Worker        "DEFAULT": {
272*523fa7a6SAndroid Build Coastguard Worker            "libtorch": ["libtorch.so"],
273*523fa7a6SAndroid Build Coastguard Worker            "libc10": ["libc10.so"],
274*523fa7a6SAndroid Build Coastguard Worker            "libtorch_cpu": ["libtorch_cpu.so"],
275*523fa7a6SAndroid Build Coastguard Worker            "libtorch_python": ["libtorch_python.so"],
276*523fa7a6SAndroid Build Coastguard Worker            "include": ["include"],
277*523fa7a6SAndroid Build Coastguard Worker        },
278*523fa7a6SAndroid Build Coastguard Worker    }),
279*523fa7a6SAndroid Build Coastguard Worker    default_outs = ["."],
280*523fa7a6SAndroid Build Coastguard Worker    srcs = ["link_torch.sh"],
281*523fa7a6SAndroid Build Coastguard Worker    bash = select({
282*523fa7a6SAndroid Build Coastguard Worker        "ovr_config//os:macos": "bash $SRCS -f torch/lib/libtorch.dylib,torch/lib/libtorch_cpu.dylib,torch/lib/libtorch_python.dylib,torch/lib/libc10.dylib,torch/include -o ${OUT}",
283*523fa7a6SAndroid Build Coastguard Worker        "DEFAULT": "bash $SRCS -f torch/lib/libtorch.so,torch/lib/libtorch_cpu.so,torch/lib/libtorch_python.so,torch/lib/libc10.so,torch/lib/libgomp-a34b3233.so.1,torch/include -o ${OUT}",
284*523fa7a6SAndroid Build Coastguard Worker    }),
285*523fa7a6SAndroid Build Coastguard Worker)
286*523fa7a6SAndroid Build Coastguard Worker
287*523fa7a6SAndroid Build Coastguard Workerprebuilt_cxx_library(
288*523fa7a6SAndroid Build Coastguard Worker    name = "libc10",
289*523fa7a6SAndroid Build Coastguard Worker    shared_lib = ":libtorch_gen[libc10]",
290*523fa7a6SAndroid Build Coastguard Worker)
291*523fa7a6SAndroid Build Coastguard Worker
292*523fa7a6SAndroid Build Coastguard Workerprebuilt_cxx_library(
293*523fa7a6SAndroid Build Coastguard Worker    name = "libtorch_cpu",
294*523fa7a6SAndroid Build Coastguard Worker    shared_lib = ":libtorch_gen[libtorch_cpu]",
295*523fa7a6SAndroid Build Coastguard Worker)
296*523fa7a6SAndroid Build Coastguard Worker
297*523fa7a6SAndroid Build Coastguard Workerprebuilt_cxx_library(
298*523fa7a6SAndroid Build Coastguard Worker    name = "libtorch",
299*523fa7a6SAndroid Build Coastguard Worker    shared_lib = ":libtorch_gen[libtorch]",
300*523fa7a6SAndroid Build Coastguard Worker    exported_preprocessor_flags = [
301*523fa7a6SAndroid Build Coastguard Worker        "-D_GLIBCXX_USE_CXX11_ABI=0",  # `libtorch` is built without CXX11_ABI so any target depends on it need to use the same build config.
302*523fa7a6SAndroid Build Coastguard Worker        "-I$(location :libtorch_gen[include])",  # include header directories
303*523fa7a6SAndroid Build Coastguard Worker        "-I$(location :libtorch_gen[include])/torch/csrc/api/include",  # include header directories
304*523fa7a6SAndroid Build Coastguard Worker    ],
305*523fa7a6SAndroid Build Coastguard Worker    exported_linker_flags = select({
306*523fa7a6SAndroid Build Coastguard Worker        "ovr_config//os:macos": ["-Xlinker", "-rpath", "$(location :libtorch_gen)", "-Xlinker"],
307*523fa7a6SAndroid Build Coastguard Worker        "DEFAULT": ["-Wl,-rpath,$(location :libtorch_gen)"],  # define rpath to locate shared library
308*523fa7a6SAndroid Build Coastguard Worker    }),
309*523fa7a6SAndroid Build Coastguard Worker    exported_headers = [":libtorch_gen[include]"],
310*523fa7a6SAndroid Build Coastguard Worker    exported_deps = select({
311*523fa7a6SAndroid Build Coastguard Worker        "ovr_config//os:macos": [":libc10", ":libtorch_cpu"],
312*523fa7a6SAndroid Build Coastguard Worker        "DEFAULT": [":libc10", ":libtorch_cpu"],
313*523fa7a6SAndroid Build Coastguard Worker    }),
314*523fa7a6SAndroid Build Coastguard Worker    visibility = ["PUBLIC"],
315*523fa7a6SAndroid Build Coastguard Worker)
316*523fa7a6SAndroid Build Coastguard Worker
317*523fa7a6SAndroid Build Coastguard Workerprebuilt_cxx_library(
318*523fa7a6SAndroid Build Coastguard Worker    name = "libtorch_python",
319*523fa7a6SAndroid Build Coastguard Worker    shared_lib = ":libtorch_gen[libtorch_python]",
320*523fa7a6SAndroid Build Coastguard Worker    exported_preprocessor_flags = [
321*523fa7a6SAndroid Build Coastguard Worker        "-D_GLIBCXX_USE_CXX11_ABI=0",  # `libtorch` is built without CXX11_ABI so any target depends on it need to use the same build config.
322*523fa7a6SAndroid Build Coastguard Worker        "-I$(location :libtorch_gen[include])",  # include header directories
323*523fa7a6SAndroid Build Coastguard Worker        "-I$(location :libtorch_gen[include])/torch/csrc/api/include",  # include header directories
324*523fa7a6SAndroid Build Coastguard Worker    ],
325*523fa7a6SAndroid Build Coastguard Worker    exported_linker_flags = select({
326*523fa7a6SAndroid Build Coastguard Worker        "ovr_config//os:macos": ["-ldl", "-framework", "CoreFoundation"], # python3-config --cflags
327*523fa7a6SAndroid Build Coastguard Worker        "DEFAULT": [],  # define rpath to locate shared library
328*523fa7a6SAndroid Build Coastguard Worker    }),
329*523fa7a6SAndroid Build Coastguard Worker    exported_headers = [":libtorch_gen[include]"],
330*523fa7a6SAndroid Build Coastguard Worker    exported_deps = [
331*523fa7a6SAndroid Build Coastguard Worker        ":libtorch",
332*523fa7a6SAndroid Build Coastguard Worker    ],
333*523fa7a6SAndroid Build Coastguard Worker    visibility = ["PUBLIC"],
334*523fa7a6SAndroid Build Coastguard Worker)
335