# Copyright 2023 The IREE Authors
#
# Licensed under the Apache License v2.0 with LLVM Exceptions.
# See https://llvm.org/LICENSE.txt for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

load("//build_tools/bazel:build_defs.oss.bzl", "iree_compiler_cc_library", "iree_compiler_register_plugin")

package(
    default_visibility = ["//visibility:public"],
    features = ["layering_check"],
    licenses = ["notice"],  # Apache 2.0
)

iree_compiler_register_plugin(
    plugin_id = "input_tosa",
    target = ":registration",
)

iree_compiler_cc_library(
    name = "registration",
    srcs = [
        "PluginRegistration.cpp",
    ],
    deps = [
        "//compiler/plugins/input/TOSA/InputConversion",
        "//compiler/src/iree/compiler/PluginAPI",
        "@llvm-project//mlir:ConversionPasses",
        "@llvm-project//mlir:IR",
        "@llvm-project//mlir:Pass",
        "@llvm-project//mlir:TosaDialect",
        "@llvm-project//mlir:TosaToArith",
        "@llvm-project//mlir:TosaToLinalg",
        "@llvm-project//mlir:TosaToSCF",
        "@llvm-project//mlir:TosaToTensor",
        "@llvm-project//mlir:Transforms",
    ],
)
