xref: /aosp_15_r20/external/libwebsockets/Android.bp (revision 1c60b9aca93fdbc9b5f19b2d2194c91294b22281)
1*1c60b9acSAndroid Build Coastguard Worker// Copyright (C) 2020 The Android Open Source Project
2*1c60b9acSAndroid Build Coastguard Worker//
3*1c60b9acSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*1c60b9acSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*1c60b9acSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*1c60b9acSAndroid Build Coastguard Worker//
7*1c60b9acSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*1c60b9acSAndroid Build Coastguard Worker//
9*1c60b9acSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*1c60b9acSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*1c60b9acSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*1c60b9acSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*1c60b9acSAndroid Build Coastguard Worker// limitations under the License.
14*1c60b9acSAndroid Build Coastguard Worker
15*1c60b9acSAndroid Build Coastguard Worker// Common variables.
16*1c60b9acSAndroid Build Coastguard Workerpackage {
17*1c60b9acSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_libwebsockets_license"],
18*1c60b9acSAndroid Build Coastguard Worker}
19*1c60b9acSAndroid Build Coastguard Worker
20*1c60b9acSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
21*1c60b9acSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
22*1c60b9acSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
23*1c60b9acSAndroid Build Coastguard Worker//
24*1c60b9acSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25*1c60b9acSAndroid Build Coastguard Worker//
26*1c60b9acSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
27*1c60b9acSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
28*1c60b9acSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
29*1c60b9acSAndroid Build Coastguard Worker//
30*1c60b9acSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31*1c60b9acSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
32*1c60b9acSAndroid Build Coastguard Worker// used in the current project.
33*1c60b9acSAndroid Build Coastguard Worker// See: http://go/android-license-faq
34*1c60b9acSAndroid Build Coastguard Workerlicense {
35*1c60b9acSAndroid Build Coastguard Worker    name: "external_libwebsockets_license",
36*1c60b9acSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
37*1c60b9acSAndroid Build Coastguard Worker    license_kinds: [
38*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
39*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
40*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-Beerware",
41*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-CC0-1.0",
42*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL",
43*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-LGPL",
44*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
45*1c60b9acSAndroid Build Coastguard Worker        "SPDX-license-identifier-Zlib",
46*1c60b9acSAndroid Build Coastguard Worker        "legacy_permissive",
47*1c60b9acSAndroid Build Coastguard Worker        "legacy_unencumbered",
48*1c60b9acSAndroid Build Coastguard Worker    ],
49*1c60b9acSAndroid Build Coastguard Worker    license_text: [
50*1c60b9acSAndroid Build Coastguard Worker        "LICENSE",
51*1c60b9acSAndroid Build Coastguard Worker    ],
52*1c60b9acSAndroid Build Coastguard Worker}
53*1c60b9acSAndroid Build Coastguard Worker
54*1c60b9acSAndroid Build Coastguard WorkerlibwebsocketsSrcFiles = [
55*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/adopt.c",
56*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/client/client.c",
57*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/client/conmon.c",
58*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/client/connect.c",
59*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/client/connect2.c",
60*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/client/connect3.c",
61*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/client/connect4.c",
62*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/client/sort-dns.c",
63*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/close.c",
64*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/dummy-callback.c",
65*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/network.c",
66*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/output.c",
67*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/pollfd.c",
68*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/service.c",
69*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/sorted-usec-list.c",
70*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/state.c",
71*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/vhost.c",
72*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/wsi-timeout.c",
73*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net/wsi.c",
74*1c60b9acSAndroid Build Coastguard Worker    "lib/core/alloc.c",
75*1c60b9acSAndroid Build Coastguard Worker    "lib/core/buflist.c",
76*1c60b9acSAndroid Build Coastguard Worker    "lib/core/context.c",
77*1c60b9acSAndroid Build Coastguard Worker    "lib/core/libwebsockets.c",
78*1c60b9acSAndroid Build Coastguard Worker    "lib/core/logs.c",
79*1c60b9acSAndroid Build Coastguard Worker    "lib/core/lws_dll2.c",
80*1c60b9acSAndroid Build Coastguard Worker    "lib/core/lws_map.c",
81*1c60b9acSAndroid Build Coastguard Worker    "lib/core/vfs.c",
82*1c60b9acSAndroid Build Coastguard Worker    "lib/event-libs/poll/poll.c",
83*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/base64-decode.c",
84*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/cache-ttl/file.c",
85*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/cache-ttl/heap.c",
86*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/cache-ttl/lws-cache-ttl.c",
87*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/dir.c",
88*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/lejp.c",
89*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/lws-ring.c",
90*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/lwsac/cached-file.c",
91*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/lwsac/lwsac.c",
92*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/prng.c",
93*1c60b9acSAndroid Build Coastguard Worker    "lib/misc/sha-1.c",
94*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-caps.c",
95*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-fds.c",
96*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-file.c",
97*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-init.c",
98*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-misc.c",
99*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-pipe.c",
100*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-service.c",
101*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix/unix-sockets.c",
102*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/h1/ops-h1.c",
103*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/h2/hpack.c",
104*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/h2/http2.c",
105*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/h2/ops-h2.c",
106*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/client/client-http.c",
107*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/cookie.c",
108*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/date.c",
109*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/header.c",
110*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/parsers.c",
111*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/server/lejp-conf.c",
112*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/server/lws-spa.c",
113*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/server/server.c",
114*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/listen/ops-listen.c",
115*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/pipe/ops-pipe.c",
116*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/raw-file/ops-raw-file.c",
117*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/raw-skt/ops-raw-skt.c",
118*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/ws/client-parser-ws.c",
119*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/ws/client-ws.c",
120*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/ws/ops-ws.c",
121*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/ws/server-ws.c",
122*1c60b9acSAndroid Build Coastguard Worker    "lib/system/smd/smd.c",
123*1c60b9acSAndroid Build Coastguard Worker    "lib/system/system.c",
124*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/openssl/openssl-client.c",
125*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/openssl/openssl-server.c",
126*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/openssl/openssl-session.c",
127*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/openssl/openssl-ssl.c",
128*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/openssl/openssl-tls.c",
129*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/openssl/openssl-x509.c",
130*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/tls-client.c",
131*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/tls-network.c",
132*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/tls-server.c",
133*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/tls-sessions.c",
134*1c60b9acSAndroid Build Coastguard Worker    "lib/tls/tls.c",
135*1c60b9acSAndroid Build Coastguard Worker]
136*1c60b9acSAndroid Build Coastguard Worker
137*1c60b9acSAndroid Build Coastguard WorkerlibwebsocketsIncludePath = [
138*1c60b9acSAndroid Build Coastguard Worker    "plugins",
139*1c60b9acSAndroid Build Coastguard Worker    "lib/core",
140*1c60b9acSAndroid Build Coastguard Worker    "lib/core-net",
141*1c60b9acSAndroid Build Coastguard Worker    "lib/event-libs",
142*1c60b9acSAndroid Build Coastguard Worker    "lib/abstract",
143*1c60b9acSAndroid Build Coastguard Worker    "lib/tls",
144*1c60b9acSAndroid Build Coastguard Worker    "lib/roles",
145*1c60b9acSAndroid Build Coastguard Worker    "lib/event-libs/libuv",
146*1c60b9acSAndroid Build Coastguard Worker    "lib/event-libs/poll",
147*1c60b9acSAndroid Build Coastguard Worker    "lib/event-libs/libevent",
148*1c60b9acSAndroid Build Coastguard Worker    "lib/event-libs/glib",
149*1c60b9acSAndroid Build Coastguard Worker    "lib/event-libs/libev",
150*1c60b9acSAndroid Build Coastguard Worker    "lib/jose/jwe",
151*1c60b9acSAndroid Build Coastguard Worker    "lib/jose/jws",
152*1c60b9acSAndroid Build Coastguard Worker    "lib/jose",
153*1c60b9acSAndroid Build Coastguard Worker    "lib/misc",
154*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http",
155*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/http/compression",
156*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/h1",
157*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/h2",
158*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/ws",
159*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/cgi",
160*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/dbus",
161*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/raw-proxy",
162*1c60b9acSAndroid Build Coastguard Worker    "lib/abstract",
163*1c60b9acSAndroid Build Coastguard Worker    "lib/system/async-dns",
164*1c60b9acSAndroid Build Coastguard Worker    "lib/system/smd",
165*1c60b9acSAndroid Build Coastguard Worker    "lib/system/metrics",
166*1c60b9acSAndroid Build Coastguard Worker    "lib/roles/mqtt",
167*1c60b9acSAndroid Build Coastguard Worker    "lib/plat/unix",
168*1c60b9acSAndroid Build Coastguard Worker    "lib",
169*1c60b9acSAndroid Build Coastguard Worker]
170*1c60b9acSAndroid Build Coastguard Worker
171*1c60b9acSAndroid Build Coastguard Workercc_library_static {
172*1c60b9acSAndroid Build Coastguard Worker    name: "libwebsockets",
173*1c60b9acSAndroid Build Coastguard Worker    srcs: libwebsocketsSrcFiles,
174*1c60b9acSAndroid Build Coastguard Worker    local_include_dirs: libwebsocketsIncludePath,
175*1c60b9acSAndroid Build Coastguard Worker    export_include_dirs: ["include"],
176*1c60b9acSAndroid Build Coastguard Worker    static_libs: [
177*1c60b9acSAndroid Build Coastguard Worker        "libssl",
178*1c60b9acSAndroid Build Coastguard Worker        "libcap",
179*1c60b9acSAndroid Build Coastguard Worker    ],
180*1c60b9acSAndroid Build Coastguard Worker    host_supported: true,
181*1c60b9acSAndroid Build Coastguard Worker    product_variables: {
182*1c60b9acSAndroid Build Coastguard Worker        debuggable: {
183*1c60b9acSAndroid Build Coastguard Worker            cflags: [
184*1c60b9acSAndroid Build Coastguard Worker                "-UNDEBUG",
185*1c60b9acSAndroid Build Coastguard Worker            ],
186*1c60b9acSAndroid Build Coastguard Worker        },
187*1c60b9acSAndroid Build Coastguard Worker    },
188*1c60b9acSAndroid Build Coastguard Worker    target: {
189*1c60b9acSAndroid Build Coastguard Worker        darwin: {
190*1c60b9acSAndroid Build Coastguard Worker            enabled: false,
191*1c60b9acSAndroid Build Coastguard Worker        },
192*1c60b9acSAndroid Build Coastguard Worker        android: {
193*1c60b9acSAndroid Build Coastguard Worker            shared_libs: [
194*1c60b9acSAndroid Build Coastguard Worker                "libcrypto",
195*1c60b9acSAndroid Build Coastguard Worker            ],
196*1c60b9acSAndroid Build Coastguard Worker            cflags: [
197*1c60b9acSAndroid Build Coastguard Worker                "-Wno-unused-parameter",
198*1c60b9acSAndroid Build Coastguard Worker                "-Wno-missing-field-initializers",
199*1c60b9acSAndroid Build Coastguard Worker            ],
200*1c60b9acSAndroid Build Coastguard Worker        },
201*1c60b9acSAndroid Build Coastguard Worker        host: {
202*1c60b9acSAndroid Build Coastguard Worker            static_libs: [
203*1c60b9acSAndroid Build Coastguard Worker                "libcrypto",
204*1c60b9acSAndroid Build Coastguard Worker            ],
205*1c60b9acSAndroid Build Coastguard Worker            cflags: [
206*1c60b9acSAndroid Build Coastguard Worker                "-UNDEBUG",
207*1c60b9acSAndroid Build Coastguard Worker                "-Wall",
208*1c60b9acSAndroid Build Coastguard Worker                "-Wsign-compare",
209*1c60b9acSAndroid Build Coastguard Worker                "-Wstrict-aliasing",
210*1c60b9acSAndroid Build Coastguard Worker                "-Wuninitialized",
211*1c60b9acSAndroid Build Coastguard Worker                "-Werror",
212*1c60b9acSAndroid Build Coastguard Worker                "-fvisibility=hidden",
213*1c60b9acSAndroid Build Coastguard Worker                "-Wundef",
214*1c60b9acSAndroid Build Coastguard Worker                "-Wtype-limits",
215*1c60b9acSAndroid Build Coastguard Worker                "-Wignored-qualifiers",
216*1c60b9acSAndroid Build Coastguard Worker                "-Wno-deprecated-declarations",
217*1c60b9acSAndroid Build Coastguard Worker                "-pthread",
218*1c60b9acSAndroid Build Coastguard Worker                "-Wno-unused-command-line-argument",
219*1c60b9acSAndroid Build Coastguard Worker                "-Wno-unused-parameter",
220*1c60b9acSAndroid Build Coastguard Worker            ],
221*1c60b9acSAndroid Build Coastguard Worker        },
222*1c60b9acSAndroid Build Coastguard Worker    },
223*1c60b9acSAndroid Build Coastguard Worker}
224