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 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 "libabsl", 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 "libabsl", 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 "libz", 360 ], 361 static_libs: [ 362 "libabsl", 363 "libbase_ndk", 364 "libgmock_ndk", 365 "libprotobuf-cpp-lite-ndk", 366 "libtextclassifier_bert_tokenizer", 367 "libtflite_static", 368 "tflite_configuration_proto", 369 "tflite_support_classifiers", 370 "tflite_support_libz", 371 "tflite_support_metadata_extractor", 372 "tflite_support_task_core_proto", 373 "tflite_support_task_core", 374 "tflite_support_tokenizers", 375 ], 376 header_libs: [ 377 // TODO (ag/17748161): Create target for just TFLite headers and use here. 378 "tensorflow_headers", 379 "flatbuffer_headers", 380 "liblog_headers", 381 "libtextclassifier_flatbuffer_headers", 382 ], 383 generated_headers: [ 384 "libtflite_mutable_schema", 385 "tflite_support_metadata_schema", 386 ], 387} 388 389android_test { 390 name: "TfliteSupportClassifierTests", 391 srcs: [ 392 "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/text/nlclassifier/BertNLClassifierTest.java", 393 ], 394 asset_dirs: [ 395 "tensorflow_lite_support/java/src/javatests/testdata/task/text", 396 ], 397 defaults: ["modules-utils-testable-device-config-defaults"], 398 manifest: "tensorflow_lite_support/java/AndroidManifest.xml", 399 sdk_version: "module_current", 400 min_sdk_version: "30", 401 static_libs: [ 402 "androidx.test.core", 403 "tensorflowlite_java", 404 "truth", 405 "tflite_support_classifiers_java", 406 "tflite_support_test_utils_java", 407 ], 408 libs: [ 409 "android.test.base.stubs.system", 410 "android.test.mock.stubs", 411 ], 412 test_suites: [ 413 "general-tests", 414 ], 415 jni_libs: [ 416 "libtflite_support_classifiers_native", 417 ], 418 aaptflags: [ 419 // Avoid compression on tflite files as the Interpreter 420 // can not load compressed flat buffer formats. 421 // (*appt compresses all assets into the apk by default) 422 // See https://elinux.org/Android_aapt for more detail. 423 "-0 .tflite", 424 ], 425} 426 427java_library_static { 428 name: "tflite_support_test_utils_java", 429 sdk_version: "module_current", 430 min_sdk_version: "30", 431 srcs: [ 432 "tensorflow_lite_support/java/src/javatests/org/tensorflow/lite/task/core/TestUtils.java", 433 ], 434 static_libs: [ 435 "apache-commons-compress", 436 "guava", 437 ], 438} 439 440cc_library_static { 441 name: "tflite_support_task_core_proto", 442 proto: { 443 type: "lite", 444 canonical_path_from_root: false, 445 export_proto_headers: true, 446 }, 447 stl: "libc++", 448 srcs: ["tensorflow_lite_support/cc/task/core/proto/**/*.proto"], 449 sdk_version: "current", 450 min_sdk_version: "30", 451 apex_available: [ 452 "//apex_available:platform", 453 "com.android.adservices", 454 "com.android.extservices", 455 ], 456} 457 458// ----------------- 459// Generate headers with FlatBuffer schema compiler. 460// ----------------- 461 462FLATC_ARGS = "$(location flatc) --cpp --no-union-value-namespacing --gen-object-api --keep-prefix -I external/tflite-support -o $$(dirname $(out)) " 463 464genrule { 465 name: "tflite_support_metadata_schema", 466 tools: ["flatc"], 467 srcs: ["tensorflow_lite_support/metadata/metadata_schema.fbs"], 468 cmd: FLATC_ARGS + " $(in)", 469 out: ["tensorflow_lite_support/metadata/metadata_schema_generated.h"], 470} 471 472genrule { 473 name: "tflite_support_spm_config", 474 tools: ["flatc"], 475 srcs: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config.fbs"], 476 cmd: FLATC_ARGS + " $(in)", 477 out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/config_generated.h"], 478} 479 480genrule { 481 name: "tflite_support_spm_encoder_config", 482 tools: ["flatc"], 483 srcs: [ 484 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/config.fbs", 485 "tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config.fbs", 486 ], 487 cmd: FLATC_ARGS + " $(location tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config.fbs)", 488 out: ["tensorflow_lite_support/custom_ops/kernel/sentencepiece/encoder_config_generated.h"], 489} 490