• 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        "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