xref: /aosp_15_r20/external/openscreen/platform/BUILD.gn (revision 3f982cf4871df8771c9d4abe6e9a6f8d829b2736)
1*3f982cf4SFabien Sanglard# Copyright 2018 The Chromium Authors. All rights reserved.
2*3f982cf4SFabien Sanglard# Use of this source code is governed by a BSD-style license that can be
3*3f982cf4SFabien Sanglard# found in the LICENSE file.
4*3f982cf4SFabien Sanglard
5*3f982cf4SFabien Sanglardimport("//build_overrides/build.gni")
6*3f982cf4SFabien Sanglard
7*3f982cf4SFabien Sanglard# Source files that depend on nothing (all your base/ are belong to us).
8*3f982cf4SFabien Sanglardsource_set("base") {
9*3f982cf4SFabien Sanglard  defines = []
10*3f982cf4SFabien Sanglard
11*3f982cf4SFabien Sanglard  sources = [
12*3f982cf4SFabien Sanglard    "base/error.cc",
13*3f982cf4SFabien Sanglard    "base/error.h",
14*3f982cf4SFabien Sanglard    "base/interface_info.cc",
15*3f982cf4SFabien Sanglard    "base/interface_info.h",
16*3f982cf4SFabien Sanglard    "base/ip_address.cc",
17*3f982cf4SFabien Sanglard    "base/ip_address.h",
18*3f982cf4SFabien Sanglard    "base/location.cc",
19*3f982cf4SFabien Sanglard    "base/location.h",
20*3f982cf4SFabien Sanglard    "base/tls_connect_options.h",
21*3f982cf4SFabien Sanglard    "base/tls_credentials.cc",
22*3f982cf4SFabien Sanglard    "base/tls_credentials.h",
23*3f982cf4SFabien Sanglard    "base/tls_listen_options.h",
24*3f982cf4SFabien Sanglard    "base/trace_logging_activation.cc",
25*3f982cf4SFabien Sanglard    "base/trace_logging_activation.h",
26*3f982cf4SFabien Sanglard    "base/trace_logging_types.h",
27*3f982cf4SFabien Sanglard    "base/trivial_clock_traits.cc",
28*3f982cf4SFabien Sanglard    "base/trivial_clock_traits.h",
29*3f982cf4SFabien Sanglard    "base/udp_packet.cc",
30*3f982cf4SFabien Sanglard    "base/udp_packet.h",
31*3f982cf4SFabien Sanglard  ]
32*3f982cf4SFabien Sanglard
33*3f982cf4SFabien Sanglard  public_configs = [ "../build:openscreen_include_dirs" ]
34*3f982cf4SFabien Sanglard}
35*3f982cf4SFabien Sanglard
36*3f982cf4SFabien Sanglard# Public API source files. May depend on nothing except :base.
37*3f982cf4SFabien Sanglardsource_set("logging") {
38*3f982cf4SFabien Sanglard  defines = []
39*3f982cf4SFabien Sanglard
40*3f982cf4SFabien Sanglard  sources = [ "api/logging.h" ]
41*3f982cf4SFabien Sanglard
42*3f982cf4SFabien Sanglard  public_deps = [ ":base" ]
43*3f982cf4SFabien Sanglard}
44*3f982cf4SFabien Sanglard
45*3f982cf4SFabien Sanglard# Public API source files. These may depend on nothing except :base.
46*3f982cf4SFabien Sanglardsource_set("api") {
47*3f982cf4SFabien Sanglard  defines = []
48*3f982cf4SFabien Sanglard
49*3f982cf4SFabien Sanglard  sources = [
50*3f982cf4SFabien Sanglard    "api/export.h",
51*3f982cf4SFabien Sanglard    "api/logging.h",
52*3f982cf4SFabien Sanglard    "api/network_interface.h",
53*3f982cf4SFabien Sanglard    "api/scoped_wake_lock.cc",
54*3f982cf4SFabien Sanglard    "api/scoped_wake_lock.h",
55*3f982cf4SFabien Sanglard    "api/serial_delete_ptr.h",
56*3f982cf4SFabien Sanglard    "api/task_runner.h",
57*3f982cf4SFabien Sanglard    "api/time.h",
58*3f982cf4SFabien Sanglard    "api/tls_connection.cc",
59*3f982cf4SFabien Sanglard    "api/tls_connection.h",
60*3f982cf4SFabien Sanglard    "api/tls_connection_factory.cc",
61*3f982cf4SFabien Sanglard    "api/tls_connection_factory.h",
62*3f982cf4SFabien Sanglard    "api/trace_logging_platform.cc",
63*3f982cf4SFabien Sanglard    "api/trace_logging_platform.h",
64*3f982cf4SFabien Sanglard    "api/udp_socket.cc",
65*3f982cf4SFabien Sanglard    "api/udp_socket.h",
66*3f982cf4SFabien Sanglard  ]
67*3f982cf4SFabien Sanglard
68*3f982cf4SFabien Sanglard  public_deps = [
69*3f982cf4SFabien Sanglard    ":base",
70*3f982cf4SFabien Sanglard    ":logging",
71*3f982cf4SFabien Sanglard  ]
72*3f982cf4SFabien Sanglard}
73*3f982cf4SFabien Sanglard
74*3f982cf4SFabien Sanglard# The following target is only activated in standalone builds (see :platform).
75*3f982cf4SFabien Sanglardif (!build_with_chromium) {
76*3f982cf4SFabien Sanglard  source_set("standalone_impl") {
77*3f982cf4SFabien Sanglard    defines = []
78*3f982cf4SFabien Sanglard
79*3f982cf4SFabien Sanglard    sources = [
80*3f982cf4SFabien Sanglard      "impl/logging.h",
81*3f982cf4SFabien Sanglard      "impl/network_interface.cc",
82*3f982cf4SFabien Sanglard      "impl/network_interface.h",
83*3f982cf4SFabien Sanglard      "impl/socket_handle.h",
84*3f982cf4SFabien Sanglard      "impl/socket_handle_waiter.cc",
85*3f982cf4SFabien Sanglard      "impl/socket_handle_waiter.h",
86*3f982cf4SFabien Sanglard      "impl/socket_state.h",
87*3f982cf4SFabien Sanglard      "impl/stream_socket.h",
88*3f982cf4SFabien Sanglard      "impl/task_runner.cc",
89*3f982cf4SFabien Sanglard      "impl/task_runner.h",
90*3f982cf4SFabien Sanglard      "impl/text_trace_logging_platform.cc",
91*3f982cf4SFabien Sanglard      "impl/text_trace_logging_platform.h",
92*3f982cf4SFabien Sanglard      "impl/time.cc",
93*3f982cf4SFabien Sanglard      "impl/tls_write_buffer.cc",
94*3f982cf4SFabien Sanglard      "impl/tls_write_buffer.h",
95*3f982cf4SFabien Sanglard    ]
96*3f982cf4SFabien Sanglard
97*3f982cf4SFabien Sanglard    public_configs = [ "//util:trace_logging_config" ]
98*3f982cf4SFabien Sanglard
99*3f982cf4SFabien Sanglard    if (is_linux) {
100*3f982cf4SFabien Sanglard      sources += [
101*3f982cf4SFabien Sanglard        "impl/network_interface_linux.cc",
102*3f982cf4SFabien Sanglard        "impl/scoped_wake_lock_linux.cc",
103*3f982cf4SFabien Sanglard        "impl/scoped_wake_lock_linux.h",
104*3f982cf4SFabien Sanglard      ]
105*3f982cf4SFabien Sanglard    } else if (is_mac) {
106*3f982cf4SFabien Sanglard      defines += [
107*3f982cf4SFabien Sanglard        # Required, to use the new IPv6 Sockets options introduced by RFC 3542.
108*3f982cf4SFabien Sanglard        "__APPLE_USE_RFC_3542",
109*3f982cf4SFabien Sanglard      ]
110*3f982cf4SFabien Sanglard
111*3f982cf4SFabien Sanglard      frameworks = [
112*3f982cf4SFabien Sanglard        "CoreFoundation.framework",
113*3f982cf4SFabien Sanglard        "IOKit.framework",
114*3f982cf4SFabien Sanglard      ]
115*3f982cf4SFabien Sanglard
116*3f982cf4SFabien Sanglard      sources += [
117*3f982cf4SFabien Sanglard        "impl/network_interface_mac.cc",
118*3f982cf4SFabien Sanglard        "impl/scoped_wake_lock_mac.cc",
119*3f982cf4SFabien Sanglard        "impl/scoped_wake_lock_mac.h",
120*3f982cf4SFabien Sanglard      ]
121*3f982cf4SFabien Sanglard    }
122*3f982cf4SFabien Sanglard
123*3f982cf4SFabien Sanglard    if (is_posix) {
124*3f982cf4SFabien Sanglard      sources += [
125*3f982cf4SFabien Sanglard        "impl/logging_posix.cc",
126*3f982cf4SFabien Sanglard        "impl/logging_test.h",
127*3f982cf4SFabien Sanglard        "impl/platform_client_posix.cc",
128*3f982cf4SFabien Sanglard        "impl/platform_client_posix.h",
129*3f982cf4SFabien Sanglard        "impl/scoped_pipe.h",
130*3f982cf4SFabien Sanglard        "impl/socket_address_posix.cc",
131*3f982cf4SFabien Sanglard        "impl/socket_address_posix.h",
132*3f982cf4SFabien Sanglard        "impl/socket_handle_posix.cc",
133*3f982cf4SFabien Sanglard        "impl/socket_handle_posix.h",
134*3f982cf4SFabien Sanglard        "impl/socket_handle_waiter_posix.cc",
135*3f982cf4SFabien Sanglard        "impl/socket_handle_waiter_posix.h",
136*3f982cf4SFabien Sanglard        "impl/stream_socket_posix.cc",
137*3f982cf4SFabien Sanglard        "impl/stream_socket_posix.h",
138*3f982cf4SFabien Sanglard        "impl/timeval_posix.cc",
139*3f982cf4SFabien Sanglard        "impl/timeval_posix.h",
140*3f982cf4SFabien Sanglard        "impl/tls_connection_factory_posix.cc",
141*3f982cf4SFabien Sanglard        "impl/tls_connection_factory_posix.h",
142*3f982cf4SFabien Sanglard        "impl/tls_connection_posix.cc",
143*3f982cf4SFabien Sanglard        "impl/tls_connection_posix.h",
144*3f982cf4SFabien Sanglard        "impl/tls_data_router_posix.cc",
145*3f982cf4SFabien Sanglard        "impl/tls_data_router_posix.h",
146*3f982cf4SFabien Sanglard        "impl/udp_socket_posix.cc",
147*3f982cf4SFabien Sanglard        "impl/udp_socket_posix.h",
148*3f982cf4SFabien Sanglard        "impl/udp_socket_reader_posix.cc",
149*3f982cf4SFabien Sanglard        "impl/udp_socket_reader_posix.h",
150*3f982cf4SFabien Sanglard      ]
151*3f982cf4SFabien Sanglard    }
152*3f982cf4SFabien Sanglard
153*3f982cf4SFabien Sanglard    deps = [
154*3f982cf4SFabien Sanglard      ":api",
155*3f982cf4SFabien Sanglard      "../third_party/abseil",
156*3f982cf4SFabien Sanglard      "../third_party/boringssl",
157*3f982cf4SFabien Sanglard      "../util",
158*3f982cf4SFabien Sanglard    ]
159*3f982cf4SFabien Sanglard  }
160*3f982cf4SFabien Sanglard}
161*3f982cf4SFabien Sanglard
162*3f982cf4SFabien Sanglard# The main target, which either assumes an embedder will link-in the platform
163*3f982cf4SFabien Sanglard# API implementation elsewhere, or links-in the :standalone_impl in the build.
164*3f982cf4SFabien Sanglardsource_set("platform") {
165*3f982cf4SFabien Sanglard  public_deps = [ ":api" ]
166*3f982cf4SFabien Sanglard  if (!build_with_chromium) {
167*3f982cf4SFabien Sanglard    deps = [ ":standalone_impl" ]
168*3f982cf4SFabien Sanglard  }
169*3f982cf4SFabien Sanglard}
170*3f982cf4SFabien Sanglard
171*3f982cf4SFabien Sanglard# Test helpers, referenced in other Open Screen BUILD.gn test targets.
172*3f982cf4SFabien Sanglardsource_set("test") {
173*3f982cf4SFabien Sanglard  testonly = true
174*3f982cf4SFabien Sanglard  sources = [
175*3f982cf4SFabien Sanglard    "test/fake_clock.cc",
176*3f982cf4SFabien Sanglard    "test/fake_clock.h",
177*3f982cf4SFabien Sanglard    "test/fake_task_runner.cc",
178*3f982cf4SFabien Sanglard    "test/fake_task_runner.h",
179*3f982cf4SFabien Sanglard    "test/fake_udp_socket.cc",
180*3f982cf4SFabien Sanglard    "test/fake_udp_socket.h",
181*3f982cf4SFabien Sanglard    "test/mock_tls_connection.h",
182*3f982cf4SFabien Sanglard    "test/mock_udp_socket.h",
183*3f982cf4SFabien Sanglard    "test/paths.h",
184*3f982cf4SFabien Sanglard    "test/paths_internal.h",
185*3f982cf4SFabien Sanglard    "test/trace_logging_helpers.h",
186*3f982cf4SFabien Sanglard  ]
187*3f982cf4SFabien Sanglard
188*3f982cf4SFabien Sanglard  if (is_posix) {
189*3f982cf4SFabien Sanglard    sources += [ "test/paths_posix.cc" ]
190*3f982cf4SFabien Sanglard  }
191*3f982cf4SFabien Sanglard  if (is_linux) {
192*3f982cf4SFabien Sanglard    sources += [ "test/paths_internal_linux.cc" ]
193*3f982cf4SFabien Sanglard  } else if (is_mac) {
194*3f982cf4SFabien Sanglard    sources += [ "test/paths_internal_mac.cc" ]
195*3f982cf4SFabien Sanglard  } else if (build_with_chromium) {
196*3f982cf4SFabien Sanglard    # NOTE: This is used to resolve a linking issue when compiling in Chromium
197*3f982cf4SFabien Sanglard    # for other platforms, but nothing in here is called.
198*3f982cf4SFabien Sanglard    sources += [ "test/paths_internal_other.cc" ]
199*3f982cf4SFabien Sanglard  }
200*3f982cf4SFabien Sanglard
201*3f982cf4SFabien Sanglard  public_deps = [
202*3f982cf4SFabien Sanglard    ":api",
203*3f982cf4SFabien Sanglard    ":base",
204*3f982cf4SFabien Sanglard  ]
205*3f982cf4SFabien Sanglard
206*3f982cf4SFabien Sanglard  deps = [
207*3f982cf4SFabien Sanglard    ":platform",
208*3f982cf4SFabien Sanglard    "../third_party/abseil",
209*3f982cf4SFabien Sanglard    "../third_party/googletest:gmock",
210*3f982cf4SFabien Sanglard    "../util",
211*3f982cf4SFabien Sanglard  ]
212*3f982cf4SFabien Sanglard}
213*3f982cf4SFabien Sanglard
214*3f982cf4SFabien Sanglardsource_set("unittests") {
215*3f982cf4SFabien Sanglard  testonly = true
216*3f982cf4SFabien Sanglard
217*3f982cf4SFabien Sanglard  sources = [
218*3f982cf4SFabien Sanglard    "api/serial_delete_ptr_unittest.cc",
219*3f982cf4SFabien Sanglard    "api/time_unittest.cc",
220*3f982cf4SFabien Sanglard    "base/error_unittest.cc",
221*3f982cf4SFabien Sanglard    "base/ip_address_unittest.cc",
222*3f982cf4SFabien Sanglard    "base/location_unittest.cc",
223*3f982cf4SFabien Sanglard    "base/udp_packet_unittest.cc",
224*3f982cf4SFabien Sanglard  ]
225*3f982cf4SFabien Sanglard
226*3f982cf4SFabien Sanglard  deps = [
227*3f982cf4SFabien Sanglard    ":platform",
228*3f982cf4SFabien Sanglard    ":test",
229*3f982cf4SFabien Sanglard    "../third_party/abseil",
230*3f982cf4SFabien Sanglard    "../third_party/boringssl",
231*3f982cf4SFabien Sanglard    "../third_party/googletest:gmock",
232*3f982cf4SFabien Sanglard    "../third_party/googletest:gtest",
233*3f982cf4SFabien Sanglard    "../util",
234*3f982cf4SFabien Sanglard  ]
235*3f982cf4SFabien Sanglard
236*3f982cf4SFabien Sanglard  # The socket integration tests assume that you can Bind with UDP sockets,
237*3f982cf4SFabien Sanglard  # which is simply not true when we are built inside of Chromium.
238*3f982cf4SFabien Sanglard  if (!build_with_chromium) {
239*3f982cf4SFabien Sanglard    sources += [ "api/socket_integration_unittest.cc" ]
240*3f982cf4SFabien Sanglard
241*3f982cf4SFabien Sanglard    deps += [ ":standalone_impl" ]
242*3f982cf4SFabien Sanglard  }
243*3f982cf4SFabien Sanglard
244*3f982cf4SFabien Sanglard  # The unit tests in impl/ assume the standalone implementation is being used.
245*3f982cf4SFabien Sanglard  # Exclude them if an embedder is providing the implementation.
246*3f982cf4SFabien Sanglard  if (!build_with_chromium) {
247*3f982cf4SFabien Sanglard    sources += [
248*3f982cf4SFabien Sanglard      "impl/task_runner_unittest.cc",
249*3f982cf4SFabien Sanglard      "impl/time_unittest.cc",
250*3f982cf4SFabien Sanglard    ]
251*3f982cf4SFabien Sanglard
252*3f982cf4SFabien Sanglard    if (is_posix) {
253*3f982cf4SFabien Sanglard      sources += [
254*3f982cf4SFabien Sanglard        "impl/logging_unittest.cc",
255*3f982cf4SFabien Sanglard        "impl/scoped_pipe_unittest.cc",
256*3f982cf4SFabien Sanglard        "impl/socket_address_posix_unittest.cc",
257*3f982cf4SFabien Sanglard        "impl/socket_handle_waiter_posix_unittest.cc",
258*3f982cf4SFabien Sanglard        "impl/timeval_posix_unittest.cc",
259*3f982cf4SFabien Sanglard        "impl/tls_data_router_posix_unittest.cc",
260*3f982cf4SFabien Sanglard        "impl/tls_write_buffer_unittest.cc",
261*3f982cf4SFabien Sanglard        "impl/udp_socket_reader_posix_unittest.cc",
262*3f982cf4SFabien Sanglard      ]
263*3f982cf4SFabien Sanglard    }
264*3f982cf4SFabien Sanglard  }
265*3f982cf4SFabien Sanglard}
266