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

oncall("executorch")

runtime.cxx_python_extension(
    name = "bindings",
    srcs = [
        "bindings.cpp",
    ],
    deps = [
        "fbsource//third-party/pybind11:pybind11",
        "//caffe2:torch-cpp-cpu",
        "//caffe2:torch_extension",
        "//caffe2/c10:c10",
    ],
)

runtime.python_library(
    name = "interpreter",
    srcs = [
        "interpreter.py",
    ],
    deps = [
        ":bindings",  # @manual
        "//caffe2:torch",
        "//executorch/exir:lib",
        "//executorch/exir:schema",
        "//executorch/exir:tensor",
        "//executorch/extension/pytree:pylib",
    ],
)

runtime.python_library(
    name = "devhtml",
    srcs = [
        "dev_html.py",
    ],
    deps = [
        ":interpreter",  # @manual
    ],
)

runtime.python_library(
    name = "verifier",
    srcs = [
        "arg_validator.py",
        "verifier.py",
    ],
    deps = [
        "//caffe2:torch",
        "//executorch/exir:error",
        "//executorch/exir:lowered_backend_module",
        "//executorch/exir/capture:config",
        "//executorch/exir/dialects/edge:lib",
        "//executorch/exir/emit:emit",
    ],
)

python_unittest(
    name = "test_verifier",
    srcs = ["test/test_verifier.py"],
    deps = [
        ":verifier",
        "//caffe2:torch",
        "//executorch/exir:lib",
        "//executorch/exir/dialects:lib",
    ],
)
