load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")
load("@fbcode_macros//build_defs:python_unittest.bzl", "python_unittest")

oncall("executorch")

runtime.python_library(
    name = "example_quantizer",
    srcs = [
        "example_quantizer.py",
    ],
    deps = [
        "//caffe2:torch",
        "//executorch/backends/example/example_operators:example_operators_lib",
        "//executorch/backends/xnnpack/quantizer:xnnpack_quantizer",
    ],
)

runtime.python_library(
    name = "example_backend",
    srcs = [
        "example_backend.py",
    ],
    deps = [
        "//executorch/backends/example/example_backend_delegate_passes:lib",
        "//executorch/exir/backend:backend_details",
        "//executorch/exir/backend:compile_spec_schema",
    ],
)

runtime.python_library(
    name = "example_partitioner",
    srcs = [
        "example_partitioner.py",
    ],
    deps = [
        ":example_backend",
        "//caffe2:torch",
        "//executorch/backends/example/example_operators:example_operators_lib",
        "//executorch/exir:graph_module",
        "//executorch/exir/backend:partitioner",
        "//executorch/exir/backend/canonical_partitioners:canonical_partitioner_lib",
        "//executorch/exir/dialects:lib",
    ],
)

python_unittest(
    name = "test_example_delegate",
    srcs = [
        "test_example_delegate.py",
    ],
    deps = [
        ":example_partitioner",
        ":example_quantizer",
        "//caffe2:torch",
        "//executorch/exir:delegate",
        "//executorch/exir:lib",
        "//executorch/exir/backend/canonical_partitioners:canonical_partitioner_lib",
        "//pytorch/vision:torchvision",
    ],
)
