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 apex_available: ["com.android.appsearch"], 59} 60 61// TODO(b/193244409): Use the filegroup libicing_test_common along with 62// libicing_defaults to build libicing. 63cc_library_shared { 64 name: "libicing", 65 defaults: ["libicing_defaults"], 66 srcs: [ 67 "icing/**/*.cc", 68 ], 69 exclude_srcs: [ 70 "icing/**/*-test-*", 71 "icing/**/*-test.*", 72 "icing/**/*_test.cc", 73 "icing/**/*_benchmark.cc", 74 "icing/testing/**/*", 75 "icing/tokenization/reverse_jni/**/*", 76 "icing/tokenization/simple/**/*", 77 "icing/tools/**/*", 78 "icing/transform/map/**/*", 79 "icing/transform/simple/**/*", 80 ], 81 header_libs: ["jni_headers"], 82 static_libs: [ 83 "icing-c-proto", 84 "libutf", 85 ], 86 shared_libs: [ 87 "libicu", 88 "liblog", 89 "libprotobuf-cpp-lite", 90 "libz", 91 ], 92 version_script: "icing/jni.lds", 93 min_sdk_version: "Tiramisu", 94} 95 96filegroup { 97 name: "libicing_test_common", 98 // TODO(b/193244409): Utilize globs once all build errors are fixed. 99 srcs: [ 100 "icing/absl_ports/*.cc", 101 "icing/file/**/*.cc", 102 "icing/index/**/*.cc", 103 "icing/legacy/**/*.cc", 104 "icing/portable/*.cc", 105 "icing/query/**/*.cc", 106 "icing/schema/*.cc", 107 "icing/scoring/**/*.cc", 108 "icing/store/*.cc", 109 "icing/testing/*.cc", 110 "icing/text_classifier/lib3/utils/base/*.cc", 111 "icing/text_classifier/lib3/utils/hash/*.cc", 112 "icing/tokenization/*.cc", 113 "icing/util/*.cc", 114 ], 115 // TODO(b/193244409): Remove after all the excluded tests are passing. 116 exclude_srcs: [ 117 "icing/**/*_benchmark.cc", 118 "icing/**/*-jni-layer.cc", 119 "icing/index/**/*_test.cc", 120 "icing/legacy/**/*_test.cc", 121 "icing/query/**/*_test.cc", 122 "icing/scoring/**/*_test.cc", 123 "icing/store/*_test.cc", 124 "icing/testing/*test*.cc", 125 "icing/tokenization/*_test.cc", 126 "icing/util/*_test.cc", 127 ], 128} 129 130cc_test { 131 name: "libicing_tests", 132 defaults: ["libicing_defaults"], 133 test_suites: ["device_tests"], 134 // TODO(b/193244409): Implement globs for additional tests. 135 srcs: [ 136 ":libicing_test_common", 137 ], 138 static_libs: [ 139 "icing-c-proto", 140 "libgmock", 141 "libgoogle-benchmark", 142 "libgtest", 143 ], 144 shared_libs: [ 145 "libicu", 146 "libicu_cts_stub", 147 "liblog", 148 "libprotobuf-cpp-lite", 149 "libz", 150 ], 151} 152 153// TODO(cassiewang): Add build rules and a TEST_MAPPING for cc_tests 154