You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
252 lines
6.6 KiB
252 lines
6.6 KiB
# 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",
|
|
]
|
|
}
|