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