| # TensorFlow Lite for iOS |
| |
| load("@bazel_skylib//rules:build_test.bzl", "build_test") |
| load( |
| "//tensorflow/lite/experimental/ios:ios.bzl", |
| "TFL_MINIMUM_OS_VERSION", |
| "strip_common_include_path_prefix", |
| "tflite_ios_static_framework", |
| ) |
| load("@build_bazel_rules_apple//apple:ios.bzl", "ios_static_framework") |
| |
| package( |
| default_visibility = [ |
| "//tensorflow/lite:__subpackages__", |
| ], |
| licenses = ["notice"], # Apache 2.0 |
| ) |
| |
| sh_binary( |
| name = "hide_symbols_with_allowlist", |
| srcs = [ |
| "hide_symbols_with_allowlist.sh", |
| ], |
| visibility = [ |
| "//tensorflow/lite:__subpackages__", |
| "//tensorflow_lite_support:__subpackages__", |
| ], |
| ) |
| |
| strip_common_include_path_prefix( |
| name = "strip_common_include_path_core", |
| hdr_labels = [ |
| "//tensorflow/lite/c:c_api.h", |
| "//tensorflow/lite/delegates/xnnpack:xnnpack_delegate.h", |
| ], |
| ) |
| |
| strip_common_include_path_prefix( |
| name = "strip_common_include_path_subspecs", |
| hdr_labels = [ |
| "//tensorflow/lite/delegates/gpu:metal_delegate.h", |
| "//tensorflow/lite/experimental/delegates/coreml:coreml_delegate.h", |
| ], |
| prefix = "TensorFlowLiteC/", |
| ) |
| |
| # bazel build -c opt --config=ios_fat //tensorflow/lite/experimental/ios:TensorFlowLiteC_framework |
| tflite_ios_static_framework( |
| name = "TensorFlowLiteC_framework", |
| hdrs = [ |
| ":c_api.h", |
| ":xnnpack_delegate.h", |
| "//tensorflow/lite/c:common.h", |
| ], |
| allowlist_symbols_file = ":allowlist_TensorFlowLiteC.txt", |
| bundle_name = "TensorFlowLiteC", |
| minimum_os_version = TFL_MINIMUM_OS_VERSION, |
| deps = [ |
| ":tensorflow_lite_c", |
| ], |
| ) |
| |
| # This target builds the flex delegate as a separate static framework, which |
| # does not include the TensorFlow Lite runtime. As this target does not contain |
| # TensorFlow Lite runtime, it is intended to be linked along with the |
| # TensorFlowLiteC framework above in a composable way. |
| # |
| # The flex delegate cannot be built for i386, so it can't be built with ios_fat |
| # config. |
| # |
| # bazel build -c opt --config=ios --ios_multi_cpus=armv7,arm64,x86_64 //tensorflow/lite/experimental/ios:TensorFlowLiteSelectTfOps_framework |
| ios_static_framework( |
| name = "TensorFlowLiteSelectTfOps_framework", |
| bundle_name = "TensorFlowLiteSelectTfOps", |
| minimum_os_version = TFL_MINIMUM_OS_VERSION, |
| deps = [ |
| "//tensorflow/lite/delegates/flex:delegate", |
| ], |
| ) |
| |
| # This target builds the Core ML delegate as a separate static framework, which |
| # does not include the TensorFlow Lite runtime. As this target does not contain |
| # TensorFlow Lite runtime, it is intended to be linked along with the |
| # TensorFlowLiteC framework above in a composable way. |
| # |
| # bazel build -c opt --config=ios_fat //tensorflow/lite/experimental/ios:TensorFlowLiteCCoreML_framework |
| tflite_ios_static_framework( |
| name = "TensorFlowLiteCCoreML_framework", |
| hdrs = [ |
| ":coreml_delegate.h", |
| ], |
| allowlist_symbols_file = ":allowlist_TensorFlowLiteCCoreML.txt", |
| bundle_name = "TensorFlowLiteCCoreML", |
| minimum_os_version = TFL_MINIMUM_OS_VERSION, |
| deps = [ |
| "//tensorflow/lite/experimental/delegates/coreml:coreml_delegate", |
| ], |
| ) |
| |
| # This target builds the Metal delegate as a separate static framework, which |
| # does not include the TensorFlow Lite runtime. As this target does not contain |
| # TensorFlow Lite runtime, it is intended to be linked along with the |
| # TensorFlowLiteC framework above in a composable way. |
| # |
| # bazel build -c opt --config=ios_fat //tensorflow/lite/experimental/ios:TensorFlowLiteCMetal_framework |
| tflite_ios_static_framework( |
| name = "TensorFlowLiteCMetal_framework", |
| hdrs = [ |
| ":metal_delegate.h", |
| ], |
| allowlist_symbols_file = ":allowlist_TensorFlowLiteCMetal.txt", |
| bundle_name = "TensorFlowLiteCMetal", |
| minimum_os_version = TFL_MINIMUM_OS_VERSION, |
| deps = [ |
| "//tensorflow/lite/delegates/gpu:metal_delegate", |
| ], |
| ) |
| |
| cc_library( |
| name = "tensorflow_lite_c", |
| hdrs = [ |
| "//tensorflow/lite/c:c_api.h", |
| "//tensorflow/lite/c:common.h", |
| "//tensorflow/lite/delegates/xnnpack:xnnpack_delegate.h", |
| ], |
| tags = [ |
| "nobuilder", |
| "swift_module=TensorFlowLiteC", |
| ], |
| deps = [ |
| "//tensorflow/lite/c:c_api", |
| "//tensorflow/lite/delegates/xnnpack:xnnpack_delegate", |
| ], |
| ) |
| |
| # Used for building TensorFlowLiteC framework. |
| build_test( |
| name = "framework_build_test", |
| # build_test targets are not meant to be run with sanitizers. |
| tags = [ |
| "noasan", |
| "nomsan", |
| "notsan", |
| ], |
| targets = [ |
| ":TensorFlowLiteCCoreML_framework", |
| ":TensorFlowLiteCMetal_framework", |
| ":TensorFlowLiteC_framework", |
| ":TensorFlowLiteSelectTfOps_framework", |
| ], |
| ) |