blob: d0bc930fa2d42c2c226e12cd2666dade2bea6913 [file]
# 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("@rules_cc//cc:defs.bzl", "cc_library")
load("//build_tools/bazel:build_defs.oss.bzl", "iree_cmake_extra_content", "iree_compiler_register_plugin")
load("//build_tools/bazel:renamed_link.bzl", "iree_compiler_register_experimental_dynamic_plugin")
package(
default_visibility = ["//visibility:public"],
features = ["layering_check"],
licenses = ["notice"], # Apache 2.0
)
cc_library(
name = "defs",
includes = ["src"],
)
cc_library(
name = "registration",
srcs = [
"src/PluginRegistration.cpp",
],
deps = [
":defs",
"//compiler/src/iree/compiler/PluginAPI",
"//compiler/src/iree/compiler/PluginAPI:PluginEntryPoint",
"@llvm-project//mlir:IR",
],
)
iree_compiler_register_plugin(
plugin_id = "example",
target = ":registration",
)
# The same source as a loadable module, so both link modes are tested. The id
# must differ; see src/PluginRegistration.cpp. CMake builds it only with dynamic
# plugins on, hence the guard.
iree_cmake_extra_content(
content = """
if(IREE_EXPERIMENTAL_COMPILER_DYNAMIC_PLUGINS)
""",
inline = True,
)
cc_library(
name = "registration_dyn",
srcs = [
"src/PluginRegistration.cpp",
],
defines = [
"IREE_EXAMPLE_PLUGIN_ID=example_dyn",
],
deps = [
":defs",
"//compiler/src/iree/compiler/PluginAPI",
"//compiler/src/iree/compiler/PluginAPI:PluginEntryPoint",
"@llvm-project//mlir:IR",
],
)
iree_compiler_register_experimental_dynamic_plugin(
compiler = "//lib:IREECompilerShared",
plugin_id = "example_dyn",
target = ":registration_dyn",
)
iree_cmake_extra_content(
content = """
endif()
""",
inline = True,
)