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

oncall("odai_jarvis")

fbcode_target(_kind = runtime.python_library,
    name = "utils",
    srcs = [
        "utils.py",
    ],
    deps = [
        "//caffe2:torch",
        "//pytorch/ao:torchao",
    ],
)

fbcode_target(_kind = runtime.python_library,
    name = "pattern_utils",
    srcs = [
        "pattern_utils.py",
    ],
    deps = [
        ":utils",
        "//caffe2:torch",
        "//executorch/backends/cadence/aot:compiler_utils",
        "//executorch/backends/cadence/aot:pass_utils",
        "//executorch/backends/cadence/aot:utils",
    ],
)

fbcode_target(_kind = runtime.python_library,
    name = "patterns",
    srcs = [
        "patterns.py",
    ],
    deps = [
        ":pattern_utils",
        ":utils",
        "//caffe2:torch",
        "//executorch/backends/cadence/aot:pass_utils",
    ],
)

fbcode_target(_kind = runtime.python_library,
    name = "quantizer",
    srcs = [
        "quantizer.py",
    ],
    deps = [
        ":patterns",
        ":utils",
        "//caffe2:torch",
    ],
)

fbcode_target(_kind = runtime.python_library,
    name = "fusion_pass",
    srcs = [
        "fusion_pass.py",
    ],
    deps = [
        ":patterns",
        ":utils",
        "//caffe2:torch",
        "//executorch/exir:pass_base",
    ],
)
