| # Copyright 2020 The Chromium OS 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("//common-mk/deps.gni") |
| import("//common-mk/pkg_config.gni") |
| |
| group("all") { |
| deps = [ ":libshill-net" ] |
| if (use.fuzzer) { |
| deps += [ |
| ":arp_client_fuzzer", |
| ":nl80211_message_fuzzer", |
| ":rtnl_handler_fuzzer", |
| ] |
| } |
| if (use.test) { |
| deps += [ ":shill_net_test" ] |
| } |
| } |
| |
| pkg_config("target_defaults") { |
| cflags_cc = [ |
| "-fno-strict-aliasing", |
| "-Woverloaded-virtual", |
| "-Wno-missing-field-initializers", # for LAZY_INSTANCE_INITIALIZER |
| ] |
| cflags = [ |
| "-Wextra", |
| "-Werror", |
| "-Wno-unused-parameter", |
| ] |
| pkg_deps = [ "libchrome" ] |
| } |
| |
| write_deps("libshill-net_deps") { |
| pkg_deps = [] |
| target = "libshill-net" |
| } |
| |
| net_sources = [ |
| "../logging.cc", |
| "arp_client.cc", |
| "arp_packet.cc", |
| "attribute_list.cc", |
| "byte_string.cc", |
| "control_netlink_attribute.cc", |
| "event_history.cc", |
| "generic_netlink_message.cc", |
| "ieee80211.cc", |
| "io_handler_factory.cc", |
| "io_handler_factory_container.cc", |
| "io_input_handler.cc", |
| "io_ready_handler.cc", |
| "ip_address.cc", |
| "netlink_attribute.cc", |
| "netlink_fd.cc", |
| "netlink_manager.cc", |
| "netlink_message.cc", |
| "netlink_packet.cc", |
| "netlink_sock_diag.cc", |
| "netlink_socket.cc", |
| "nl80211_attribute.cc", |
| "nl80211_message.cc", |
| "rtnl_handler.cc", |
| "rtnl_listener.cc", |
| "rtnl_message.cc", |
| "shill_time.cc", |
| "sockets.cc", |
| ] |
| |
| shared_library("libshill-net") { |
| configs += [ ":target_defaults" ] |
| defines = [ "SLOG_MEANS_VLOG=1" ] |
| sources = net_sources |
| cflags_cc = [ |
| # for shill::Logging declarations |
| "-Wno-unused-variable", |
| "-Wno-unused-function", |
| ] |
| deps = [ ":${target_name}_deps" ] |
| } |
| |
| if (use.fuzzer) { |
| pkg_config("fuzzed_data_config") { |
| pkg_deps = [ "libchrome-test" ] |
| } |
| executable("arp_client_fuzzer") { |
| configs += [ |
| "//common-mk:test", |
| "//common-mk/common_fuzzer", |
| ":fuzzed_data_config", |
| ":target_defaults", |
| ] |
| sources = [ "arp_client_fuzzer.cc" ] |
| deps = [ ":libshill-net" ] |
| } |
| executable("nl80211_message_fuzzer") { |
| configs += [ |
| "//common-mk/common_fuzzer", |
| ":target_defaults", |
| ] |
| sources = [ "nl80211_message_fuzzer.cc" ] |
| deps = [ ":libshill-net" ] |
| } |
| executable("rtnl_handler_fuzzer") { |
| configs += [ |
| "//common-mk/common_fuzzer", |
| ":target_defaults", |
| ] |
| sources = [ "rtnl_handler_fuzzer.cc" ] |
| deps = [ ":libshill-net" ] |
| } |
| } |
| |
| if (use.test) { |
| pkg_config("shill_net_test_config") { |
| pkg_deps = [ "libchrome-test" ] |
| } |
| |
| executable("shill_net_test") { |
| configs += [ |
| "//common-mk:test", |
| ":shill_net_test_config", |
| ] |
| sources = [ |
| "../mock_log.cc", |
| "arp_client_test.cc", |
| "arp_packet_test.cc", |
| "attribute_list_test.cc", |
| "byte_string_test.cc", |
| "event_history_test.cc", |
| "ip_address_test.cc", |
| "netlink_attribute_test.cc", |
| "nl80211_message_test.cc", |
| "rtnl_handler_test.cc", |
| "rtnl_listener_test.cc", |
| "rtnl_message_test.cc", |
| "shill_time_test.cc", |
| ] |
| if (use.wifi) { |
| sources += [ |
| "netlink_manager_test.cc", |
| "netlink_message_test.cc", |
| "netlink_packet_test.cc", |
| "netlink_socket_test.cc", |
| "nl80211_attribute_test.cc", |
| ] |
| } |
| deps = [ |
| ":libshill-net", |
| "//common-mk/testrunner", |
| ] |
| } |
| } |