• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (C) 2017 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15# Useful environment variables that can be set on the mmma command line, as
16# <key>=<value> pairs:
17#
18# LIBTEXTCLASSIFIER_STRIP_OPTS: (optional) value for LOCAL_STRIP_MODULE (for all
19#   modules we build).  NOT for prod builds.  Can be set to keep_symbols for
20#   debug / treemap purposes.
21
22
23LOCAL_PATH := $(call my-dir)
24
25# Custom C/C++ compilation flags:
26MY_LIBTEXTCLASSIFIER_WARNING_CFLAGS := \
27    -Wall \
28    -Werror \
29    -Wno-ignored-qualifiers \
30    -Wno-missing-field-initializers \
31    -Wno-sign-compare \
32    -Wno-tautological-constant-out-of-range-compare \
33    -Wno-undefined-var-template \
34    -Wno-unused-function \
35    -Wno-unused-parameter \
36
37MY_LIBTEXTCLASSIFIER_CFLAGS := \
38    $(MY_LIBTEXTCLASSIFIER_WARNING_CFLAGS) \
39    -fvisibility=hidden \
40    -DLIBTEXTCLASSIFIER_UNILIB_ICU \
41    -DZLIB_CONST
42
43# Only enable debug logging in userdebug/eng builds.
44ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
45  MY_LIBTEXTCLASSIFIER_CFLAGS += -DTC_DEBUG_LOGGING=1
46endif
47
48# -----------------
49# flatbuffers
50# -----------------
51
52# Empty static library so that other projects can include just the basic
53# FlatBuffers headers as a module.
54include $(CLEAR_VARS)
55LOCAL_MODULE := flatbuffers
56LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
57LOCAL_EXPORT_CPPFLAGS := -std=c++11 -fexceptions -Wall \
58    -DFLATBUFFERS_TRACK_VERIFIER_BUFFER_SIZE
59
60include $(BUILD_STATIC_LIBRARY)
61
62# -----------------
63# libtextclassifier
64# -----------------
65
66include $(CLEAR_VARS)
67LOCAL_MODULE := libtextclassifier
68
69LOCAL_CPP_EXTENSION := .cc
70LOCAL_CFLAGS += $(MY_LIBTEXTCLASSIFIER_CFLAGS)
71LOCAL_STRIP_MODULE := $(LIBTEXTCLASSIFIER_STRIP_OPTS)
72
73LOCAL_SRC_FILES := $(filter-out tests/% %_test.cc test-util.%,$(call all-subdir-cpp-files))
74
75LOCAL_C_INCLUDES := $(TOP)/external/zlib
76LOCAL_C_INCLUDES += $(TOP)/external/tensorflow
77LOCAL_C_INCLUDES += $(TOP)/external/flatbuffers/include
78
79LOCAL_SHARED_LIBRARIES += liblog
80LOCAL_SHARED_LIBRARIES += libicuuc
81LOCAL_SHARED_LIBRARIES += libicui18n
82LOCAL_SHARED_LIBRARIES += libtflite
83LOCAL_SHARED_LIBRARIES += libz
84
85LOCAL_STATIC_LIBRARIES += flatbuffers
86
87LOCAL_REQUIRED_MODULES := textclassifier.en.model
88LOCAL_REQUIRED_MODULES += textclassifier.universal.model
89
90LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/jni.lds
91LOCAL_LDFLAGS += -Wl,-version-script=$(LOCAL_PATH)/jni.lds
92LOCAL_CPPFLAGS_32 += -DLIBTEXTCLASSIFIER_TEST_DATA_DIR="\"/data/nativetest/libtextclassifier_tests/test_data/\""
93LOCAL_CPPFLAGS_64 += -DLIBTEXTCLASSIFIER_TEST_DATA_DIR="\"/data/nativetest64/libtextclassifier_tests/test_data/\""
94
95include $(BUILD_SHARED_LIBRARY)
96
97# -----------------------
98# libtextclassifier_tests
99# -----------------------
100
101include $(CLEAR_VARS)
102
103LOCAL_MODULE := libtextclassifier_tests
104LOCAL_COMPATIBILITY_SUITE := device-tests
105LOCAL_MODULE_TAGS := tests
106
107LOCAL_CPP_EXTENSION := .cc
108LOCAL_CFLAGS += $(MY_LIBTEXTCLASSIFIER_CFLAGS)
109LOCAL_STRIP_MODULE := $(LIBTEXTCLASSIFIER_STRIP_OPTS)
110
111LOCAL_TEST_DATA := $(call find-test-data-in-subdirs, $(LOCAL_PATH), *, test_data)
112
113LOCAL_CPPFLAGS_32 += -DLIBTEXTCLASSIFIER_TEST_DATA_DIR="\"/data/nativetest/libtextclassifier_tests/test_data/\""
114LOCAL_CPPFLAGS_64 += -DLIBTEXTCLASSIFIER_TEST_DATA_DIR="\"/data/nativetest64/libtextclassifier_tests/test_data/\""
115
116LOCAL_SRC_FILES := $(call all-subdir-cpp-files)
117
118LOCAL_C_INCLUDES := $(TOP)/external/zlib
119LOCAL_C_INCLUDES += $(TOP)/external/tensorflow
120LOCAL_C_INCLUDES += $(TOP)/external/flatbuffers/include
121
122LOCAL_STATIC_LIBRARIES += libgmock
123LOCAL_SHARED_LIBRARIES += liblog
124LOCAL_SHARED_LIBRARIES += libicuuc
125LOCAL_SHARED_LIBRARIES += libicui18n
126LOCAL_SHARED_LIBRARIES += libtflite
127LOCAL_SHARED_LIBRARIES += libz
128
129LOCAL_STATIC_LIBRARIES += flatbuffers
130
131include $(BUILD_NATIVE_TEST)
132
133# ----------------------
134# Smart Selection models
135# ----------------------
136
137include $(CLEAR_VARS)
138LOCAL_MODULE        := textclassifier.en.model
139LOCAL_MODULE_CLASS  := ETC
140LOCAL_MODULE_OWNER  := google
141LOCAL_SRC_FILES     := ./models/textclassifier.en.model
142LOCAL_MODULE_PATH   := $(TARGET_OUT_ETC)/textclassifier
143include $(BUILD_PREBUILT)
144
145include $(CLEAR_VARS)
146LOCAL_MODULE        := textclassifier.universal.model
147LOCAL_MODULE_CLASS  := ETC
148LOCAL_MODULE_OWNER  := google
149LOCAL_SRC_FILES     := ./models/textclassifier.universal.model
150LOCAL_MODULE_PATH   := $(TARGET_OUT_ETC)/textclassifier
151include $(BUILD_PREBUILT)
152
153# -----------------------
154# Smart Selection bundles
155# -----------------------
156
157include $(CLEAR_VARS)
158LOCAL_MODULE           := textclassifier.bundle1
159LOCAL_REQUIRED_MODULES := textclassifier.en.model
160LOCAL_CFLAGS := $(MY_LIBTEXTCLASSIFIER_WARNING_CFLAGS)
161include $(BUILD_STATIC_LIBRARY)
162