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

runtime.python_library(
    name = "models",
    srcs = ["models.py"],
    deps = [
        "//caffe2:torch",
    ]
)

runtime.python_library(
    name = "test_qnn_delegate",
    srcs = [
        "test_qnn_delegate.py",
        "utils.py",
    ],
    # env = {
    #     "LD_LIBRARY_PATH": "$(location fbsource//third-party/qualcomm/qnn/qnn-{0}:qnn_offline_compile_libs)".format(get_qnn_library_version()),
    # },
    deps = [
        ":models",
        "//caffe2:torch",
        "//caffe2/functorch:functorch_src",
        "//executorch/exir/backend:partitioner",
        "//executorch/exir/dialects:lib",
        "//executorch/extension/pybindings:portable_lib",  # @manual
        "//executorch/extension/pytree:pylib",
        "//executorch/backends/qualcomm/partition:partition",
        "//executorch/backends/qualcomm/quantizer:quantizer",
        "//executorch/backends/qualcomm/serialization:serialization",
        "//executorch/backends/qualcomm/utils:utils",
        "//executorch/devtools:lib",
        "//executorch/examples/qualcomm:utils",
        "//executorch/examples/models:models",
        "//executorch/backends/qualcomm/debugger:utils",
    ],
)

runtime.python_library(
    name = "tester",
    srcs = [
        "tester.py",
    ],
    deps = [
        ":test_qnn_delegate"
    ]
)

runtime.python_test(
    name = "test_passes",
    srcs = [
        "test_passes.py",
    ],
    deps = [
        "fbsource//third-party/pypi/expecttest:expecttest",  # @manual
        "//caffe2:torch",
        "//executorch/exir:lib",
        "//executorch/backends/qualcomm/_passes:passes",
        "//executorch/backends/qualcomm/builders:builders",
    ],
)
