blob: e13515978e74f8376ea50d6a9c46bb406c5a98df [file] [log] [blame]
Keigo Okacedea622018-09-03 20:08:05 +09001# Copyright 2018 The Chromium OS 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
5import("//common-mk/pkg_config.gni")
6import("//common-mk/proto_library.gni")
7
8group("all") {
9 deps = [
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090010 ":libpatchpanel",
Garrick Evans08843932019-09-17 14:41:08 +090011 ":libpatchpanel-client",
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090012 ":libpatchpanel-util",
13 ":patchpaneld",
Keigo Okacedea622018-09-03 20:08:05 +090014 ]
Hugo Benichi1661ca02019-10-16 15:36:13 +090015 if (use.fuzzer) {
Taoyu Li906553a2019-10-18 13:44:41 +090016 deps += [
Hugo Benichib9b93fe2019-10-25 23:36:01 +090017 ":datapath_fuzzer",
Taoyu Li906553a2019-10-18 13:44:41 +090018 ":multicast_forwarder_fuzzer",
19 ":ndproxy_fuzzer",
Garrick Evanse1f11c32020-05-21 16:54:06 +090020 ":patchpanel_client_fuzzer",
Taoyu Li906553a2019-10-18 13:44:41 +090021 ]
Hugo Benichi1661ca02019-10-16 15:36:13 +090022 }
Garrick Evans428e4762018-12-11 15:18:42 +090023 if (use.test) {
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090024 deps += [ ":patchpanel_testrunner" ]
Garrick Evans428e4762018-12-11 15:18:42 +090025 }
Keigo Okacedea622018-09-03 20:08:05 +090026}
27
28pkg_config("target_defaults") {
29 pkg_deps = [
hscham190698a2020-01-17 12:06:33 +090030 "libbrillo",
Keigo Okacedea622018-09-03 20:08:05 +090031 "libchrome-${libbase_ver}",
Jason Jeremy Imanfa8b6d22020-02-20 03:44:21 +000032 "libpermission_broker-client",
Keigo Okacedea622018-09-03 20:08:05 +090033 "libshill-client",
Garrick Evanscf036f32018-12-21 12:56:59 +090034 "libshill-net-${libbase_ver}",
Garrick Evans08843932019-09-17 14:41:08 +090035 "protobuf-lite",
36 "system_api",
Keigo Okacedea622018-09-03 20:08:05 +090037 ]
Allen Webb33a2f802019-10-24 16:03:17 -070038 if (use.fuzzer) {
39 pkg_deps += [ "protobuf" ]
40 } else {
41 pkg_deps += [ "protobuf-lite" ]
42 }
Keigo Okacedea622018-09-03 20:08:05 +090043}
44
45proto_library("protos") {
46 configs = [ ":target_defaults" ]
47 proto_in_dir = "."
Garrick Evans3388a032020-03-24 11:25:55 +090048 proto_out_dir = "include/patchpanel"
Clark Chung352e61e2020-04-21 18:32:03 +080049 sources = [ "${proto_in_dir}/ipc.proto" ]
Keigo Okacedea622018-09-03 20:08:05 +090050}
51
Garrick Evans4b66f632019-01-24 15:09:16 +090052util_sources = [
Garrick Evans0dbd4182019-03-07 08:38:38 +090053 "address_manager.cc",
Garrick Evans4b66f632019-01-24 15:09:16 +090054 "mac_address_generator.cc",
Hugo Benichi2ac4d072019-05-28 14:51:23 +090055 "net_util.cc",
Garrick Evans1cce71a2019-06-21 10:43:14 +090056 "socket.cc",
Andreea Costinas74f45d22020-03-13 10:29:31 +010057 "socket_forwarder.cc",
Garrick Evans4b66f632019-01-24 15:09:16 +090058 "subnet.cc",
59 "subnet_pool.cc",
60]
61
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090062libpatchpanel_sources = [
Manoj Guptab7553862020-04-23 15:02:41 -070063 "adb_proxy.cc",
64 "arc_service.cc",
65 "broadcast_forwarder.cc",
66 "crostini_service.cc",
67 "datapath.cc",
68 "device.cc",
69 "dns/big_endian.cc",
70 "dns/dns_response.cc",
71 "dns/io_buffer.cc",
72 "helper_process.cc",
73 "manager.cc",
74 "message_dispatcher.cc",
75 "minijailed_process_runner.cc",
76 "multicast_forwarder.cc",
77 "multicast_proxy.cc",
78 "ndproxy.cc",
79 "routing_service.cc",
80 "scoped_ns.cc",
81 "shill_client.cc",
82]
83
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090084shared_library("libpatchpanel-util") {
Garrick Evans4b66f632019-01-24 15:09:16 +090085 sources = util_sources
Ayato Tokubidef23f12019-10-02 12:21:53 +090086 configs += [ ":target_defaults" ]
Garrick Evans4b66f632019-01-24 15:09:16 +090087}
88
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090089static_library("libpatchpanel_test") {
Manoj Guptab7553862020-04-23 15:02:41 -070090 configs += [ ":target_defaults" ]
91 all_dependent_pkg_deps = [
92 "protobuf",
93 "system_api",
94 ]
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090095 sources = libpatchpanel_sources
Clark Chung352e61e2020-04-21 18:32:03 +080096 deps = [ ":protos" ]
Manoj Guptab7553862020-04-23 15:02:41 -070097}
98
Garrick Evansaa4a9ed2020-04-30 14:33:23 +090099static_library("libpatchpanel") {
Garrick Evans08843932019-09-17 14:41:08 +0900100 configs += [ ":target_defaults" ]
101 all_dependent_pkg_deps = [
102 "protobuf",
103 "system_api",
104 ]
Garrick Evansaa4a9ed2020-04-30 14:33:23 +0900105 sources = libpatchpanel_sources + util_sources
Clark Chung352e61e2020-04-21 18:32:03 +0800106 deps = [ ":protos" ]
Garrick Evans428e4762018-12-11 15:18:42 +0900107}
108
Garrick Evans08843932019-09-17 14:41:08 +0900109shared_library("libpatchpanel-client") {
110 configs += [ ":target_defaults" ]
111 all_dependent_pkg_deps = [
112 "protobuf",
113 "system_api",
114 ]
Clark Chung352e61e2020-04-21 18:32:03 +0800115 sources = [ "client.cc" ]
Hugo Benichicc6850f2020-01-17 13:26:06 +0900116 sources += util_sources
Garrick Evans08843932019-09-17 14:41:08 +0900117}
118
Garrick Evans635a3f02020-04-22 08:02:02 +0900119executable("patchpaneld") {
Clark Chung352e61e2020-04-21 18:32:03 +0800120 sources = [ "main.cc" ]
Ayato Tokubidef23f12019-10-02 12:21:53 +0900121 configs += [ ":target_defaults" ]
Clark Chung352e61e2020-04-21 18:32:03 +0800122 deps = [ ":libpatchpanel" ]
Garrick Evans428e4762018-12-11 15:18:42 +0900123}
124
Hugo Benichi1661ca02019-10-16 15:36:13 +0900125if (use.fuzzer) {
126 pkg_config("fuzzing_config") {
127 pkg_deps = [ "libchrome-test-${libbase_ver}" ]
128 }
129
130 executable("multicast_forwarder_fuzzer") {
131 configs += [
132 "//common-mk/common_fuzzer",
133 ":target_defaults",
134 ":fuzzing_config",
135 ]
Clark Chung352e61e2020-04-21 18:32:03 +0800136 sources = [ "multicast_forwarder_fuzzer.cc" ]
137 deps = [ ":libpatchpanel" ]
Hugo Benichi1661ca02019-10-16 15:36:13 +0900138 }
Taoyu Li906553a2019-10-18 13:44:41 +0900139
140 executable("ndproxy_fuzzer") {
141 configs += [
142 "//common-mk/common_fuzzer",
143 ":target_defaults",
144 ":fuzzing_config",
145 ]
Clark Chung352e61e2020-04-21 18:32:03 +0800146 sources = [ "ndproxy_fuzzer.cc" ]
147 deps = [ ":libpatchpanel" ]
Taoyu Li906553a2019-10-18 13:44:41 +0900148 }
Hugo Benichib9b93fe2019-10-25 23:36:01 +0900149
150 executable("datapath_fuzzer") {
151 configs += [
152 "//common-mk/common_fuzzer",
153 ":target_defaults",
154 ":fuzzing_config",
155 ]
Clark Chung352e61e2020-04-21 18:32:03 +0800156 sources = [ "datapath_fuzzer.cc" ]
157 deps = [ ":libpatchpanel" ]
Hugo Benichib9b93fe2019-10-25 23:36:01 +0900158 }
Garrick Evanse1f11c32020-05-21 16:54:06 +0900159
160 executable("patchpanel_client_fuzzer") {
161 configs += [
162 "//common-mk/common_fuzzer",
163 ":target_defaults",
164 ":fuzzing_config",
165 ]
166 sources = [ "client_fuzzer.cc" ]
167 deps = [
168 ":libpatchpanel",
169 ":libpatchpanel-client",
170 ]
171 }
Hugo Benichi1661ca02019-10-16 15:36:13 +0900172}
173
Garrick Evans428e4762018-12-11 15:18:42 +0900174if (use.test) {
175 pkg_config("test_config") {
Garrick Evans4b66f632019-01-24 15:09:16 +0900176 pkg_deps = [ "libchrome-test-${libbase_ver}" ]
Garrick Evans428e4762018-12-11 15:18:42 +0900177 }
178
Garrick Evansaa4a9ed2020-04-30 14:33:23 +0900179 executable("patchpanel_testrunner") {
Garrick Evans428e4762018-12-11 15:18:42 +0900180 sources = [
Garrick Evans0dbd4182019-03-07 08:38:38 +0900181 "address_manager_test.cc",
Garrick Evans54861622019-07-19 09:05:09 +0900182 "arc_service_test.cc",
Hugo Benichicc6850f2020-01-17 13:26:06 +0900183 "client_test.cc",
Garrick Evansf0ab7132019-06-18 14:50:42 +0900184 "datapath_test.cc",
Garrick Evans4b66f632019-01-24 15:09:16 +0900185 "mac_address_generator_test.cc",
Garrick Evans64a2df32018-12-12 16:53:46 +0900186 "minijailed_process_runner_test.cc",
Taoyu Liaa6238b2019-09-06 17:38:52 +0900187 "ndproxy_test.cc",
Hugo Benichi2ac4d072019-05-28 14:51:23 +0900188 "net_util_test.cc",
Hugo Benichi7d9d8db2020-03-30 15:56:56 +0900189 "routing_service_test.cc",
Garrick Evansf2e11f02018-12-25 15:25:39 +0900190 "shill_client_test.cc",
Garrick Evans4b66f632019-01-24 15:09:16 +0900191 "subnet_pool_test.cc",
192 "subnet_test.cc",
Garrick Evans428e4762018-12-11 15:18:42 +0900193 ]
Ayato Tokubidef23f12019-10-02 12:21:53 +0900194 configs += [
195 "//common-mk:test",
196 ":target_defaults",
197 ":test_config",
198 ]
Garrick Evans428e4762018-12-11 15:18:42 +0900199 defines = [ "UNIT_TEST" ]
200 deps = [
Hugo Benichicc6850f2020-01-17 13:26:06 +0900201 ":libpatchpanel-client",
Garrick Evansaa4a9ed2020-04-30 14:33:23 +0900202 ":libpatchpanel_test",
Garrick Evans4b66f632019-01-24 15:09:16 +0900203 "//common-mk/testrunner",
Garrick Evans428e4762018-12-11 15:18:42 +0900204 ]
205 }
206}