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 "libtextclassifier_abseil", 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 "libtextclassifier_bert_tokenizer", 129 "libtextclassifier_abseil", 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 "tflite_support_tokenizers", 151 "libtextclassifier_abseil", 152 "libgmock_ndk", 153 "libbase_ndk", 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 "libtextclassifier_abseil", 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: ["liblog"], 231 static_libs: [ 232 "libprotobuf-cpp-lite-ndk", 233 "libtextclassifier_abseil", 234 "libtextclassifier_bert_tokenizer", 235 "libtflite_static", 236 "tflite_configuration_proto", 237 "tflite_support_classifiers", 238 "tflite_support_libz", 239 "tflite_support_metadata_extractor", 240 "tflite_support_task_core", 241 "tflite_support_task_core_proto", 242 "tflite_support_tokenizers", 243 ], 244 header_libs: [ 245 // TODO (ag/17748161): Create target for just TFLite headers and use here. 246 "tensorflow_headers", 247 "flatbuffer_headers", 248 "jni_headers", 249 "libtextclassifier_flatbuffer_headers", 250 ], 251 generated_headers: [ 252 "libtflite_mutable_schema", 253 "tflite_support_metadata_schema", 254 ], 255 defaults: ["tflite_support_defaults"], 256 stl: "libc++_static", 257 sdk_version: "current", 258 min_sdk_version: "30", 259 export_include_dirs: ["."], 260 apex_available: [ 261 "//apex_available:platform", 262 "com.android.adservices", 263 "com.android.extservices", 264 ], 265} 266 267java_library { 268 name: "tflite_support_base_task_api_java", 269 sdk_version: "current", 270 min_sdk_version: "30", 271 srcs: [ 272 "tensorflow_lite_support/java/src/java/org/tensorflow/lite/task/core/*.java", 273 ], 274 optimize: { 275 proguard_flags_files: ["proguard.flags"], 276 }, 277 apex_available: [ 278 "//apex_available:platform", 279 "com.android.adservices", 280 "com.android.extservices", 281 ], 282} 283 284cc_library_static { 285 name: "tflite_support_metadata_extractor", 286 srcs: [ 287 "tensorflow_lite_support/metadata/cc/metadata_extractor.cc", 288 "tensorflow_lite_support/metadata/cc/utils/zip_readonly_mem_file.cc", 289 ], 290 defaults: ["tflite_support_defaults"], 291 stl: "libc++_static", 292 sdk_version: "current", 293 min_sdk_version: "30", 294 export_include_dirs: ["."], 295 header_libs: [ 296 // TODO (ag/17748161): Create target for just TFLite headers and use here. 297 "tensorflow_headers", 298 "flatbuffer_headers", 299 "libtextclassifier_flatbuffer_headers", 300 ], 301 generated_headers: [ 302 "libtflite_mutable_schema", 303 "tflite_support_metadata_schema", 304 ], 305 static_libs: [ 306 "libtextclassifier_abseil", 307 "tflite_support_libz", 308 ], 309 apex_available: [ 310 "//apex_available:platform", 311 "com.android.adservices", 312 "com.android.extservices", 313 ], 314} 315 316cc_library_static { 317 name: "tflite_support_task_core", 318 srcs: ["tensorflow_lite_support/cc/task/core/**/*.cc"], 319 defaults: ["tflite_support_defaults"], 320 stl: "libc++_static", 321 sdk_version: "current", 322 min_sdk_version: "30", 323 export_include_dirs: ["."], 324 header_libs: [ 325 // TODO (ag/17748161): Create target for just TFLite headers and use here. 326 "tensorflow_headers", 327 "flatbuffer_headers", 328 ], 329 generated_headers: [ 330 "libtflite_mutable_schema", 331 "tflite_support_metadata_schema", 332 ], 333 static_libs: [ 334 "libtextclassifier_abseil", 335 "tflite_configuration_proto", 336 "tflite_support_task_core_proto", 337 ], 338 apex_available: [ 339 "//apex_available:platform", 340 "com.android.adservices", 341 "com.android.extservices", 342 ], 343} 344 345cc_test { 346 name: "tflite_support_classifier_tests", 347 srcs: [ 348 "tensorflow_lite_support/cc/test/task/text/bert_nl_classifier_test.cc", 349 ], 350 data: ["tensorflow_lite_support/cc/test/testdata/task/text/**/*.tflite"], 351 defaults: [ 352 "tflite_support_defaults", 353 ], 354 stl: "libc++_static", 355 sdk_version: "current", 356 min_sdk_version: "30", 357 shared_libs: [ 358 "liblog", 359 ], 360 static_libs: [ 361 "libprotobuf-cpp-lite-ndk", 362 "libtextclassifier_abseil", 363 "libtextclassifier_bert_tokenizer", 364 "libtflite_static", 365 "libgmock_ndk", 366 "libbase_ndk", 367 "tflite_configuration_proto", 368 "tflite_support_classifiers", 369 "tflite_support_libz", 370 "tflite_support_metadata_extractor", 371 "tflite_support_task_core", 372 "tflite_support_task_core_proto", 373 "tflite_support_tokenizers", 374 ], 375 header_libs: [ 376 // TODO (ag/17748161): Create target for just TFLite headers and use here. 377 "tensorflow_headers", 378 "flatbuffer_headers", 379 "liblog_headers", 380 "libtextclassifier_flatbuffer_headers", 381 ], 382 generated_headers: [ 383 "libtflite_mutable_schema", 384 "tflite_support_metadata_schema", 385 ], 386} 387 388android_test { 389 name: "TfliteSupportClassifierTests", 390 srcs: [ 391 "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/text/nlclassifier/BertNLClassifierTest.java", 392 ], 393 asset_dirs: [ 394 "tensorflow_lite_support/java/src/javatests/testdata/task/text", 395 ], 396 defaults: ["modules-utils-testable-device-config-defaults"], 397 manifest: "tensorflow_lite_support/java/AndroidManifest.xml", 398 sdk_version: "module_current", 399 min_sdk_version: "30", 400 static_libs: [ 401 "androidx.test.core", 402 "tensorflowlite_java", 403 "truth", 404 "tflite_support_classifiers_java", 405 "tflite_support_test_utils_java", 406 ], 407 libs: [ 408 "android.test.base", 409 "android.test.mock.stubs", 410 ], 411 test_suites: [ 412 "general-tests", 413 ], 414 jni_libs: [ 415 "libtflite_support_classifiers_native", 416 ], 417 aaptflags: [ 418 // Avoid compression on tflite files as the Interpreter 419 // can not load compressed flat buffer formats. 420 // (*appt compresses all assets into the apk by default) 421 // See https://elinux.org/Android_aapt for more detail. 422 "-0 .tflite", 423 ], 424} 425 426java_library_static { 427 name: "tflite_support_test_utils_java", 428 sdk_version: "module_current", 429 min_sdk_version: "30", 430 srcs: [ 431 "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/core/TestUtils.java", 432 ], 433 static_libs: [ 434 "apache-commons-compress", 435 "guava", 436 ], 437} 438 439cc_library_static { 440 name: "tflite_support_task_core_proto", 441 proto: { 442 type: "lite", 443 canonical_path_from_root: false, 444 export_proto_headers: true, 445 }, 446 stl: "libc++", 447 srcs: ["tensorflow_lite_support/cc/task/core/proto/**/*.proto"], 448 sdk_version: "current", 449 min_sdk_version: "30", 450 apex_available: [ 451 "//apex_available:platform", 452 "com.android.adservices", 453 "com.android.extservices", 454 ], 455} 456 457// ----------------- 458// Generate headers with FlatBuffer schema compiler. 459// ----------------- 460 461FLATC_ARGS = "$(location flatc) --cpp --no-union-value-namespacing --gen-object-api --keep-prefix -I external/tflite-support -o $$(dirname $(out)) " 462 463genrule { 464 name: "tflite_support_metadata_schema", 465 tools: ["flatc"], 466 srcs: ["tensorflow_lite_support/metadata/metadata_schema.fbs"], 467 cmd: FLATC_ARGS + " $(in)", 468 out: ["tensorflow_lite_support/metadata/metadata_schema_generated.h"], 469} 470 471genrule { 472 name: "tflite_support_spm_config", 473 tools: ["flatc"], 474 srcs: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config.fbs"], 475 cmd: FLATC_ARGS + " $(in)", 476 out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config_generated.h"], 477} 478 479genrule { 480 name: "tflite_support_spm_encoder_config", 481 tools: ["flatc"], 482 srcs: [ 483 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/config.fbs", 484 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config.fbs", 485 ], 486 cmd: FLATC_ARGS + " $(location tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config.fbs)", 487 out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config_generated.h"], 488} 489