xref: /aosp_15_r20/system/chre/chpp/Android.bp (revision 84e339476a462649f82315436d70fd732297a399)
1*84e33947SAndroid Build Coastguard Worker/*
2*84e33947SAndroid Build Coastguard Worker * Copyright (C) 2019 The Android Open Source Project
3*84e33947SAndroid Build Coastguard Worker *
4*84e33947SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*84e33947SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*84e33947SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*84e33947SAndroid Build Coastguard Worker *
8*84e33947SAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*84e33947SAndroid Build Coastguard Worker *
10*84e33947SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*84e33947SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*84e33947SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*84e33947SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*84e33947SAndroid Build Coastguard Worker * limitations under the License.
15*84e33947SAndroid Build Coastguard Worker */
16*84e33947SAndroid Build Coastguard Worker
17*84e33947SAndroid Build Coastguard Workerpackage {
18*84e33947SAndroid Build Coastguard Worker    default_team: "trendy_team_context_hub",
19*84e33947SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
20*84e33947SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
21*84e33947SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "system_chre_license"
22*84e33947SAndroid Build Coastguard Worker    // to get the below license kinds:
23*84e33947SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
24*84e33947SAndroid Build Coastguard Worker    default_applicable_licenses: ["system_chre_license"],
25*84e33947SAndroid Build Coastguard Worker}
26*84e33947SAndroid Build Coastguard Worker
27*84e33947SAndroid Build Coastguard Workercc_defaults {
28*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_flags",
29*84e33947SAndroid Build Coastguard Worker    cflags: [
30*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CHECKSUM_ENABLED",
31*84e33947SAndroid Build Coastguard Worker        "-DCHPP_DEBUG_ASSERT_ENABLED",
32*84e33947SAndroid Build Coastguard Worker        "-DCHPP_ENABLE_WORK_MONITOR",
33*84e33947SAndroid Build Coastguard Worker        "-DCHPP_EXPECTED_SERVICE_COUNT=3",
34*84e33947SAndroid Build Coastguard Worker        "-DCHPP_MAX_REGISTERED_CLIENTS=16",
35*84e33947SAndroid Build Coastguard Worker        "-DCHPP_MAX_REGISTERED_SERVICES=16",
36*84e33947SAndroid Build Coastguard Worker
37*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CLIENT_ENABLED_DISCOVERY",
38*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CLIENT_ENABLED_GNSS",
39*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CLIENT_ENABLED_LOOPBACK",
40*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CLIENT_ENABLED_TIMESYNC",
41*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CLIENT_ENABLED_TRANSPORT_LOOPBACK",
42*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CLIENT_ENABLED_WIFI",
43*84e33947SAndroid Build Coastguard Worker        "-DCHPP_CLIENT_ENABLED_WWAN",
44*84e33947SAndroid Build Coastguard Worker        "-DCHPP_SERVICE_ENABLED_GNSS",
45*84e33947SAndroid Build Coastguard Worker        "-DCHPP_SERVICE_ENABLED_TRANSPORT_LOOPBACK",
46*84e33947SAndroid Build Coastguard Worker        "-DCHPP_SERVICE_ENABLED_WIFI",
47*84e33947SAndroid Build Coastguard Worker        "-DCHPP_SERVICE_ENABLED_WWAN",
48*84e33947SAndroid Build Coastguard Worker
49*84e33947SAndroid Build Coastguard Worker        "-DCHPP_GNSS_DEFAULT_CAPABILITIES=0x7",
50*84e33947SAndroid Build Coastguard Worker        "-DCHPP_WIFI_DEFAULT_CAPABILITIES=0xf",
51*84e33947SAndroid Build Coastguard Worker        "-DCHPP_WWAN_DEFAULT_CAPABILITIES=0x1",
52*84e33947SAndroid Build Coastguard Worker    ],
53*84e33947SAndroid Build Coastguard Worker    visibility: ["//visibility:override"],
54*84e33947SAndroid Build Coastguard Worker}
55*84e33947SAndroid Build Coastguard Worker
56*84e33947SAndroid Build Coastguard Workerfilegroup {
57*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_core_files",
58*84e33947SAndroid Build Coastguard Worker    srcs: [
59*84e33947SAndroid Build Coastguard Worker        "app.c",
60*84e33947SAndroid Build Coastguard Worker        "clients.c",
61*84e33947SAndroid Build Coastguard Worker        "platform/linux/memory.c",
62*84e33947SAndroid Build Coastguard Worker        "platform/linux/notifier.c",
63*84e33947SAndroid Build Coastguard Worker        "platform/pal_api.c",
64*84e33947SAndroid Build Coastguard Worker        "platform/shared/crc.c",
65*84e33947SAndroid Build Coastguard Worker        "services.c",
66*84e33947SAndroid Build Coastguard Worker        "services/discovery.c",
67*84e33947SAndroid Build Coastguard Worker        "services/loopback.c",
68*84e33947SAndroid Build Coastguard Worker        "services/nonhandle.c",
69*84e33947SAndroid Build Coastguard Worker        "services/timesync.c",
70*84e33947SAndroid Build Coastguard Worker        "transport.c",
71*84e33947SAndroid Build Coastguard Worker    ],
72*84e33947SAndroid Build Coastguard Worker}
73*84e33947SAndroid Build Coastguard Worker
74*84e33947SAndroid Build Coastguard Worker// Everything needed to run CHPP on Linux, except for the link layer.
75*84e33947SAndroid Build Coastguard Worker// Note that this is cc_defaults and not a lib because modules that inherit
76*84e33947SAndroid Build Coastguard Worker// these defaults may need to change compilation flags for sources here.
77*84e33947SAndroid Build Coastguard Workercc_defaults {
78*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_core_without_link",
79*84e33947SAndroid Build Coastguard Worker    vendor: true,
80*84e33947SAndroid Build Coastguard Worker    cflags: [
81*84e33947SAndroid Build Coastguard Worker        // Required for pthread_setname_np()
82*84e33947SAndroid Build Coastguard Worker        "-D_GNU_SOURCE",
83*84e33947SAndroid Build Coastguard Worker        // clock_gettime() requires _POSIX_C_SOURCE >= 199309L
84*84e33947SAndroid Build Coastguard Worker        "-D_POSIX_C_SOURCE=199309L",
85*84e33947SAndroid Build Coastguard Worker        "-Wall",
86*84e33947SAndroid Build Coastguard Worker        "-Wcast-align",
87*84e33947SAndroid Build Coastguard Worker        "-Wcast-qual",
88*84e33947SAndroid Build Coastguard Worker        "-Wconversion",
89*84e33947SAndroid Build Coastguard Worker        "-Werror",
90*84e33947SAndroid Build Coastguard Worker        "-Wextra",
91*84e33947SAndroid Build Coastguard Worker        "-Wno-strict-aliasing",
92*84e33947SAndroid Build Coastguard Worker        "-Wpointer-arith",
93*84e33947SAndroid Build Coastguard Worker        "-Wshadow",
94*84e33947SAndroid Build Coastguard Worker        "-Wswitch",
95*84e33947SAndroid Build Coastguard Worker        // Enable assert (i.e. CHPP_ASSERT, ...)
96*84e33947SAndroid Build Coastguard Worker        "-UNDEBUG",
97*84e33947SAndroid Build Coastguard Worker    ],
98*84e33947SAndroid Build Coastguard Worker    conlyflags: [
99*84e33947SAndroid Build Coastguard Worker        "-Wmissing-prototypes",
100*84e33947SAndroid Build Coastguard Worker        "-Wsign-compare",
101*84e33947SAndroid Build Coastguard Worker        "-Wstrict-prototypes",
102*84e33947SAndroid Build Coastguard Worker        "-std=c11",
103*84e33947SAndroid Build Coastguard Worker    ],
104*84e33947SAndroid Build Coastguard Worker    srcs: [
105*84e33947SAndroid Build Coastguard Worker        ":chre_chpp_core_files",
106*84e33947SAndroid Build Coastguard Worker    ],
107*84e33947SAndroid Build Coastguard Worker    header_libs: [
108*84e33947SAndroid Build Coastguard Worker        "chre_api",
109*84e33947SAndroid Build Coastguard Worker        "chre_pal",
110*84e33947SAndroid Build Coastguard Worker    ],
111*84e33947SAndroid Build Coastguard Worker    export_header_lib_headers: [
112*84e33947SAndroid Build Coastguard Worker        "chre_api",
113*84e33947SAndroid Build Coastguard Worker        "chre_pal",
114*84e33947SAndroid Build Coastguard Worker    ],
115*84e33947SAndroid Build Coastguard Worker    static_libs: ["chre_pal_linux"],
116*84e33947SAndroid Build Coastguard Worker    host_supported: true,
117*84e33947SAndroid Build Coastguard Worker}
118*84e33947SAndroid Build Coastguard Worker
119*84e33947SAndroid Build Coastguard Workerfilegroup {
120*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_clients_and_services_files",
121*84e33947SAndroid Build Coastguard Worker    srcs: [
122*84e33947SAndroid Build Coastguard Worker        "clients/discovery.c",
123*84e33947SAndroid Build Coastguard Worker        "clients/gnss.c",
124*84e33947SAndroid Build Coastguard Worker        "clients/loopback.c",
125*84e33947SAndroid Build Coastguard Worker        "clients/timesync.c",
126*84e33947SAndroid Build Coastguard Worker        "clients/wifi.c",
127*84e33947SAndroid Build Coastguard Worker        "clients/wwan.c",
128*84e33947SAndroid Build Coastguard Worker        "common/gnss_convert.c",
129*84e33947SAndroid Build Coastguard Worker        "common/wifi_convert.c",
130*84e33947SAndroid Build Coastguard Worker        "common/wifi_utils.c",
131*84e33947SAndroid Build Coastguard Worker        "common/wwan_convert.c",
132*84e33947SAndroid Build Coastguard Worker        "platform/linux/services/platform_gnss.c",
133*84e33947SAndroid Build Coastguard Worker        "services/gnss.c",
134*84e33947SAndroid Build Coastguard Worker        "services/wifi.c",
135*84e33947SAndroid Build Coastguard Worker        "services/wwan.c",
136*84e33947SAndroid Build Coastguard Worker    ],
137*84e33947SAndroid Build Coastguard Worker}
138*84e33947SAndroid Build Coastguard Worker
139*84e33947SAndroid Build Coastguard Worker// Meant to be combined with chre_chpp_core_without_link to add in the full set
140*84e33947SAndroid Build Coastguard Worker// of optional clients and services.
141*84e33947SAndroid Build Coastguard Workercc_defaults {
142*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_clients_and_services",
143*84e33947SAndroid Build Coastguard Worker    srcs: [
144*84e33947SAndroid Build Coastguard Worker        ":chre_chpp_clients_and_services_files",
145*84e33947SAndroid Build Coastguard Worker    ],
146*84e33947SAndroid Build Coastguard Worker}
147*84e33947SAndroid Build Coastguard Worker
148*84e33947SAndroid Build Coastguard Workerfilegroup {
149*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_linux_files",
150*84e33947SAndroid Build Coastguard Worker    srcs: [
151*84e33947SAndroid Build Coastguard Worker        "platform/linux/link.c",
152*84e33947SAndroid Build Coastguard Worker    ],
153*84e33947SAndroid Build Coastguard Worker}
154*84e33947SAndroid Build Coastguard Worker
155*84e33947SAndroid Build Coastguard Workercc_library_static {
156*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_linux",
157*84e33947SAndroid Build Coastguard Worker    defaults: [
158*84e33947SAndroid Build Coastguard Worker        "chre_chpp_clients_and_services",
159*84e33947SAndroid Build Coastguard Worker        "chre_chpp_core_without_link",
160*84e33947SAndroid Build Coastguard Worker        "chre_chpp_flags",
161*84e33947SAndroid Build Coastguard Worker    ],
162*84e33947SAndroid Build Coastguard Worker    srcs: [
163*84e33947SAndroid Build Coastguard Worker        ":chre_chpp_linux_files",
164*84e33947SAndroid Build Coastguard Worker    ],
165*84e33947SAndroid Build Coastguard Worker    export_include_dirs: [
166*84e33947SAndroid Build Coastguard Worker        "include",
167*84e33947SAndroid Build Coastguard Worker        "platform/linux/include",
168*84e33947SAndroid Build Coastguard Worker    ],
169*84e33947SAndroid Build Coastguard Worker}
170*84e33947SAndroid Build Coastguard Worker
171*84e33947SAndroid Build Coastguard Workerfilegroup {
172*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_linux_tests_utility_files",
173*84e33947SAndroid Build Coastguard Worker    srcs: [
174*84e33947SAndroid Build Coastguard Worker        "test/transport_util.cpp",
175*84e33947SAndroid Build Coastguard Worker    ],
176*84e33947SAndroid Build Coastguard Worker}
177*84e33947SAndroid Build Coastguard Worker
178*84e33947SAndroid Build Coastguard Workerfilegroup {
179*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_linux_tests_files",
180*84e33947SAndroid Build Coastguard Worker    srcs: [
181*84e33947SAndroid Build Coastguard Worker        "test/app_discovery_test.cpp",
182*84e33947SAndroid Build Coastguard Worker        "test/app_notification_test.cpp",
183*84e33947SAndroid Build Coastguard Worker        "test/app_req_resp_test.cpp",
184*84e33947SAndroid Build Coastguard Worker        "test/app_test.cpp",
185*84e33947SAndroid Build Coastguard Worker        "test/app_test_base.cpp",
186*84e33947SAndroid Build Coastguard Worker        "test/app_timeout_test.cpp",
187*84e33947SAndroid Build Coastguard Worker        "test/gnss_test.cpp",
188*84e33947SAndroid Build Coastguard Worker        "test/transport_test.cpp",
189*84e33947SAndroid Build Coastguard Worker    ],
190*84e33947SAndroid Build Coastguard Worker}
191*84e33947SAndroid Build Coastguard Worker
192*84e33947SAndroid Build Coastguard Workercc_test_host {
193*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_linux_tests",
194*84e33947SAndroid Build Coastguard Worker    // TODO(b/232537107): Evaluate if isolated can be turned on
195*84e33947SAndroid Build Coastguard Worker    isolated: false,
196*84e33947SAndroid Build Coastguard Worker    defaults: [
197*84e33947SAndroid Build Coastguard Worker        "chre_chpp_flags",
198*84e33947SAndroid Build Coastguard Worker    ],
199*84e33947SAndroid Build Coastguard Worker    srcs: [
200*84e33947SAndroid Build Coastguard Worker        ":chre_chpp_linux_tests_files",
201*84e33947SAndroid Build Coastguard Worker        ":chre_chpp_linux_tests_utility_files",
202*84e33947SAndroid Build Coastguard Worker    ],
203*84e33947SAndroid Build Coastguard Worker    static_libs: [
204*84e33947SAndroid Build Coastguard Worker        "chre_chpp_linux",
205*84e33947SAndroid Build Coastguard Worker        "chre_pal_linux",
206*84e33947SAndroid Build Coastguard Worker    ],
207*84e33947SAndroid Build Coastguard Worker    sanitize: {
208*84e33947SAndroid Build Coastguard Worker        address: true,
209*84e33947SAndroid Build Coastguard Worker    },
210*84e33947SAndroid Build Coastguard Worker}
211*84e33947SAndroid Build Coastguard Worker
212*84e33947SAndroid Build Coastguard Workercc_test_host {
213*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_convert_tests",
214*84e33947SAndroid Build Coastguard Worker    cflags: [
215*84e33947SAndroid Build Coastguard Worker        "-Wcast-align",
216*84e33947SAndroid Build Coastguard Worker        "-Wsign-compare",
217*84e33947SAndroid Build Coastguard Worker    ],
218*84e33947SAndroid Build Coastguard Worker    header_libs: [
219*84e33947SAndroid Build Coastguard Worker        "chre_test_common",
220*84e33947SAndroid Build Coastguard Worker    ],
221*84e33947SAndroid Build Coastguard Worker    srcs: [
222*84e33947SAndroid Build Coastguard Worker        "test/wifi_convert_test.cpp",
223*84e33947SAndroid Build Coastguard Worker        "test/wwan_convert_test.cpp",
224*84e33947SAndroid Build Coastguard Worker    ],
225*84e33947SAndroid Build Coastguard Worker    static_libs: ["chre_chpp_linux"],
226*84e33947SAndroid Build Coastguard Worker}
227*84e33947SAndroid Build Coastguard Worker
228*84e33947SAndroid Build Coastguard Workercc_test_host {
229*84e33947SAndroid Build Coastguard Worker    name: "chre_chpp_fake_link_sync_tests",
230*84e33947SAndroid Build Coastguard Worker    defaults: ["chre_chpp_core_without_link"],
231*84e33947SAndroid Build Coastguard Worker    cflags: [
232*84e33947SAndroid Build Coastguard Worker        // Speed up tests by setting timeouts to 50 ms.
233*84e33947SAndroid Build Coastguard Worker        // Note: the value shouldn't be too low to avoid timeouts on slow test servers.
234*84e33947SAndroid Build Coastguard Worker        "-DCHPP_TRANSPORT_RX_TIMEOUT_NS=50000000",
235*84e33947SAndroid Build Coastguard Worker        "-DCHPP_TRANSPORT_TX_TIMEOUT_NS=50000000",
236*84e33947SAndroid Build Coastguard Worker    ],
237*84e33947SAndroid Build Coastguard Worker    local_include_dirs: [
238*84e33947SAndroid Build Coastguard Worker        "include",
239*84e33947SAndroid Build Coastguard Worker
240*84e33947SAndroid Build Coastguard Worker        // Note: this needs to come before platform/linux/include
241*84e33947SAndroid Build Coastguard Worker        "test/include/fake_link",
242*84e33947SAndroid Build Coastguard Worker
243*84e33947SAndroid Build Coastguard Worker        "platform/linux/include",
244*84e33947SAndroid Build Coastguard Worker    ],
245*84e33947SAndroid Build Coastguard Worker    srcs: [
246*84e33947SAndroid Build Coastguard Worker        "test/fake_link.cpp",
247*84e33947SAndroid Build Coastguard Worker        "test/fake_link_sync_test.cpp",
248*84e33947SAndroid Build Coastguard Worker        "test/packet_util.cpp",
249*84e33947SAndroid Build Coastguard Worker    ],
250*84e33947SAndroid Build Coastguard Worker    header_libs: [
251*84e33947SAndroid Build Coastguard Worker        "libbase_headers",
252*84e33947SAndroid Build Coastguard Worker    ],
253*84e33947SAndroid Build Coastguard Worker}
254