| # Copyright 2018 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build_overrides/build.gni") |
| |
| # Source files that depend on nothing (all your base/ are belong to us). |
| source_set("base") { |
| defines = [] |
| |
| sources = [ |
| "base/error.cc", |
| "base/error.h", |
| "base/interface_info.cc", |
| "base/interface_info.h", |
| "base/ip_address.cc", |
| "base/ip_address.h", |
| "base/location.cc", |
| "base/location.h", |
| "base/tls_connect_options.h", |
| "base/tls_credentials.cc", |
| "base/tls_credentials.h", |
| "base/tls_listen_options.h", |
| "base/trace_logging_activation.cc", |
| "base/trace_logging_activation.h", |
| "base/trace_logging_types.h", |
| "base/trivial_clock_traits.cc", |
| "base/trivial_clock_traits.h", |
| "base/udp_packet.cc", |
| "base/udp_packet.h", |
| ] |
| |
| public_configs = [ "../build:openscreen_include_dirs" ] |
| } |
| |
| # Public API source files. These may depend on nothing except :base. |
| source_set("api") { |
| defines = [] |
| |
| sources = [ |
| "api/export.h", |
| "api/logging.h", |
| "api/network_interface.h", |
| "api/scoped_wake_lock.cc", |
| "api/scoped_wake_lock.h", |
| "api/serial_delete_ptr.h", |
| "api/task_runner.h", |
| "api/time.h", |
| "api/tls_connection.cc", |
| "api/tls_connection.h", |
| "api/tls_connection_factory.cc", |
| "api/tls_connection_factory.h", |
| "api/trace_logging_platform.cc", |
| "api/trace_logging_platform.h", |
| "api/udp_socket.cc", |
| "api/udp_socket.h", |
| ] |
| |
| public_deps = [ ":base" ] |
| } |
| |
| # The following target is only activated in standalone builds (see :platform). |
| if (!build_with_chromium) { |
| source_set("standalone_impl") { |
| defines = [] |
| |
| sources = [ |
| "impl/logging.h", |
| "impl/network_interface.cc", |
| "impl/network_interface.h", |
| "impl/socket_handle.h", |
| "impl/socket_handle_waiter.cc", |
| "impl/socket_handle_waiter.h", |
| "impl/socket_state.h", |
| "impl/stream_socket.h", |
| "impl/task_runner.cc", |
| "impl/task_runner.h", |
| "impl/text_trace_logging_platform.cc", |
| "impl/text_trace_logging_platform.h", |
| "impl/time.cc", |
| "impl/tls_write_buffer.cc", |
| "impl/tls_write_buffer.h", |
| ] |
| |
| public_configs = [ "//util:trace_logging_config" ] |
| |
| if (is_linux) { |
| sources += [ |
| "impl/network_interface_linux.cc", |
| "impl/scoped_wake_lock_linux.cc", |
| "impl/scoped_wake_lock_linux.h", |
| ] |
| } else if (is_mac) { |
| defines += [ |
| # Required, to use the new IPv6 Sockets options introduced by RFC 3542. |
| "__APPLE_USE_RFC_3542", |
| ] |
| |
| frameworks = [ |
| "CoreFoundation.framework", |
| "IOKit.framework", |
| ] |
| |
| sources += [ |
| "impl/network_interface_mac.cc", |
| "impl/scoped_wake_lock_mac.cc", |
| "impl/scoped_wake_lock_mac.h", |
| ] |
| } |
| |
| if (is_posix) { |
| sources += [ |
| "impl/logging_posix.cc", |
| "impl/logging_test.h", |
| "impl/platform_client_posix.cc", |
| "impl/platform_client_posix.h", |
| "impl/scoped_pipe.h", |
| "impl/socket_address_posix.cc", |
| "impl/socket_address_posix.h", |
| "impl/socket_handle_posix.cc", |
| "impl/socket_handle_posix.h", |
| "impl/socket_handle_waiter_posix.cc", |
| "impl/socket_handle_waiter_posix.h", |
| "impl/stream_socket_posix.cc", |
| "impl/stream_socket_posix.h", |
| "impl/timeval_posix.cc", |
| "impl/timeval_posix.h", |
| "impl/tls_connection_factory_posix.cc", |
| "impl/tls_connection_factory_posix.h", |
| "impl/tls_connection_posix.cc", |
| "impl/tls_connection_posix.h", |
| "impl/tls_data_router_posix.cc", |
| "impl/tls_data_router_posix.h", |
| "impl/udp_socket_posix.cc", |
| "impl/udp_socket_posix.h", |
| "impl/udp_socket_reader_posix.cc", |
| "impl/udp_socket_reader_posix.h", |
| ] |
| } |
| |
| deps = [ |
| ":api", |
| "../third_party/abseil", |
| "../third_party/boringssl", |
| "../util", |
| ] |
| } |
| } |
| |
| # The main target, which either assumes an embedder will link-in the platform |
| # API implementation elsewhere, or links-in the :standalone_impl in the build. |
| source_set("platform") { |
| public_deps = [ ":api" ] |
| if (!build_with_chromium) { |
| deps = [ ":standalone_impl" ] |
| } |
| } |
| |
| # Test helpers, referenced in other Open Screen BUILD.gn test targets. |
| source_set("test") { |
| testonly = true |
| sources = [ |
| "test/fake_clock.cc", |
| "test/fake_clock.h", |
| "test/fake_task_runner.cc", |
| "test/fake_task_runner.h", |
| "test/fake_udp_socket.cc", |
| "test/fake_udp_socket.h", |
| "test/mock_tls_connection.h", |
| "test/mock_udp_socket.h", |
| "test/paths.h", |
| "test/paths_internal.h", |
| "test/trace_logging_helpers.h", |
| ] |
| |
| if (is_posix) { |
| sources += [ "test/paths_posix.cc" ] |
| } |
| if (is_linux) { |
| sources += [ "test/paths_internal_linux.cc" ] |
| } else if (is_mac) { |
| sources += [ "test/paths_internal_mac.cc" ] |
| } else if (build_with_chromium) { |
| # NOTE: This is used to resolve a linking issue when compiling in Chromium |
| # for other platforms, but nothing in here is called. |
| sources += [ "test/paths_internal_other.cc" ] |
| } |
| |
| public_deps = [ |
| ":api", |
| ":base", |
| ] |
| |
| deps = [ |
| ":platform", |
| "../third_party/abseil", |
| "../third_party/googletest:gmock", |
| "../util", |
| ] |
| } |
| |
| source_set("unittests") { |
| testonly = true |
| |
| sources = [ |
| "api/serial_delete_ptr_unittest.cc", |
| "api/time_unittest.cc", |
| "base/error_unittest.cc", |
| "base/ip_address_unittest.cc", |
| "base/location_unittest.cc", |
| "base/udp_packet_unittest.cc", |
| ] |
| |
| # The socket integration tests assume that you can Bind with UDP sockets, |
| # which is simply not true when we are built inside of Chromium. |
| if (!build_with_chromium) { |
| sources += [ "api/socket_integration_unittest.cc" ] |
| } |
| |
| # The unit tests in impl/ assume the standalone implementation is being used. |
| # Exclude them if an embedder is providing the implementation. |
| if (!build_with_chromium) { |
| sources += [ |
| "impl/task_runner_unittest.cc", |
| "impl/time_unittest.cc", |
| ] |
| |
| if (is_posix) { |
| sources += [ |
| "impl/logging_unittest.cc", |
| "impl/scoped_pipe_unittest.cc", |
| "impl/socket_address_posix_unittest.cc", |
| "impl/socket_handle_waiter_posix_unittest.cc", |
| "impl/timeval_posix_unittest.cc", |
| "impl/tls_data_router_posix_unittest.cc", |
| "impl/tls_write_buffer_unittest.cc", |
| "impl/udp_socket_reader_posix_unittest.cc", |
| ] |
| } |
| } |
| |
| deps = [ |
| ":platform", |
| ":test", |
| "../third_party/abseil", |
| "../third_party/boringssl", |
| "../third_party/googletest:gmock", |
| "../third_party/googletest:gtest", |
| "../util", |
| ] |
| } |