| # 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", |
| # ], |
| # ) |