• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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