blob: 46509d854ae0c96d4786ac4d10d9ad3a7747c986 [file] [log] [blame]
btolsch9d6900c2018-05-30 18:22:53 -07001# Copyright 2018 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
Yuri Wiitalab2d13232019-02-04 18:07:28 -08005import("//build_overrides/build.gni")
btolsch5292c942018-07-26 00:06:22 -07006
Yuri Wiitalab2d13232019-02-04 18:07:28 -08007source_set("platform") {
Ryan Keane1d9c0c42019-07-29 15:22:19 -07008 defines = []
9
Yuri Wiitalab2d13232019-02-04 18:07:28 -080010 sources = [
Yuri Wiitalab2d13232019-02-04 18:07:28 -080011 "api/logging.h",
Yuri Wiitalab2d13232019-02-04 18:07:28 -080012 "api/network_interface.h",
Jordan Baylesf3cf17d2019-06-11 15:29:43 -070013 "api/scoped_wake_lock.cc",
14 "api/scoped_wake_lock.h",
btolsch4051e722019-06-07 16:15:17 -070015 "api/socket.h",
Jordan Baylesb0c191e2019-03-26 15:49:57 -070016 "api/task_runner.h",
Yuri Wiitalab2d13232019-02-04 18:07:28 -080017 "api/time.h",
Ryan Keanefdebe6c2019-09-06 14:12:51 -070018 "api/tls_connection.cc",
Jordan Bayles1c785bd2019-08-15 10:32:33 -070019 "api/tls_connection.h",
Ryan Keanefdebe6c2019-09-06 14:12:51 -070020 "api/tls_connection_factory.cc",
Jordan Bayles1c785bd2019-08-15 10:32:33 -070021 "api/tls_connection_factory.h",
Ryan Keaneefab2ed2019-07-22 12:36:53 -070022 "api/trace_logging_platform.cc",
23 "api/trace_logging_platform.h",
Max Yakimakha04362e22019-07-22 17:54:45 -070024 "api/udp_read_callback.h",
Ryan Keanedeb48b32019-06-28 16:24:40 -070025 "api/udp_socket.cc",
Jordan Baylesad2d2cd2019-05-22 14:49:40 -070026 "api/udp_socket.h",
Jordan Baylesa26582d2019-07-10 14:44:58 -070027 "base/error.cc",
28 "base/error.h",
Yuri Wiitala22f643c2019-11-25 14:54:17 -080029 "base/interface_info.cc",
30 "base/interface_info.h",
Jordan Baylesa26582d2019-07-10 14:44:58 -070031 "base/ip_address.cc",
32 "base/ip_address.h",
33 "base/location.cc",
34 "base/location.h",
Jordan Baylesc56f0382019-10-10 16:57:56 -070035 "base/serial_delete_ptr.h",
Jordan Bayles1c785bd2019-08-15 10:32:33 -070036 "base/socket_state.h",
37 "base/tls_connect_options.h",
38 "base/tls_credentials.cc",
39 "base/tls_credentials.h",
40 "base/tls_listen_options.h",
Yuri Wiitala8e6db3b2019-11-20 11:20:54 -080041 "base/trace_logging_activation.cc",
42 "base/trace_logging_activation.h",
43 "base/trace_logging_types.h",
Yuri Wiitala977b6ef2019-11-07 17:08:25 -080044 "base/udp_packet.cc",
45 "base/udp_packet.h",
Yuri Wiitalab2d13232019-02-04 18:07:28 -080046 ]
Jordan Bayles9eb09742019-01-15 14:04:52 -080047
48 public_deps = [
btolsch2f2e7fa2019-03-29 16:48:49 -070049 "../third_party/abseil",
Jordan Baylesb9262f42019-05-30 14:10:02 -070050 "../third_party/boringssl",
Jordan Baylesa26582d2019-07-10 14:44:58 -070051 "../util",
Jordan Bayles9eb09742019-01-15 14:04:52 -080052 ]
Jordan Bayles9ade4152019-05-08 17:03:24 -070053
Jordan Bayles21b5adc2019-10-25 12:01:20 -070054 public_configs = [ "../build:openscreen_include_dirs" ]
Yuri Wiitalab2d13232019-02-04 18:07:28 -080055
Jordan Baylesa80724b2019-05-02 17:17:26 -070056 if (!build_with_chromium) {
btolschc92ba2f2019-04-10 11:46:01 -070057 sources += [
Yuri Wiitalab7979032019-11-08 15:17:20 -080058 "impl/logging.h",
Ryan Keane3b88a252019-09-17 09:55:33 -070059 "impl/socket_handle.h",
Ryan Keane2fdf9662019-09-25 13:29:32 -070060 "impl/socket_handle_waiter.cc",
61 "impl/socket_handle_waiter.h",
Jordan Baylesa26582d2019-07-10 14:44:58 -070062 "impl/task_runner.cc",
63 "impl/task_runner.h",
Ryan Keaneefab2ed2019-07-22 12:36:53 -070064 "impl/text_trace_logging_platform.cc",
65 "impl/text_trace_logging_platform.h",
btolsch4397c292019-07-22 12:42:10 -070066 "impl/time.cc",
Ryan Keanec5e56e72019-09-18 18:21:40 -070067 "impl/tls_write_buffer.cc",
68 "impl/tls_write_buffer.h",
Yuri Wiitalafb75b092019-11-14 14:13:18 -080069 "impl/weak_ptr.h",
btolschc92ba2f2019-04-10 11:46:01 -070070 ]
Yuri Wiitalab2d13232019-02-04 18:07:28 -080071
72 if (is_linux) {
Jordan Baylescc471802019-07-09 14:25:02 -070073 sources += [ "impl/network_interface_linux.cc" ]
Yuri Wiitalab2d13232019-02-04 18:07:28 -080074 } else if (is_mac) {
Ryan Keane1d9c0c42019-07-29 15:22:19 -070075 defines += [
Yuri Wiitalab2d13232019-02-04 18:07:28 -080076 # Required, to use the new IPv6 Sockets options introduced by RFC 3542.
77 "__APPLE_USE_RFC_3542",
78 ]
Jordan Bayles9ade4152019-05-08 17:03:24 -070079
Jordan Baylesc56f0382019-10-10 16:57:56 -070080 libs = [
81 "CoreFoundation.framework",
82 "IOKit.framework",
83 ]
84
85 sources += [
86 "impl/network_interface_mac.cc",
87 "impl/scoped_wake_lock_mac.cc",
88 "impl/scoped_wake_lock_mac.h",
89 ]
Yuri Wiitalab2d13232019-02-04 18:07:28 -080090 }
91
92 if (is_posix) {
93 sources += [
Yuri Wiitalab7979032019-11-08 15:17:20 -080094 "impl/logging_posix.cc",
Ryan Keane52e2fd82019-10-08 11:44:11 -070095 "impl/platform_client_posix.cc",
96 "impl/platform_client_posix.h",
Jordan Baylesa26582d2019-07-10 14:44:58 -070097 "impl/scoped_pipe.h",
Jordan Bayles62b7c6a2019-08-15 10:32:33 -070098 "impl/socket_address_posix.cc",
99 "impl/socket_address_posix.h",
Ryan Keane6e542522019-09-10 16:05:44 -0700100 "impl/socket_handle_posix.cc",
101 "impl/socket_handle_posix.h",
Ryan Keane2fdf9662019-09-25 13:29:32 -0700102 "impl/socket_handle_waiter_posix.cc",
103 "impl/socket_handle_waiter_posix.h",
Jordan Bayles1c785bd2019-08-15 10:32:33 -0700104 "impl/stream_socket.h",
Jordan Bayles62b7c6a2019-08-15 10:32:33 -0700105 "impl/stream_socket_posix.cc",
106 "impl/stream_socket_posix.h",
mark a. foltzcbdea4b2019-11-18 16:49:14 -0800107 "impl/timeval_posix.cc",
108 "impl/timeval_posix.h",
Jordan Bayles1c785bd2019-08-15 10:32:33 -0700109 "impl/tls_connection_factory_posix.cc",
110 "impl/tls_connection_factory_posix.h",
111 "impl/tls_connection_posix.cc",
112 "impl/tls_connection_posix.h",
Ryan Keaneffa8c1e2019-09-23 10:42:48 -0700113 "impl/tls_data_router_posix.cc",
114 "impl/tls_data_router_posix.h",
Jordan Baylescc471802019-07-09 14:25:02 -0700115 "impl/udp_socket_posix.cc",
116 "impl/udp_socket_posix.h",
Ryan Keanee93f8c72019-09-25 12:35:00 -0700117 "impl/udp_socket_reader_posix.cc",
118 "impl/udp_socket_reader_posix.h",
Yuri Wiitalab2d13232019-02-04 18:07:28 -0800119 ]
120 }
121 }
btolsch9d6900c2018-05-30 18:22:53 -0700122}
Yuri Wiitalaeb8eee72019-03-26 15:52:43 -0700123
Jordan Baylesaa021ce2019-05-29 13:57:44 -0700124source_set("test") {
125 testonly = true
126 sources = [
127 "test/fake_clock.cc",
128 "test/fake_clock.h",
Yuri Wiitalaec353612019-06-18 17:32:39 -0700129 "test/fake_task_runner.cc",
130 "test/fake_task_runner.h",
Ryan Keane7d4b5fc2019-08-30 12:38:39 -0700131 "test/fake_udp_socket.cc",
132 "test/fake_udp_socket.h",
Ryan Keane38e7d512019-08-02 15:37:49 -0700133 "test/trace_logging_helpers.h",
Jordan Baylesaa021ce2019-05-29 13:57:44 -0700134 ]
135
136 deps = [
137 ":platform",
Ryan Keanedeb48b32019-06-28 16:24:40 -0700138 "../third_party/googletest:gmock",
Jordan Baylesaa021ce2019-05-29 13:57:44 -0700139 ]
140}
141
mark a. foltz3fe46172019-09-18 05:50:30 -0700142source_set("unittests") {
Yuri Wiitalaeb8eee72019-03-26 15:52:43 -0700143 testonly = true
144
145 sources = [
146 "api/time_unittest.cc",
Jordan Baylesa26582d2019-07-10 14:44:58 -0700147 "base/error_unittest.cc",
148 "base/ip_address_unittest.cc",
149 "base/location_unittest.cc",
Jordan Baylesc56f0382019-10-10 16:57:56 -0700150 "base/serial_delete_ptr_unittest.cc",
Jordan Bayles05ce6b62019-09-06 14:09:10 -0700151 "base/tls_credentials_unittest.cc",
Yuri Wiitalaeb8eee72019-03-26 15:52:43 -0700152 ]
153
Jordan Baylescc471802019-07-09 14:25:02 -0700154 # The unit tests in impl/ assume the standalone implementation is being used.
Yuri Wiitalaeb8eee72019-03-26 15:52:43 -0700155 # Exclude them if an embedder is providing the implementation.
156 if (!build_with_chromium) {
btolschc92ba2f2019-04-10 11:46:01 -0700157 sources += [
Jordan Bayles063c3b52019-08-13 18:14:55 -0700158 # TODO(jophba): move over to general sources when UDP socket create
159 # is implemented in Chromium, as part of the NetworkRunner work.
Ryan Keane493029d2019-08-19 14:01:04 -0700160 "api/socket_integration_unittest.cc",
Jordan Baylesa26582d2019-07-10 14:44:58 -0700161 "impl/task_runner_unittest.cc",
Jordan Baylescc471802019-07-09 14:25:02 -0700162 "impl/time_unittest.cc",
Yuri Wiitalafb75b092019-11-14 14:13:18 -0800163 "impl/weak_ptr_unittest.cc",
btolschc92ba2f2019-04-10 11:46:01 -0700164 ]
Jordan Bayles063c3b52019-08-13 18:14:55 -0700165
Ryan Keane32c88d02019-07-02 18:46:14 -0700166 if (is_posix) {
Jordan Baylesa26582d2019-07-10 14:44:58 -0700167 sources += [
Jordan Baylesa26582d2019-07-10 14:44:58 -0700168 "impl/scoped_pipe_unittest.cc",
Jordan Bayles62b7c6a2019-08-15 10:32:33 -0700169 "impl/socket_address_posix_unittest.cc",
Ryan Keane2fdf9662019-09-25 13:29:32 -0700170 "impl/socket_handle_waiter_posix_unittest.cc",
mark a. foltzcbdea4b2019-11-18 16:49:14 -0800171 "impl/timeval_posix_unittest.cc",
Ryan Keaned838a252019-09-25 12:48:15 -0700172 "impl/tls_data_router_posix_unittest.cc",
Ryan Keanef2776122019-10-11 09:07:33 -0700173 "impl/tls_write_buffer_unittest.cc",
Ryan Keanee93f8c72019-09-25 12:35:00 -0700174 "impl/udp_socket_reader_posix_unittest.cc",
Jordan Baylesa26582d2019-07-10 14:44:58 -0700175 ]
Ryan Keane32c88d02019-07-02 18:46:14 -0700176 }
Yuri Wiitalaeb8eee72019-03-26 15:52:43 -0700177 }
178
179 deps = [
180 ":platform",
Ryan Keanedeb48b32019-06-28 16:24:40 -0700181 "../third_party/googletest:gmock",
btolsch4666ed22019-04-25 15:58:07 -0700182 "../third_party/googletest:gtest",
Yuri Wiitalaeb8eee72019-03-26 15:52:43 -0700183 ]
184}