| # Copyright 2020 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 | |
| import bazel_to_cmake_converter | |
| import bazel_to_cmake_targets | |
| DEFAULT_ROOT_DIRS = ["compiler", "runtime", "samples", "tests", "tools"] | |
| REPO_MAP = { | |
| # Since this is the @iree_core repo, map to empty since all internal | |
| # targets are of the form "//compiler", not "@iree_core//compiler". | |
| "@iree_core": "", | |
| } | |
| class CustomBuildFileFunctions(bazel_to_cmake_converter.BuildFileFunctions): | |
| def iree_compiler_cc_library(self, deps=[], **kwargs): | |
| self.cc_library(deps=deps + ["//compiler/src:defs"], **kwargs) | |
| def iree_runtime_cc_library(self, deps=[], **kwargs): | |
| self.cc_library(deps=deps + ["//runtime/src:runtime_defines"], **kwargs) | |
| def iree_runtime_wasm_cc_library(self, **kwargs): | |
| self.wasm_cc_library(**kwargs) | |
| def iree_runtime_wasm_entry(self, **kwargs): | |
| self.wasm_entry(**kwargs) | |
| def iree_runtime_wasm_cc_binary(self, deps=[], **kwargs): | |
| self.wasm_cc_binary(deps=deps + ["//runtime/src:runtime_defines"], **kwargs) | |
| def iree_runtime_wasm_cc_test(self, deps=[], **kwargs): | |
| self.wasm_cc_test(deps=deps + ["//runtime/src:runtime_defines"], **kwargs) | |
| def iree_runtime_cc_test(self, deps=[], resource_group=None, **kwargs): | |
| # Extract resource_group from tags if provided via the .bzl macro. | |
| tags = kwargs.get("tags", []) | |
| if not resource_group and tags: | |
| for tag in tags: | |
| if tag.startswith("resource_group:"): | |
| resource_group = tag[len("resource_group:") :] | |
| break | |
| self.cc_test( | |
| deps=deps + ["//runtime/src:runtime_defines"], | |
| resource_group=resource_group, | |
| **kwargs, | |
| ) | |
| def iree_compiler_cc_test(self, deps=[], **kwargs): | |
| self.cc_test(deps=deps + ["//compiler/src:defs"], **kwargs) | |
| def iree_runtime_cc_binary(self, deps=[], **kwargs): | |
| self.cc_binary(deps=deps + ["//runtime/src:runtime_defines"], **kwargs) | |
| def iree_compiler_cc_binary(self, deps=[], **kwargs): | |
| self.cc_binary(deps=deps + ["//compiler/src:defs"], **kwargs) | |
| class CustomTargetConverter(bazel_to_cmake_targets.TargetConverter): | |
| def _initialize(self): | |
| self._update_target_mappings( | |
| { | |
| "//compiler/src:defs": [], | |
| "//runtime/src:runtime_defines": [], | |
| } | |
| ) | |
| def _convert_unmatched_target(self, target: str) -> str: | |
| """Converts unmatched targets in a repo specific way.""" | |
| # Default rewrite: prefix with "iree::", without pruning the path. | |
| return ["iree::" + self._convert_to_cmake_path(target)] |