| package { |
| default_applicable_licenses: ["external_tflite-support_license"], |
| } |
| |
| // Added automatically by a large-scale-change that took the approach of |
| // 'apply every license found to every target'. While this makes sure we respect |
| // every license restriction, it may not be entirely correct. |
| // |
| // e.g. GPL in an MIT project might only apply to the contrib/ directory. |
| // |
| // Please consider splitting the single license below into multiple licenses, |
| // taking care not to lose any license_kind information, and overriding the |
| // default license using the 'licenses: [...]' property on targets as needed. |
| // |
| // For unused files, consider creating a 'fileGroup' with "//visibility:private" |
| // to attach the license to, and including a comment whether the files may be |
| // used in the current project. |
| // See: http://go/android-license-faq |
| |
| // TODO (ag/17748161): Split into smaller localized build files as necessary. |
| |
| license { |
| name: "external_tflite-support_license", |
| visibility: [":__subpackages__"], |
| license_kinds: [ |
| "SPDX-license-identifier-Apache-2.0", |
| "SPDX-license-identifier-BSD", |
| "SPDX-license-identifier-MIT", |
| ], |
| license_text: [ |
| "LICENSE", |
| ], |
| } |
| |
| cc_defaults { |
| name: "tflite_support_defaults", |
| cflags: [ |
| "-Wno-ignored-qualifiers", |
| "-Wno-missing-field-initializers", |
| "-Wno-unused-parameter", |
| "-Wno-unused-variable", |
| ], |
| } |
| |
| cc_library_static { |
| name: "tflite_support", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| stl: "libc++_static", |
| export_include_dirs: ["."], |
| srcs: [ |
| "tensorflow_lite_support/cc/utils/common_utils.cc", |
| "tensorflow_lite_support/custom_ops/kernel/sentencepiece/sentencepiece_tokenizer_tflite.cc", |
| "tensorflow_lite_support/custom_ops/kernel/sentencepiece/optimized_encoder.cc", |
| "tensorflow_lite_support/custom_ops/kernel/ragged/ragged_range_tflite.cc", |
| "tensorflow_lite_support/custom_ops/kernel/ragged/ragged_tensor_to_tensor_tflite.cc", |
| ], |
| cflags: [ |
| "-Werror", |
| "-Wall", |
| "-O2", |
| "-Wno-missing-field-initializers", |
| "-Wno-unused-parameter", |
| "-Wno-unused-variable", |
| ], |
| generated_headers: [ |
| "tflite_support_spm_config", |
| "tflite_support_spm_encoder_config" |
| ], |
| header_libs: [ |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| ], |
| static_libs: [ |
| "libtextclassifier_abseil", |
| "libtflite_static", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| |
| visibility: ["//external/libtextclassifier:__subpackages__"], |
| } |
| |
| java_library { |
| name: "tflite_support_java", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| srcs: [ |
| "tensorflow_lite_support/java/src/java/org/tensorflow/lite/support/**/*.java", |
| ], |
| libs: [ |
| "guava-android-annotation-stubs", |
| ], |
| static_libs: [ |
| "tensorflowlite_java", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| cc_library_static { |
| name: "tflite_support_tokenizers", |
| srcs: [ |
| "tensorflow_lite_support/cc/task/core/task_utils.cc", |
| "tensorflow_lite_support/cc/text/tokenizers/regex_tokenizer.cc", |
| "tensorflow_lite_support/cc/text/tokenizers/tokenizer_utils.cc", |
| "tensorflow_lite_support/cc/utils/common_utils.cc", |
| ], |
| defaults: ["tflite_support_defaults"], |
| stl: "libc++_static", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| export_include_dirs: ["."], |
| header_libs: [ |
| // TODO (ag/17748161): Create target for just TFLite headers and use here. |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| "libtextclassifier_flatbuffer_headers", |
| ], |
| generated_headers: ["tflite_support_metadata_schema"], |
| static_libs: [ |
| "libtextclassifier_bert_tokenizer", |
| "libtextclassifier_abseil", |
| "libtflite_static", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| cc_test { |
| name: "tflite_support_tokenizer_tests", |
| srcs: [ |
| "tensorflow_lite_support/cc/test/text/regex_tokenizer_test.cc", |
| ], |
| defaults: ["tflite_support_defaults"], |
| data: ["tensorflow_lite_support/cc/test/testdata/task/text/**/*.txt"], |
| stl: "libc++_static", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| static_libs: [ |
| "tflite_support_tokenizers", |
| "libtextclassifier_abseil", |
| "libgmock_ndk", |
| "libbase_ndk", |
| ], |
| header_libs: [ |
| // TODO (ag/17748161): Create target for just TFLite headers and use here. |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| ], |
| generated_headers: ["tflite_support_metadata_schema"], |
| } |
| |
| cc_library_static { |
| name: "tflite_support_classifiers", |
| srcs: [ |
| "tensorflow_lite_support/cc/task/text/nlclassifier/**/*.cc", |
| "tensorflow_lite_support/cc/common.cc", |
| "tensorflow_lite_support/cc/port/default/tflite_wrapper.cc", |
| "tensorflow_lite_support/cc/port/default/statusor.cc", |
| ], |
| defaults: ["tflite_support_defaults"], |
| stl: "libc++_static", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| export_include_dirs: ["."], |
| header_libs: [ |
| // TODO (ag/17748161): Create target for just TFLite headers and use here. |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| ], |
| generated_headers: ["tflite_support_metadata_schema"], |
| static_libs: [ |
| "libtextclassifier_abseil", |
| "libtflite_static", |
| "tflite_configuration_proto", |
| "tflite_support_task_core_proto", |
| "tflite_support_tokenizers", |
| "tflite_support_metadata_extractor", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| java_library { |
| name: "tflite_support_classifiers_java", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| srcs: [ |
| "tensorflow_lite_support/java/src/java/org/tensorflow/lite/task/text/nlclassifier/**/*.java", |
| ], |
| static_libs: [ |
| "auto_value_annotations", |
| "tflite_support_java", |
| "tflite_support_base_task_api_java", |
| ], |
| plugins: [ |
| "auto_value_plugin", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| cc_library_shared { |
| name: "libtflite_support_classifiers_native", |
| srcs: [ |
| "tensorflow_lite_support/java/src/native/task/text/nlclassifier/bert_nlclassifier/bert_nl_classifier_jni.cc", |
| "tensorflow_lite_support/java/src/native/task/text/nlclassifier/nl_classifier_jni.cc", |
| "tensorflow_lite_support/java/src/native/task/text/nlclassifier/nl_classifier_jni_utils.cc", |
| "tensorflow_lite_support/java/src/native/task/core/builtin_op_resolver.cc", |
| "tensorflow_lite_support/cc/utils/jni_utils.cc", |
| ], |
| version_script: "tensorflow_lite_support/java/tflite_version_script.lds", |
| shared_libs: ["liblog"], |
| static_libs: [ |
| "libprotobuf-cpp-lite-ndk", |
| "libtextclassifier_abseil", |
| "libtextclassifier_bert_tokenizer", |
| "libtflite_static", |
| "tflite_configuration_proto", |
| "tflite_support_classifiers", |
| "tflite_support_libz", |
| "tflite_support_metadata_extractor", |
| "tflite_support_task_core", |
| "tflite_support_task_core_proto", |
| "tflite_support_tokenizers", |
| ], |
| header_libs: [ |
| // TODO (ag/17748161): Create target for just TFLite headers and use here. |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| "jni_headers", |
| "libtextclassifier_flatbuffer_headers", |
| ], |
| generated_headers: [ |
| "libtflite_mutable_schema", |
| "tflite_support_metadata_schema", |
| ], |
| defaults: ["tflite_support_defaults"], |
| stl: "libc++_static", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| export_include_dirs: ["."], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| java_library { |
| name: "tflite_support_base_task_api_java", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| srcs: [ |
| "tensorflow_lite_support/java/src/java/org/tensorflow/lite/task/core/*.java", |
| ], |
| optimize: { |
| proguard_flags_files: ["proguard.flags"], |
| }, |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| cc_library_static { |
| name: "tflite_support_metadata_extractor", |
| srcs: [ |
| "tensorflow_lite_support/metadata/cc/metadata_extractor.cc", |
| "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc", |
| ], |
| defaults: ["tflite_support_defaults"], |
| stl: "libc++_static", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| export_include_dirs: ["."], |
| header_libs: [ |
| // TODO (ag/17748161): Create target for just TFLite headers and use here. |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| "libtextclassifier_flatbuffer_headers", |
| ], |
| generated_headers: [ |
| "libtflite_mutable_schema", |
| "tflite_support_metadata_schema", |
| ], |
| static_libs: [ |
| "libtextclassifier_abseil", |
| "tflite_support_libz", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| cc_library_static { |
| name: "tflite_support_task_core", |
| srcs: ["tensorflow_lite_support/cc/task/core/**/*.cc"], |
| defaults: ["tflite_support_defaults"], |
| stl: "libc++_static", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| export_include_dirs: ["."], |
| header_libs: [ |
| // TODO (ag/17748161): Create target for just TFLite headers and use here. |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| ], |
| generated_headers: [ |
| "libtflite_mutable_schema", |
| "tflite_support_metadata_schema", |
| ], |
| static_libs: [ |
| "libtextclassifier_abseil", |
| "tflite_configuration_proto", |
| "tflite_support_task_core_proto", |
| ], |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| cc_test { |
| name: "tflite_support_classifier_tests", |
| srcs: [ |
| "tensorflow_lite_support/cc/test/task/text/bert_nl_classifier_test.cc", |
| ], |
| data: ["tensorflow_lite_support/cc/test/testdata/task/text/**/*.tflite"], |
| defaults: [ |
| "tflite_support_defaults", |
| ], |
| stl: "libc++_static", |
| sdk_version: "current", |
| min_sdk_version: "30", |
| shared_libs: [ |
| "liblog", |
| ], |
| static_libs: [ |
| "libprotobuf-cpp-lite-ndk", |
| "libtextclassifier_abseil", |
| "libtextclassifier_bert_tokenizer", |
| "libtflite_static", |
| "libgmock_ndk", |
| "libbase_ndk", |
| "tflite_configuration_proto", |
| "tflite_support_classifiers", |
| "tflite_support_libz", |
| "tflite_support_metadata_extractor", |
| "tflite_support_task_core", |
| "tflite_support_task_core_proto", |
| "tflite_support_tokenizers", |
| ], |
| header_libs: [ |
| // TODO (ag/17748161): Create target for just TFLite headers and use here. |
| "tensorflow_headers", |
| "flatbuffer_headers", |
| "liblog_headers", |
| "libtextclassifier_flatbuffer_headers", |
| ], |
| generated_headers: [ |
| "libtflite_mutable_schema", |
| "tflite_support_metadata_schema", |
| ], |
| } |
| |
| android_test { |
| name: "TfliteSupportClassifierTests", |
| srcs: [ |
| "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/text/nlclassifier/BertNLClassifierTest.java", |
| ], |
| asset_dirs: [ |
| "tensorflow_lite_support/java/src/javatests/testdata/task/text", |
| ], |
| defaults: ["modules-utils-testable-device-config-defaults"], |
| manifest: "tensorflow_lite_support/java/AndroidManifest.xml", |
| sdk_version: "module_current", |
| min_sdk_version: "30", |
| static_libs: [ |
| "androidx.test.core", |
| "tensorflowlite_java", |
| "truth-prebuilt", |
| "tflite_support_classifiers_java", |
| "tflite_support_test_utils_java", |
| ], |
| libs: [ |
| "android.test.base", |
| "android.test.mock.stubs", |
| ], |
| test_suites: [ |
| "general-tests", |
| ], |
| jni_libs: [ |
| "libtflite_support_classifiers_native", |
| ], |
| aaptflags: [ |
| // Avoid compression on tflite files as the Interpreter |
| // can not load compressed flat buffer formats. |
| // (*appt compresses all assets into the apk by default) |
| // See https://elinux.org/Android_aapt for more detail. |
| "-0 .tflite", |
| ], |
| } |
| |
| java_library_static { |
| name: "tflite_support_test_utils_java", |
| sdk_version: "module_current", |
| min_sdk_version: "30", |
| srcs: [ |
| "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/core/TestUtils.java", |
| ], |
| static_libs: [ |
| "apache-commons-compress", |
| "guava", |
| ], |
| } |
| |
| cc_library_static { |
| name: "tflite_support_task_core_proto", |
| proto: { |
| type: "lite", |
| canonical_path_from_root: false, |
| export_proto_headers: true, |
| }, |
| stl: "libc++", |
| srcs: ["tensorflow_lite_support/cc/task/core/proto/**/*.proto"], |
| sdk_version: "current", |
| min_sdk_version: "30", |
| apex_available: [ |
| "//apex_available:platform", |
| "com.android.adservices", |
| "com.android.extservices", |
| ], |
| } |
| |
| // Add header file targets. |
| genrule { |
| name: "tflite_support_metadata_schema", |
| srcs: ["tensorflow_lite_support/metadata/metadata_schema.fbs"], |
| out: ["tensorflow_lite_support/metadata/metadata_schema_generated.h"], |
| defaults: ["tflite_support_fbgen"], |
| } |
| |
| |
| // ----------------- |
| // Generate headers with FlatBuffer schema compiler. |
| // ----------------- |
| genrule_defaults { |
| name: "tflite_support_fbgen", |
| tools: ["flatc"], |
| // "depfile" is used here in conjunction with flatc's -M to gather the deps |
| cmd: "$(location flatc) --cpp --no-union-value-namespacing --gen-object-api --keep-prefix -I external/tflite-support -M $(in) >$(depfile) && " + |
| "$(location flatc) --cpp --no-union-value-namespacing --gen-object-api --keep-prefix -I external/tflite-support -o $$(dirname $(out)) $(in)", |
| depfile: true, |
| } |
| |
| genrule { |
| name: "tflite_support_spm_config", |
| srcs: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config.fbs"], |
| out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config_generated.h"], |
| defaults: ["tflite_support_fbgen"], |
| } |
| |
| genrule { |
| name: "tflite_support_spm_encoder_config", |
| srcs: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config.fbs"], |
| out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config_generated.h"], |
| defaults: ["tflite_support_fbgen"], |
| } |