blob: f3d5bb4ea7b4398f42b42bc80137cae1f61ba498 [file] [log] [blame]
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"],
}