1package { 2 default_applicable_licenses: ["external_tflite-support_license"], 3} 4 5// Added automatically by a large-scale-change that took the approach of 6// 'apply every license found to every target'. While this makes sure we respect 7// every license restriction, it may not be entirely correct. 8// 9// e.g. GPL in an MIT project might only apply to the contrib/ directory. 10// 11// Please consider splitting the single license below into multiple licenses, 12// taking care not to lose any license_kind information, and overriding the 13// default license using the 'licenses: [...]' property on targets as needed. 14// 15// For unused files, consider creating a 'fileGroup' with "//visibility:private" 16// to attach the license to, and including a comment whether the files may be 17// used in the current project. 18// See: http://go/android-license-faq 19 20// TODO (ag/17748161): Split into smaller localized build files as necessary. 21 22license { 23 name: "external_tflite-support_license", 24 visibility: [":__subpackages__"], 25 license_kinds: [ 26 "SPDX-license-identifier-Apache-2.0", 27 "SPDX-license-identifier-BSD", 28 "SPDX-license-identifier-MIT", 29 ], 30 license_text: [ 31 "LICENSE", 32 ], 33} 34 35cc_defaults { 36 name: "tflite_support_defaults", 37 cflags: [ 38 "-Wno-ignored-qualifiers", 39 "-Wno-missing-field-initializers", 40 "-Wno-unused-parameter", 41 "-Wno-unused-variable", 42 ], 43} 44 45cc_library_static { 46 name: "tflite_support", 47 sdk_version: "current", 48 min_sdk_version: "30", 49 stl: "libc++_static", 50 export_include_dirs: ["."], 51 srcs: [ 52 "tensorflow_lite_support/cc/utils/common_utils.cc", 53 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/sentencepiece_tokenizer_tflite.cc", 54 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/optimized_encoder.cc", 55 "tensorflow_lite_support/custom_ops/kernel/ragged/ragged_range_tflite.cc", 56 "tensorflow_lite_support/custom_ops/kernel/ragged/ragged_tensor_to_tensor_tflite.cc", 57 ], 58 cflags: [ 59 "-Werror", 60 "-Wall", 61 "-O2", 62 "-Wno-missing-field-initializers", 63 "-Wno-unused-parameter", 64 "-Wno-unused-variable", 65 ], 66 generated_headers: [ 67 "tflite_support_spm_config", 68 "tflite_support_spm_encoder_config", 69 ], 70 header_libs: [ 71 "tensorflow_headers", 72 "flatbuffer_headers", 73 ], 74 static_libs: [ 75 "libabsl", 76 "libtflite_static", 77 ], 78 apex_available: [ 79 "//apex_available:platform", 80 "com.android.adservices", 81 "com.android.extservices", 82 ], 83 84 visibility: ["//external/libtextclassifier:__subpackages__"], 85} 86 87java_library { 88 name: "tflite_support_java", 89 sdk_version: "current", 90 min_sdk_version: "30", 91 srcs: [ 92 "tensorflow_lite_support/java/src/java/org/tensorflow/lite/support/**/*.java", 93 ], 94 libs: [ 95 "guava-android-annotation-stubs", 96 ], 97 static_libs: [ 98 "tensorflowlite_java", 99 ], 100 apex_available: [ 101 "//apex_available:platform", 102 "com.android.adservices", 103 "com.android.extservices", 104 ], 105} 106 107cc_library_static { 108 name: "tflite_support_tokenizers", 109 srcs: [ 110 "tensorflow_lite_support/cc/task/core/task_utils.cc", 111 "tensorflow_lite_support/cc/text/tokenizers/regex_tokenizer.cc", 112 "tensorflow_lite_support/cc/text/tokenizers/tokenizer_utils.cc", 113 "tensorflow_lite_support/cc/utils/common_utils.cc", 114 ], 115 defaults: ["tflite_support_defaults"], 116 stl: "libc++_static", 117 sdk_version: "current", 118 min_sdk_version: "30", 119 export_include_dirs: ["."], 120 header_libs: [ 121 // TODO (ag/17748161): Create target for just TFLite headers and use here. 122 "tensorflow_headers", 123 "flatbuffer_headers", 124 "libtextclassifier_flatbuffer_headers", 125 ], 126 generated_headers: ["tflite_support_metadata_schema"], 127 static_libs: [ 128 "libabsl", 129 "libtextclassifier_bert_tokenizer", 130 "libtflite_static", 131 ], 132 apex_available: [ 133 "//apex_available:platform", 134 "com.android.adservices", 135 "com.android.extservices", 136 ], 137} 138 139cc_test { 140 name: "tflite_support_tokenizer_tests", 141 srcs: [ 142 "tensorflow_lite_support/cc/test/text/regex_tokenizer_test.cc", 143 ], 144 defaults: ["tflite_support_defaults"], 145 data: ["tensorflow_lite_support/cc/test/testdata/task/text/**/*.txt"], 146 stl: "libc++_static", 147 sdk_version: "current", 148 min_sdk_version: "30", 149 static_libs: [ 150 "libabsl", 151 "libbase_ndk", 152 "libgmock_ndk", 153 "tflite_support_tokenizers", 154 ], 155 header_libs: [ 156 // TODO (ag/17748161): Create target for just TFLite headers and use here. 157 "tensorflow_headers", 158 "flatbuffer_headers", 159 ], 160 generated_headers: ["tflite_support_metadata_schema"], 161} 162 163cc_library_static { 164 name: "tflite_support_classifiers", 165 srcs: [ 166 "tensorflow_lite_support/cc/task/text/nlclassifier/**/*.cc", 167 "tensorflow_lite_support/cc/common.cc", 168 "tensorflow_lite_support/cc/port/default/tflite_wrapper.cc", 169 "tensorflow_lite_support/cc/port/default/statusor.cc", 170 ], 171 defaults: ["tflite_support_defaults"], 172 stl: "libc++_static", 173 sdk_version: "current", 174 min_sdk_version: "30", 175 export_include_dirs: ["."], 176 header_libs: [ 177 // TODO (ag/17748161): Create target for just TFLite headers and use here. 178 "tensorflow_headers", 179 "flatbuffer_headers", 180 ], 181 generated_headers: ["tflite_support_metadata_schema"], 182 static_libs: [ 183 "libabsl", 184 "libtflite_static", 185 "tflite_configuration_proto", 186 "tflite_support_task_core_proto", 187 "tflite_support_tokenizers", 188 "tflite_support_metadata_extractor", 189 ], 190 apex_available: [ 191 "//apex_available:platform", 192 "com.android.adservices", 193 "com.android.extservices", 194 ], 195} 196 197java_library { 198 name: "tflite_support_classifiers_java", 199 sdk_version: "current", 200 min_sdk_version: "30", 201 srcs: [ 202 "tensorflow_lite_support/java/src/java/org/tensorflow/lite/task/text/nlclassifier/**/*.java", 203 ], 204 static_libs: [ 205 "auto_value_annotations", 206 "tflite_support_java", 207 "tflite_support_base_task_api_java", 208 ], 209 plugins: [ 210 "auto_value_plugin", 211 ], 212 apex_available: [ 213 "//apex_available:platform", 214 "com.android.adservices", 215 "com.android.extservices", 216 ], 217} 218 219cc_library_shared { 220 name: "libtflite_support_classifiers_native", 221 srcs: [ 222 "tensorflow_lite_support/java/src/native/task/text/nlclassifier/bert_nlclassifier/bert_nl_classifier_jni.cc", 223 "tensorflow_lite_support/java/src/native/task/text/nlclassifier/nl_classifier_jni.cc", 224 "tensorflow_lite_support/java/src/native/task/text/nlclassifier/nl_classifier_jni_utils.cc", 225 "tensorflow_lite_support/java/src/native/task/core/rbtml_op_resolver.cc", 226 "tensorflow_lite_support/custom_ops/kernel/unsorted_segment.cc", 227 "tensorflow_lite_support/cc/utils/jni_utils.cc", 228 ], 229 version_script: "tensorflow_lite_support/java/tflite_version_script.lds", 230 shared_libs: [ 231 "liblog", 232 "libz", 233 ], 234 static_libs: [ 235 "libabsl", 236 "libprotobuf-cpp-lite-ndk", 237 "libtextclassifier_bert_tokenizer", 238 "libtflite_static", 239 "tflite_configuration_proto", 240 "tflite_support_classifiers", 241 "tflite_support_libz", 242 "tflite_support_metadata_extractor", 243 "tflite_support_task_core", 244 "tflite_support_task_core_proto", 245 "tflite_support_tokenizers", 246 ], 247 header_libs: [ 248 // TODO (ag/17748161): Create target for just TFLite headers and use here. 249 "tensorflow_headers", 250 "flatbuffer_headers", 251 "jni_headers", 252 "libtextclassifier_flatbuffer_headers", 253 ], 254 generated_headers: [ 255 "libtflite_mutable_schema", 256 "tflite_support_metadata_schema", 257 ], 258 defaults: ["tflite_support_defaults"], 259 stl: "libc++_static", 260 sdk_version: "current", 261 min_sdk_version: "30", 262 export_include_dirs: ["."], 263 apex_available: [ 264 "//apex_available:platform", 265 "com.android.adservices", 266 "com.android.extservices", 267 ], 268} 269 270java_library { 271 name: "tflite_support_base_task_api_java", 272 sdk_version: "current", 273 min_sdk_version: "30", 274 srcs: [ 275 "tensorflow_lite_support/java/src/java/org/tensorflow/lite/task/core/*.java", 276 ], 277 optimize: { 278 proguard_flags_files: ["proguard.flags"], 279 }, 280 apex_available: [ 281 "//apex_available:platform", 282 "com.android.adservices", 283 "com.android.extservices", 284 ], 285} 286 287cc_library_static { 288 name: "tflite_support_metadata_extractor", 289 srcs: [ 290 "tensorflow_lite_support/metadata/cc/metadata_extractor.cc", 291 "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc", 292 ], 293 defaults: ["tflite_support_defaults"], 294 stl: "libc++_static", 295 sdk_version: "current", 296 min_sdk_version: "30", 297 export_include_dirs: ["."], 298 header_libs: [ 299 // TODO (ag/17748161): Create target for just TFLite headers and use here. 300 "tensorflow_headers", 301 "flatbuffer_headers", 302 "libtextclassifier_flatbuffer_headers", 303 ], 304 generated_headers: [ 305 "libtflite_mutable_schema", 306 "tflite_support_metadata_schema", 307 ], 308 static_libs: [ 309 "libabsl", 310 "tflite_support_libz", 311 ], 312 apex_available: [ 313 "//apex_available:platform", 314 "com.android.adservices", 315 "com.android.extservices", 316 ], 317} 318 319cc_library_static { 320 name: "tflite_support_task_core", 321 srcs: ["tensorflow_lite_support/cc/task/core/**/*.cc"], 322 defaults: ["tflite_support_defaults"], 323 stl: "libc++_static", 324 sdk_version: "current", 325 min_sdk_version: "30", 326 export_include_dirs: ["."], 327 header_libs: [ 328 // TODO (ag/17748161): Create target for just TFLite headers and use here. 329 "tensorflow_headers", 330 "flatbuffer_headers", 331 ], 332 generated_headers: [ 333 "libtflite_mutable_schema", 334 "tflite_support_metadata_schema", 335 ], 336 static_libs: [ 337 "libabsl", 338 "tflite_configuration_proto", 339 "tflite_support_task_core_proto", 340 ], 341 apex_available: [ 342 "//apex_available:platform", 343 "com.android.adservices", 344 "com.android.extservices", 345 ], 346} 347 348cc_test { 349 name: "tflite_support_classifier_tests", 350 srcs: [ 351 "tensorflow_lite_support/cc/test/task/text/bert_nl_classifier_test.cc", 352 ], 353 data: ["tensorflow_lite_support/cc/test/testdata/task/text/**/*.tflite"], 354 defaults: [ 355 "tflite_support_defaults", 356 ], 357 stl: "libc++_static", 358 sdk_version: "current", 359 min_sdk_version: "30", 360 shared_libs: [ 361 "liblog", 362 "libz", 363 ], 364 static_libs: [ 365 "libabsl", 366 "libbase_ndk", 367 "libgmock_ndk", 368 "libprotobuf-cpp-lite-ndk", 369 "libtextclassifier_bert_tokenizer", 370 "libtflite_static", 371 "tflite_configuration_proto", 372 "tflite_support_classifiers", 373 "tflite_support_libz", 374 "tflite_support_metadata_extractor", 375 "tflite_support_task_core_proto", 376 "tflite_support_task_core", 377 "tflite_support_tokenizers", 378 ], 379 header_libs: [ 380 // TODO (ag/17748161): Create target for just TFLite headers and use here. 381 "tensorflow_headers", 382 "flatbuffer_headers", 383 "liblog_headers", 384 "libtextclassifier_flatbuffer_headers", 385 ], 386 generated_headers: [ 387 "libtflite_mutable_schema", 388 "tflite_support_metadata_schema", 389 ], 390} 391 392android_test { 393 name: "TfliteSupportClassifierTests", 394 srcs: [ 395 "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/text/nlclassifier/BertNLClassifierTest.java", 396 ], 397 asset_dirs: [ 398 "tensorflow_lite_support/java/src/javatests/testdata/task/text", 399 ], 400 defaults: ["modules-utils-testable-device-config-defaults"], 401 manifest: "tensorflow_lite_support/java/AndroidManifest.xml", 402 sdk_version: "module_current", 403 min_sdk_version: "30", 404 static_libs: [ 405 "androidx.test.core", 406 "tensorflowlite_java", 407 "truth", 408 "tflite_support_classifiers_java", 409 "tflite_support_test_utils_java", 410 ], 411 libs: [ 412 "android.test.base.stubs.system", 413 "android.test.mock.stubs", 414 ], 415 test_suites: [ 416 "general-tests", 417 ], 418 jni_libs: [ 419 "libtflite_support_classifiers_native", 420 ], 421 aaptflags: [ 422 // Avoid compression on tflite files as the Interpreter 423 // can not load compressed flat buffer formats. 424 // (*appt compresses all assets into the apk by default) 425 // See https://elinux.org/Android_aapt for more detail. 426 "-0 .tflite", 427 ], 428} 429 430java_library_static { 431 name: "tflite_support_test_utils_java", 432 sdk_version: "module_current", 433 min_sdk_version: "30", 434 srcs: [ 435 "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/core/TestUtils.java", 436 ], 437 static_libs: [ 438 "apache-commons-compress", 439 "guava", 440 ], 441} 442 443cc_library_static { 444 name: "tflite_support_task_core_proto", 445 proto: { 446 type: "lite", 447 canonical_path_from_root: false, 448 export_proto_headers: true, 449 }, 450 stl: "libc++", 451 srcs: ["tensorflow_lite_support/cc/task/core/proto/**/*.proto"], 452 sdk_version: "current", 453 min_sdk_version: "30", 454 apex_available: [ 455 "//apex_available:platform", 456 "com.android.adservices", 457 "com.android.extservices", 458 ], 459} 460 461// ----------------- 462// Generate headers with FlatBuffer schema compiler. 463// ----------------- 464 465FLATC_ARGS = "$(location flatc) --cpp --no-union-value-namespacing --gen-object-api --keep-prefix -I external/tflite-support -o $$(dirname $(out)) " 466 467genrule { 468 name: "tflite_support_metadata_schema", 469 tools: ["flatc"], 470 srcs: ["tensorflow_lite_support/metadata/metadata_schema.fbs"], 471 cmd: FLATC_ARGS + " $(in)", 472 out: ["tensorflow_lite_support/metadata/metadata_schema_generated.h"], 473} 474 475genrule { 476 name: "tflite_support_spm_config", 477 tools: ["flatc"], 478 srcs: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config.fbs"], 479 cmd: FLATC_ARGS + " $(in)", 480 out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config_generated.h"], 481} 482 483genrule { 484 name: "tflite_support_spm_encoder_config", 485 tools: ["flatc"], 486 srcs: [ 487 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/config.fbs", 488 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config.fbs", 489 ], 490 cmd: FLATC_ARGS + " $(location tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config.fbs)", 491 out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config_generated.h"], 492} 493