blob: a1b46ba978d2d142e07673cafe27a2ddde2f4138 [file] [log] [blame]
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Common types and utilities used in the IREE codebase.
load("//build_tools/embed_data:build_defs.bzl", "cc_embed_data")
package(
default_visibility = ["//visibility:public"],
features = ["layering_check"],
licenses = ["notice"], # Apache 2.0
)
cc_library(
name = "alignment",
hdrs = ["alignment.h"],
deps = [
":target_platform",
],
)
cc_library(
name = "api",
srcs = [
"api.c",
],
hdrs = ["api.h"],
visibility = ["//visibility:public"],
deps = [
":api_hdrs",
":target_platform",
":tracing",
],
)
cc_library(
name = "api_hdrs",
hdrs = ["api.h"],
)
cc_library(
name = "arena",
srcs = ["arena.cc"],
hdrs = ["arena.h"],
deps = [
":logging",
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/types:span",
],
)
cc_test(
name = "arena_test",
srcs = ["arena_test.cc"],
deps = [
":arena",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "atomics",
hdrs = ["atomics.h"],
deps = [
":target_platform",
],
)
cc_library(
name = "bitfield",
hdrs = ["bitfield.h"],
deps = [
"@com_google_absl//absl/types:span",
],
)
cc_test(
name = "bitfield_test",
srcs = ["bitfield_test.cc"],
deps = [
":bitfield",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "dynamic_library",
srcs = [
"dynamic_library_posix.cc",
"dynamic_library_win32.cc",
],
hdrs = ["dynamic_library.h"],
linkopts = ["-ldl"],
deps = [
":logging",
":status",
":target_platform",
":tracing",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/types:span",
],
)
cc_binary(
name = "dynamic_library_test_library.so",
testonly = True,
srcs = ["dynamic_library_test_library.cc"],
linkshared = True,
)
cc_embed_data(
name = "dynamic_library_test_library",
testonly = True,
srcs = [":dynamic_library_test_library.so"],
cc_file_output = "dynamic_library_test_library_embed.cc",
cpp_namespace = "iree",
flatten = True,
h_file_output = "dynamic_library_test_library_embed.h",
)
cc_test(
name = "dynamic_library_test",
srcs = ["dynamic_library_test.cc"],
deps = [
":dynamic_library",
":dynamic_library_test_library",
":file_io",
":status",
":target_platform",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "file_io",
hdrs = ["file_io.h"],
deps = [
":status",
":target_platform",
"//iree/base/internal:file_io_internal",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "file_io_hdrs",
hdrs = ["file_io.h"],
deps = [
":status",
"@com_google_absl//absl/strings",
],
)
cc_test(
name = "file_io_test",
srcs = ["file_io_test.cc"],
deps = [
":file_io",
":file_path",
":logging",
":status",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
"@com_google_absl//absl/strings",
],
)
cc_library(
name = "file_mapping",
hdrs = ["file_mapping.h"],
deps = [
":ref_ptr",
":status",
"//iree/base/internal:file_mapping_internal",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "file_mapping_hdrs",
hdrs = ["file_mapping.h"],
deps = [
":ref_ptr",
":status",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "file_path",
srcs = ["file_path.cc"],
hdrs = ["file_path.h"],
deps = [
"@com_google_absl//absl/strings",
],
)
cc_test(
name = "file_path_test",
srcs = [
"file_path_test.cc",
],
deps = [
":file_path",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "flatbuffer_util",
srcs = ["flatbuffer_util.cc"],
hdrs = ["flatbuffer_util.h"],
deps = [
":file_mapping",
":memory",
":ref_ptr",
":status",
":tracing",
"@com_github_google_flatbuffers//:flatbuffers",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:optional",
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "init",
srcs = ["init.cc"],
hdrs = ["init.h"],
deps = [
":initializer",
"@com_google_absl//absl/flags:parse",
],
)
cc_library(
name = "initializer",
srcs = ["initializer.cc"],
hdrs = ["initializer.h"],
deps = [
":target_platform",
],
)
cc_library(
name = "intrusive_list",
hdrs = [
"intrusive_list.h",
"intrusive_list_ref_ptr.inc",
"intrusive_list_unique_ptr.inc",
],
deps = [
":logging",
":ref_ptr",
],
)
cc_test(
name = "intrusive_list_test",
srcs = [
"intrusive_list_ref_ptr_test.cc",
"intrusive_list_test.cc",
"intrusive_list_unique_ptr_test.cc",
],
deps = [
":intrusive_list",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
"@com_google_absl//absl/memory",
],
)
cc_library(
name = "logging",
srcs = ["logging.cc"],
hdrs = ["logging.h"],
deps = [
"@com_google_absl//absl/base:core_headers",
"@com_google_absl//absl/flags:flag",
],
)
cc_library(
name = "main",
srcs = [
"main_posix.cc",
"main_win32.cc",
],
hdrs = ["main.h"],
deps = [
":logging",
":target_platform",
],
)
cc_library(
name = "math",
hdrs = ["math.h"],
deps = [
"@com_google_absl//absl/base:core_headers",
],
)
cc_library(
name = "memory",
hdrs = ["memory.h"],
deps = [
"@com_google_absl//absl/types:span",
],
)
cc_library(
name = "ref_ptr",
hdrs = ["ref_ptr.h"],
deps = [
":logging",
"@com_google_absl//absl/base:core_headers",
],
)
cc_test(
name = "ref_ptr_test",
size = "small",
srcs = ["ref_ptr_test.cc"],
deps = [
":ref_ptr",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "signature_mangle",
srcs = ["signature_mangle.cc"],
hdrs = ["signature_mangle.h"],
deps = [
":status",
"@com_google_absl//absl/container:inlined_vector",
"@com_google_absl//absl/memory",
"@com_google_absl//absl/strings",
"@com_google_absl//absl/types:optional",
"@com_google_absl//absl/types:span",
],
)
cc_test(
name = "signature_mangle_test",
srcs = ["signature_mangle_test.cc"],
deps = [
":signature_mangle",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "status",
hdrs = ["status.h"],
deps = [
"//iree/base/internal:status_internal",
],
)
cc_test(
name = "status_test",
srcs = ["status_test.cc"],
deps = [
":status",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "synchronization",
srcs = ["synchronization.c"],
hdrs = ["synchronization.h"],
linkopts = select({
"//iree:iree_is_msvc": [],
"//conditions:default": [
"-lpthread",
],
}),
deps = [
":api",
":atomics",
":target_platform",
":tracing",
],
)
cc_test(
name = "synchronization_benchmark",
srcs = ["synchronization_benchmark.cc"],
deps = [
":synchronization",
"//iree/testing:benchmark_main",
"@com_google_benchmark//:benchmark",
],
)
cc_test(
name = "synchronization_test",
srcs = ["synchronization_test.cc"],
deps = [
":synchronization",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "target_platform",
hdrs = ["target_platform.h"],
)
cc_library(
name = "time",
hdrs = ["time.h"],
deps = [
":api",
],
)
cc_test(
name = "time_test",
srcs = ["time_test.cc"],
deps = [
":time",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "threading",
srcs = [
"threading.c",
"threading_darwin.c",
"threading_impl.h",
"threading_pthreads.c",
"threading_win32.c",
],
hdrs = ["threading.h"],
copts = [
"-D_GNU_SOURCE=1",
],
linkopts = select({
"//iree:iree_is_msvc": [],
"//conditions:default": [
"-ldl",
"-lpthread",
],
}),
deps = [
":api",
":atomics",
":synchronization",
":target_platform",
":tracing",
],
)
cc_test(
name = "threading_benchmark",
srcs = ["threading_benchmark.cc"],
deps = [
":threading",
"//iree/testing:benchmark_main",
"@com_google_benchmark//:benchmark",
],
)
cc_test(
name = "threading_test",
srcs = [
"threading_impl.h",
"threading_test.cc",
],
deps = [
":synchronization",
":threading",
"//iree/testing:gtest",
"//iree/testing:gtest_main",
],
)
cc_library(
name = "tracing",
hdrs = ["tracing.h"],
deps = [
"@com_google_absl//absl/base:core_headers",
],
)
# Dependent code has been removed and wait_handle is currently incompatible
# with Windows, so excluding entirely.
# See google/iree/65
# cc_library(
# name = "wait_handle",
# srcs = ["wait_handle.cc"],
# hdrs = ["wait_handle.h"],
# deps = [
# ":logging",
# ":ref_ptr",
# ":status",
# ":time",
# "@com_google_absl//absl/base:core_headers",
# "@com_google_absl//absl/container:fixed_array",
# "@com_google_absl//absl/strings",
# "@com_google_absl//absl/time",
# "@com_google_absl//absl/types:span",
# ],
# )
# cc_test(
# name = "wait_handle_test",
# srcs = ["wait_handle_test.cc"],
# deps = [
# ":status",
# ":wait_handle",
# "@com_google_absl//absl/time",
# "//iree/testing:gtest",
# "//iree/testing:gtest_main",
# ],
# )