# Copyright 2025 Arm Limited and/or its affiliates.
#
# This source code is licensed under the BSD-style license found in the
# LICENSE file in the root directory of this source tree.

# @noautodeps
load("@fbsource//xplat/executorch/build:runtime_wrapper.bzl", "runtime")

runtime.python_library(
    name = "constants",
    srcs = [
        "constants.py",
    ],
    deps = [
        "//executorch/exir/dialects:lib",
    ],
)
runtime.python_library(
    name = "common",
    srcs = [
        "common/__init__.py",
        "common/debug.py",
    ],
    deps = [
        "fbsource//third-party/tosa_tools:serializer",
        "//caffe2:torch",
        "//executorch/exir:lib",
    ],
)

runtime.python_library(
    name = "arm_compile_spec",
    srcs = [
        "common/arm_compile_spec.py",
    ],
    deps = [
        "fbsource//third-party/pypi/flatbuffers:flatbuffers",
        "fbsource//third-party/pypi/ml-dtypes:ml-dtypes",
        "fbsource//third-party/tosa_tools:serializer",
        "fbsource//third-party/tosa_tools:tosa",
        ":process_node",
        "//executorch/exir/backend:compile_spec_schema",
        "//executorch/backends/arm/operators:lib",
        "//executorch/backends/arm/operators:node_visitor",
        "//executorch/backends/arm/_passes:passes",
    ],
)
runtime.python_library(
    name = "ethosu",
    srcs = [
        "ethosu/__init__.py",
        "ethosu/backend.py",
        "ethosu/compile_spec.py",
        "ethosu/partitioner.py",
    ],
    deps = [
        ":arm_compile_spec",
        ":arm_vela",
        "//executorch/backends/arm/tosa:specification",
        "//executorch/backends/arm/tosa:partitioner",
    ],
)

runtime.python_library(
    name = "vgf",
    srcs = [
        "vgf/__init__.py",
        "vgf/backend.py",
        "vgf/compile_spec.py",
        "vgf/partitioner.py",
    ],
    deps = [
        ":arm_compile_spec",
        "//executorch/backends/arm/tosa:specification",
        "//executorch/backends/arm/tosa:partitioner",
    ],
)

runtime.python_library(
    name = "process_node",
    srcs = ["process_node.py"],
    deps = [
        "fbsource//third-party/tosa_tools:tosa",
        "//executorch/backends/arm/operators:node_visitor",
        "//executorch/backends/arm/tosa:mapping",
        "//executorch/backends/arm/tosa:quant_utils",
        "//executorch/backends/arm/tosa:utils",
        "//executorch/exir:lib",
    ],
)
runtime.python_library(
    name = "arm_vela",
    srcs = [
        "arm_vela.py",
    ],
    deps = [
        "fbsource//third-party/pypi/ethos-u-vela:ethos-u-vela",
    ],
)
runtime.python_library(
    name = "arm_model_evaluator",
    srcs = [
        "util/arm_model_evaluator.py",
    ],
    deps = [
        "//caffe2:torch",
    ]
)
