xref: /aosp_15_r20/external/openscreen/Android.bp (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1package {
2    default_applicable_licenses: ["external_openscreen_license"],
3}
4
5// Added automatically by a large-scale-change that took the approach of
6// 'apply every license found to every target'. While this makes sure we respect
7// every license restriction, it may not be entirely correct.
8//
9// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10//
11// Please consider splitting the single license below into multiple licenses,
12// taking care not to lose any license_kind information, and overriding the
13// default license using the 'licenses: [...]' property on targets as needed.
14//
15// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16// to attach the license to, and including a comment whether the files may be
17// used in the current project.
18//
19// large-scale-change filtered out the below license kinds as false-positives:
20//   SPDX-license-identifier-GPL-2.0
21//   SPDX-license-identifier-LGPL-2.1
22//   SPDX-license-identifier-MPL
23// See: http://go/android-license-faq
24license {
25    name: "external_openscreen_license",
26    visibility: [":__subpackages__"],
27    license_kinds: [
28        "SPDX-license-identifier-Apache-2.0",
29        "SPDX-license-identifier-BSD",
30        "SPDX-license-identifier-ISC",
31        "SPDX-license-identifier-MIT",
32        "SPDX-license-identifier-NCSA",
33        "SPDX-license-identifier-OpenSSL",
34        "SPDX-license-identifier-Zlib",
35        "legacy_unencumbered",
36    ],
37    license_text: [
38        "LICENSE",
39    ],
40}
41
42cc_defaults {
43    name: "openscreen_defaults",
44
45    cflags: [
46        "-O2",
47        "-g",
48        "-fno-strict-aliasing",
49        "-W",
50        "-Wall",
51        "-Wextra",
52        "-Wno-address-of-packed-member",
53        "-Wno-array-bounds",
54        "-Wno-pointer-sign",
55        "-Wno-unused",
56        "-Wno-unused-but-set-variable",
57        "-Wno-unused-parameter",
58        "-Wno-missing-field-initializers",
59        "-Werror=implicit-function-declaration",
60        "-D_DEBUG",
61        "-DOPENSCREEN_TEST_DATA_DIR=\"$ANDROID_BUILD_TOP/external/openscreen/test/data/\"",
62    ],
63    cppflags: [
64        "-fno-exceptions",
65        "-fno-unwind-tables",
66        "-fno-asynchronous-unwind-tables",
67    ],
68    header_libs: [
69        "libopenscreen_absl_headers",
70    ],
71}
72
73osp_discovery_srcs = [
74    "discovery/dnssd/impl/conversion_layer.cc",
75    "discovery/dnssd/impl/dns_data_graph.cc",
76    "discovery/dnssd/impl/instance_key.cc",
77    "discovery/dnssd/impl/network_interface_config.cc",
78    "discovery/dnssd/impl/publisher_impl.cc",
79    "discovery/dnssd/impl/querier_impl.cc",
80    "discovery/dnssd/impl/service_dispatcher.cc",
81    "discovery/dnssd/impl/service_instance.cc",
82    "discovery/dnssd/impl/service_key.cc",
83    "discovery/dnssd/public/dns_sd_instance.cc",
84    "discovery/dnssd/public/dns_sd_instance_endpoint.cc",
85    "discovery/dnssd/public/dns_sd_txt_record.cc",
86    "discovery/mdns/mdns_probe.cc",
87    "discovery/mdns/mdns_probe_manager.cc",
88    "discovery/mdns/mdns_publisher.cc",
89    "discovery/mdns/mdns_querier.cc",
90    "discovery/mdns/mdns_reader.cc",
91    "discovery/mdns/mdns_receiver.cc",
92    "discovery/mdns/mdns_records.cc",
93    "discovery/mdns/mdns_responder.cc",
94    "discovery/mdns/mdns_sender.cc",
95    "discovery/mdns/mdns_service_impl.cc",
96    "discovery/mdns/mdns_trackers.cc",
97    "discovery/mdns/mdns_writer.cc",
98    "discovery/mdns/public/mdns_service.cc",
99]
100
101osp_discovery_testing_srcs = [
102    "discovery/dnssd/testing/fake_dns_record_factory.cc",
103    "discovery/mdns/testing/mdns_test_util.cc",
104]
105
106osp_discovery_unittest_srcs = [
107    "discovery/dnssd/impl/conversion_layer_unittest.cc",
108    "discovery/dnssd/impl/dns_data_graph_unittest.cc",
109    "discovery/dnssd/impl/instance_key_unittest.cc",
110    "discovery/dnssd/impl/publisher_impl_unittest.cc",
111    "discovery/dnssd/impl/querier_impl_unittest.cc",
112    "discovery/dnssd/impl/service_key_unittest.cc",
113    "discovery/dnssd/public/dns_sd_instance_endpoint_unittest.cc",
114    "discovery/dnssd/public/dns_sd_instance_unittest.cc",
115    "discovery/dnssd/public/dns_sd_txt_record_unittest.cc",
116    "discovery/mdns/mdns_probe_manager_unittest.cc",
117    "discovery/mdns/mdns_probe_unittest.cc",
118    "discovery/mdns/mdns_publisher_unittest.cc",
119    "discovery/mdns/mdns_querier_unittest.cc",
120    "discovery/mdns/mdns_random_unittest.cc",
121    "discovery/mdns/mdns_reader_unittest.cc",
122    "discovery/mdns/mdns_receiver_unittest.cc",
123    "discovery/mdns/mdns_records_unittest.cc",
124    "discovery/mdns/mdns_responder_unittest.cc",
125    "discovery/mdns/mdns_sender_unittest.cc",
126    "discovery/mdns/mdns_trackers_unittest.cc",
127    "discovery/mdns/mdns_writer_unittest.cc",
128    "discovery/public/dns_sd_service_watcher_unittest.cc",
129]
130
131osp_platform_base_srcs = [
132    "platform/base/error.cc",
133    "platform/base/interface_info.cc",
134    "platform/base/ip_address.cc",
135    "platform/base/udp_packet.cc",
136]
137
138osp_platform_api_srcs = [
139    "platform/api/udp_socket.cc",
140]
141
142osp_util_srcs = [
143    "util/alarm.cc",
144    "util/big_endian.cc",
145]
146
147//#########################
148
149// This library contains reference implementations for the platform api, and may not be
150// optimal for every embedder's needs. Only files added are for adb (the only embedder ATM).
151cc_library_host_static {
152    name: "libopenscreen-platform-impl",
153    defaults: ["openscreen_defaults"],
154    stl: "libc++_static",
155
156    srcs: [
157        "platform/impl/time.cc",
158        "platform/impl/network_interface.cc",
159    ],
160
161
162    target: {
163        linux: {
164            srcs: [
165                "platform/impl/network_interface_linux.cc",
166            ],
167        },
168        darwin: {
169            srcs: [
170                "platform/impl/network_interface_mac.cc",
171            ],
172            cflags: [
173                // Required, to use the new IPv6 Sockets options introduced by RFC 3542.
174                "-D__APPLE_USE_RFC_3542",
175            ],
176        },
177        windows: {
178            enabled: true,
179            srcs: [
180                "platform/impl/network_interface_win.cc",
181            ],
182        },
183    },
184
185    export_include_dirs: ["."],
186}
187
188// TODO: enable the osp discovery unittests
189cc_library_host_static {
190    name: "libopenscreen-discovery",
191    defaults: ["openscreen_defaults"],
192    stl: "libc++_static",
193
194    srcs: osp_platform_api_srcs +
195          osp_platform_base_srcs +
196          osp_util_srcs +
197          osp_discovery_srcs,
198
199    whole_static_libs: [
200        "libopenscreen_absl",
201    ],
202
203    target: {
204        windows: {
205            enabled: true,
206        },
207    }
208}
209