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