pytorch
108 строк · 2.8 Кб
1load("@rules_proto//proto:defs.bzl", "proto_library")
2load("@rules_cc//cc:defs.bzl", "cc_library", "cc_proto_library")
3load("@rules_python//python:defs.bzl", "py_binary")
4
5py_binary(
6name = "gen_proto",
7srcs = ["onnx/gen_proto.py"],
8data = [
9"onnx/onnx.in.proto",
10"onnx/onnx-operators.in.proto",
11"onnx/onnx-data.in.proto",
12],
13)
14
15genrule(
16name = "generate_onnx_proto",
17outs = [
18"onnx/onnx_onnx_torch-ml.proto",
19"onnx/onnx-ml.pb.h",
20],
21cmd = "$(location :gen_proto) -p onnx_torch -o $(@D)/onnx onnx -m >/dev/null && sed -i 's/onnx_onnx_torch-ml.pb.h/onnx\\/onnx_onnx_torch-ml.pb.h/g' $(@D)/onnx/onnx-ml.pb.h",
22tools = [":gen_proto"],
23)
24
25genrule(
26name = "generate_onnx_operators_proto",
27outs = [
28"onnx/onnx-operators_onnx_torch-ml.proto",
29"onnx/onnx-operators-ml.pb.h",
30],
31cmd = "$(location :gen_proto) -p onnx_torch -o $(@D)/onnx onnx-operators -m >/dev/null && sed -i 's/onnx-operators_onnx_torch-ml.pb.h/onnx\\/onnx-operators_onnx_torch-ml.pb.h/g' $(@D)/onnx/onnx-operators-ml.pb.h",
32tools = [":gen_proto"],
33)
34
35genrule(
36name = "generate_onnx_data_proto",
37outs = [
38"onnx/onnx-data_onnx_torch.proto",
39"onnx/onnx-data.pb.h",
40],
41cmd = "$(location :gen_proto) -p onnx_torch -o $(@D)/onnx onnx-data -m >/dev/null && sed -i 's/onnx-data_onnx_torch.pb.h/onnx\\/onnx-data_onnx_torch.pb.h/g' $(@D)/onnx/onnx-data.pb.h",
42tools = [":gen_proto"],
43)
44
45cc_library(
46name = "onnx",
47srcs = glob(
48[
49"onnx/*.cc",
50"onnx/common/*.cc",
51"onnx/defs/**/*.cc",
52"onnx/shape_inference/*.cc",
53"onnx/version_converter/*.cc",
54],
55exclude = [
56"onnx/cpp2py_export.cc",
57],
58),
59hdrs = glob([
60"onnx/*.h",
61"onnx/version_converter/*.h",
62"onnx/common/*.h",
63"onnx/defs/**/*.h",
64"onnx/shape_inference/*.h",
65"onnx/version_converter/adapters/*.h",
66]) + [
67"onnx/onnx-ml.pb.h",
68"onnx/onnx-operators-ml.pb.h",
69"onnx/onnx-data.pb.h",
70],
71defines = [
72"ONNX_ML=1",
73"ONNX_NAMESPACE=onnx_torch",
74],
75includes = [
76".",
77"onnx/",
78],
79visibility = ["//visibility:public"],
80deps = [
81":onnx_proto_lib",
82],
83)
84
85cc_library(
86name = "onnx_proto_headers",
87hdrs = glob([
88"onnx/*_pb.h",
89]),
90visibility = ["//visibility:public"],
91deps = [
92":onnx_proto_lib",
93],
94)
95
96proto_library(
97name = "onnx_proto",
98srcs = [
99"onnx/onnx-operators_onnx_torch-ml.proto",
100"onnx/onnx_onnx_torch-ml.proto",
101"onnx/onnx-data_onnx_torch.proto",
102],
103)
104
105cc_proto_library(
106name = "onnx_proto_lib",
107deps = [":onnx_proto"],
108)
109