• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (C) 2019 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
15package {
16    default_applicable_licenses: ["external_icing_license"],
17}
18
19// Added automatically by a large-scale-change
20// See: http://go/android-license-faq
21license {
22    name: "external_icing_license",
23    visibility: [":__subpackages__"],
24    license_kinds: [
25        "SPDX-license-identifier-Apache-2.0",
26    ],
27    license_text: [
28        "LICENSE",
29    ],
30}
31
32cc_defaults {
33    name: "libicing_defaults",
34
35    // For debug / treemap purposes.
36    //strip: {
37    //    keep_symbols: true,
38    //},
39
40    cflags: [
41        "-Wall",
42        "-Werror",
43        "-Wextra",
44        "-Wno-deprecated-declarations",
45        "-Wno-ignored-qualifiers",
46        "-Wno-missing-field-initializers",
47        "-Wno-sign-compare",
48        "-Wno-tautological-constant-out-of-range-compare",
49        "-Wno-undefined-var-template",
50        "-Wno-unused-function",
51        "-Wno-unused-parameter",
52        "-Wno-unused-private-field",
53        "-Wno-extern-c-compat",
54
55        "-funsigned-char",
56        "-fvisibility=hidden",
57
58        "-Bsymbolic",
59    ],
60    apex_available: ["com.android.appsearch"],
61}
62
63cc_library_shared {
64    name: "libisolated_storage_service",
65    srcs: ["isolated_storage_service/payload/*.cc"],
66    shared_libs: [
67        "libbinder_ndk",
68        "libvm_payload#current",
69        "libprotobuf-cpp-lite",
70        "liblog",
71        "libicu",
72        "libbase",
73    ],
74    static_libs: [
75        "libicing.microdroid",
76        "icing-c-proto",
77        "libutf",
78        "libz",
79        "com.android.isolated_storage_service.aidl-ndk",
80    ],
81    min_sdk_version: "Tiramisu",
82    apex_available: ["com.android.appsearch"],
83}
84
85// Microdroid version of Icing has statically linked libz.
86cc_library_static {
87    name: "libicing.microdroid",
88    defaults: ["libicing_defaults"],
89    srcs: [
90        "icing/**/*.cc",
91    ],
92    exclude_srcs: [
93        "icing/**/*-test-*",
94        "icing/**/*-test.*",
95        "icing/**/*_test.cc",
96        "icing/**/*_benchmark.cc",
97        "icing/testing/**/*",
98        "icing/tokenization/reverse_jni/**/*",
99        "icing/tokenization/simple/**/*",
100        "icing/tools/**/*",
101        "icing/transform/map/**/*",
102        "icing/transform/simple/**/*",
103    ],
104    header_libs: ["jni_headers"],
105    static_libs: [
106        "icing-c-proto",
107        "libutf",
108        "libz",
109    ],
110    shared_libs: [
111        "libicu",
112        "liblog",
113        "libprotobuf-cpp-lite",
114    ],
115    version_script: "icing/jni.lds",
116    min_sdk_version: "Tiramisu",
117}
118
119// TODO(b/193244409): Use the filegroup libicing_test_common along with
120//                    libicing_defaults to build libicing.
121cc_library_shared {
122    name: "libicing",
123    defaults: ["libicing_defaults"],
124    srcs: [
125        "icing/**/*.cc",
126    ],
127    exclude_srcs: [
128        "icing/**/*-test-*",
129        "icing/**/*-test.*",
130        "icing/**/*_test.cc",
131        "icing/**/*_benchmark.cc",
132        "icing/testing/**/*",
133        "icing/tokenization/reverse_jni/**/*",
134        "icing/tokenization/simple/**/*",
135        "icing/tools/**/*",
136        "icing/transform/map/**/*",
137        "icing/transform/simple/**/*",
138    ],
139    header_libs: ["jni_headers"],
140    static_libs: [
141        "icing-c-proto",
142        "libutf",
143    ],
144    shared_libs: [
145        "libicu",
146        "liblog",
147        "libprotobuf-cpp-lite",
148        "libz",
149    ],
150    version_script: "icing/jni.lds",
151    min_sdk_version: "Tiramisu",
152}
153
154filegroup {
155    name: "libicing_test_common",
156    // TODO(b/193244409): Utilize globs once all build errors are fixed.
157    srcs: [
158        "icing/absl_ports/*.cc",
159        "icing/file/**/*.cc",
160        "icing/index/**/*.cc",
161        "icing/legacy/**/*.cc",
162        "icing/portable/*.cc",
163        "icing/query/**/*.cc",
164        "icing/schema/*.cc",
165        "icing/scoring/**/*.cc",
166        "icing/store/*.cc",
167        "icing/testing/*.cc",
168        "icing/text_classifier/lib3/utils/base/*.cc",
169        "icing/text_classifier/lib3/utils/hash/*.cc",
170        "icing/tokenization/*.cc",
171        "icing/util/*.cc",
172    ],
173    // TODO(b/193244409): Remove after all the excluded tests are passing.
174    exclude_srcs: [
175        "icing/**/*_benchmark.cc",
176        "icing/**/*-jni-layer.cc",
177        "icing/index/**/*_test.cc",
178        "icing/legacy/**/*_test.cc",
179        "icing/query/**/*_test.cc",
180        "icing/scoring/**/*_test.cc",
181        "icing/store/*_test.cc",
182        "icing/testing/*test.cc",
183        "icing/testing/*test-data.cc",
184        "icing/tokenization/*_test.cc",
185        "icing/util/*_test.cc",
186    ],
187}
188
189cc_test {
190    name: "libicing_tests",
191    defaults: ["libicing_defaults"],
192    test_suites: ["device_tests"],
193    // TODO(b/193244409): Implement globs for additional tests.
194    srcs: [
195        ":libicing_test_common",
196    ],
197    static_libs: [
198        "icing-c-proto",
199        "libgmock",
200        "libgoogle-benchmark",
201        "libgtest",
202    ],
203    shared_libs: [
204        "libicu",
205        "libicu_cts_stub",
206        "liblog",
207        "libprotobuf-cpp-lite",
208        "libz",
209    ],
210    apex_available: ["//apex_available:platform"],
211}
212
213// TODO(cassiewang): Add build rules and a TEST_MAPPING for cc_tests
214