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