| load("@rules_proto//proto:defs.bzl", "proto_library") |
| load("@rules_cc//cc:defs.bzl", "cc_library", "cc_proto_library") |
| load("@rules_python//python:defs.bzl", "py_binary") |
| |
| py_binary( |
| name = "gen_proto", |
| srcs = ["onnx/gen_proto.py"], |
| data = [ |
| "onnx/onnx.in.proto", |
| "onnx/onnx-operators.in.proto", |
| "onnx/onnx-data.in.proto", |
| ], |
| ) |
| |
| genrule( |
| name = "generate_onnx_proto", |
| outs = [ |
| "onnx/onnx_onnx_torch-ml.proto", |
| "onnx/onnx-ml.pb.h", |
| ], |
| cmd = "$(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", |
| tools = [":gen_proto"], |
| ) |
| |
| genrule( |
| name = "generate_onnx_operators_proto", |
| outs = [ |
| "onnx/onnx-operators_onnx_torch-ml.proto", |
| "onnx/onnx-operators-ml.pb.h", |
| ], |
| cmd = "$(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", |
| tools = [":gen_proto"], |
| ) |
| |
| genrule( |
| name = "generate_onnx_data_proto", |
| outs = [ |
| "onnx/onnx-data_onnx_torch.proto", |
| "onnx/onnx-data.pb.h", |
| ], |
| cmd = "$(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", |
| tools = [":gen_proto"], |
| ) |
| |
| cc_library( |
| name = "onnx", |
| srcs = glob( |
| [ |
| "onnx/*.cc", |
| "onnx/common/*.cc", |
| "onnx/defs/*.cc", |
| "onnx/defs/controlflow/*.cc", |
| "onnx/defs/experiments/*.cc", |
| "onnx/defs/generator/*.cc", |
| "onnx/defs/logical/*.cc", |
| "onnx/defs/math/*.cc", |
| "onnx/defs/nn/*.cc", |
| "onnx/defs/object_detection/*.cc", |
| "onnx/defs/optional/*.cc", |
| "onnx/defs/quantization/*.cc", |
| "onnx/defs/reduction/*.cc", |
| "onnx/defs/rnn/*.cc", |
| "onnx/defs/sequence/*.cc", |
| "onnx/defs/tensor/*.cc", |
| "onnx/defs/traditionalml/*.cc", |
| "onnx/defs/training/defs.cc", |
| "onnx/shape_inference/*.cc", |
| "onnx/version_converter/*.cc", |
| ], |
| exclude = [ |
| "onnx/cpp2py_export.cc", |
| ], |
| ), |
| hdrs = glob([ |
| "onnx/*.h", |
| "onnx/version_converter/*.h", |
| "onnx/common/*.h", |
| "onnx/defs/*.h", |
| "onnx/defs/tensor/*.h", |
| "onnx/shape_inference/*.h", |
| "onnx/version_converter/adapters/*.h", |
| ]) + [ |
| "onnx/onnx-ml.pb.h", |
| "onnx/onnx-operators-ml.pb.h", |
| "onnx/onnx-data.pb.h", |
| ], |
| defines = [ |
| "ONNX_ML=1", |
| "ONNX_NAMESPACE=onnx_torch", |
| ], |
| includes = [ |
| ".", |
| "onnx/", |
| ], |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":onnx_proto_lib", |
| ], |
| ) |
| |
| cc_library( |
| name = "onnx_proto_headers", |
| hdrs = glob([ |
| "onnx/*_pb.h", |
| ]), |
| visibility = ["//visibility:public"], |
| deps = [ |
| ":onnx_proto_lib", |
| ], |
| ) |
| |
| proto_library( |
| name = "onnx_proto", |
| srcs = [ |
| "onnx/onnx-operators_onnx_torch-ml.proto", |
| "onnx/onnx_onnx_torch-ml.proto", |
| "onnx/onnx-data_onnx_torch.proto", |
| ], |
| ) |
| |
| cc_proto_library( |
| name = "onnx_proto_lib", |
| deps = [":onnx_proto"], |
| ) |