#
# Copyright (C) 2015 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

{
  'target_defaults': {
    'variables': {
      'deps': [
        'dbus-1',
        'libtirpc',
        'libbrillo-<(libbase_ver)',
        'libchrome-<(libbase_ver)',
      ],
      'enable_exceptions': 1,
    },
    'cflags': [
      '-Wextra',
      '-Werror',
      '-Wno-unused-parameter',  # for pppd_plugin.c, base/tuple.h
    ],
    'cflags_cc': [
      '-fno-strict-aliasing',
      '-Woverloaded-virtual',
      '-Wno-missing-field-initializers',  # for LAZY_INSTANCE_INITIALIZER
    ],
    'defines': [
      'RUNDIR="/run/shill"',
      'SHIMDIR="<(libdir)/shill/shims"',
    ],
    'conditions': [
      ['USE_cellular == 0', {
        'defines': [
          'DISABLE_CELLULAR',
        ],
      }],
      ['USE_dhcpv6 == 0', {
        'defines': [
          'DISABLE_DHCPV6',
        ],
      }],
      ['USE_json_store == 1', {
        'defines': [
          'ENABLE_JSON_STORE',
        ],
      }],
      ['USE_pppoe == 0', {
        'defines': [
          'DISABLE_PPPOE',
        ],
      }],
      ['USE_vpn == 0', {
        'defines': [
          'DISABLE_VPN',
        ],
      }],
      ['USE_wake_on_wifi == 0', {
        'defines': [
          'DISABLE_WAKE_ON_WIFI',
        ],
      }],
      ['USE_wifi == 0', {
        'defines': [
          'DISABLE_WIFI',
        ],
      }],
      ['USE_wimax == 0', {
        'defines': [
          'DISABLE_WIMAX',
        ],
      }],
      ['USE_wired_8021x == 0', {
        'defines': [
          'DISABLE_WIRED_8021X',
        ],
      }],
    ],
    'include_dirs': [
      # We need this include dir because we include all the local code as
      # # "shill/...".
      '<(platform2_root)/../aosp/system/connectivity',
    ],
  },
  'includes': [
    'shill.gypi',
  ],
  'targets': [
    {
      'target_name': 'mobile_operator_db-protos',
      'type': 'static_library',
      'variables': {
        'proto_in_dir': 'mobile_operator_db',
        'proto_out_dir':
            'include/shill/mobile_operator_db'
      },
      'sources': [
        '<(proto_in_dir)/mobile_operator_db.proto'
      ],
      'includes': ['../../../../platform2/common-mk/protoc.gypi'],
    },
    {
      'target_name': 'mobile_operator_db-db',
      'type': 'none',
      'variables' : {
        'protoc_proto_dir': 'mobile_operator_db',
        'protoc_proto_def': 'mobile_operator_db.proto',
        'protoc_text_dir': 'mobile_operator_db',
        'protoc_bin_dir': '<(PRODUCT_DIR)',
        'protoc_message_name': 'shill.mobile_operator_db.MobileOperatorDB',
      },
      'sources': [
        '<(protoc_text_dir)/serviceproviders.prototxt',
      ],
      'includes': ['../../../../platform2/common-mk/protoctxt.gypi'],
    },
    {
      'target_name': 'mobile_operator_db',
      'type': 'static_library',
      'dependencies': [
        'mobile_operator_db-protos',
        'mobile_operator_db-db',
      ],
    },
    {
      'target_name': 'shill-chromeos-dbus-adaptors',
      'type': 'none',
      'variables': {
        'dbus_adaptors_out_dir': 'include/dbus_bindings',
        'dbus_xml_extension': 'dbus-xml',
      },
      'sources': [
        'dbus_bindings/org.chromium.flimflam.Device.dbus-xml',
        'dbus_bindings/org.chromium.flimflam.IPConfig.dbus-xml',
        'dbus_bindings/org.chromium.flimflam.Manager.dbus-xml',
        'dbus_bindings/org.chromium.flimflam.Profile.dbus-xml',
        'dbus_bindings/org.chromium.flimflam.Service.dbus-xml',
        'dbus_bindings/org.chromium.flimflam.Task.dbus-xml',
        'dbus_bindings/org.chromium.flimflam.ThirdPartyVpn.dbus-xml',
      ],
      'includes': ['../../../../platform2/common-mk/generate-dbus-adaptors.gypi'],
    },
    {
      'target_name': 'shim-protos',
      'type': 'static_library',
      'variables': {
        'proto_in_dir': 'shims/protos',
        'proto_out_dir': 'include/shill/shims/protos',
      },
      'sources': [
        '<(proto_in_dir)/crypto_util.proto',
      ],
      'includes': ['../../../../platform2/common-mk/protoc.gypi'],
    },
    {
      'target_name': 'libshill-net-<(libbase_ver)',
      'type': 'shared_library',
      'cflags_cc': [
        # for shill::Logging declarations
        '-Wno-unused-variable',
        '-Wno-unused-function',
      ],
      'defines': [
        'SLOG_MEANS_VLOG=1',
      ],
      'sources': [
        'net/arp_client.cc',
        'net/arp_packet.cc',
        'net/attribute_list.cc',
        'net/byte_string.cc',
        'net/control_netlink_attribute.cc',
        'net/event_history.cc',
        'net/generic_netlink_message.cc',
        'net/io_handler_factory.cc',
        'net/io_handler_factory_container.cc',
        'net/io_input_handler.cc',
        'net/io_ready_handler.cc',
        'net/ip_address.cc',
        'net/netlink_attribute.cc',
        'net/netlink_fd.cc',
        'net/netlink_manager.cc',
        'net/netlink_message.cc',
        'net/netlink_packet.cc',
        'net/netlink_socket.cc',
        'net/nl80211_attribute.cc',
        'net/nl80211_message.cc',
        'net/rtnl_handler.cc',
        'net/rtnl_listener.cc',
        'net/rtnl_message.cc',
        'net/shill_time.cc',
        'net/sockets.cc',
      ],
      'includes': ['../../../../platform2/common-mk/deps.gypi'],
    },
    {
      'target_name': 'libshill',
      'type': 'static_library',
      'dependencies': [
        'mobile_operator_db',
        'shill-chromeos-dbus-adaptors',
        'shim-protos',
      ],
      'variables': {
        'exported_deps': [
          'libcares',
          'libmetrics-<(libbase_ver)',
          'libpasswordprovider',
          'libpower_manager-client',
          'protobuf-lite',
        ],
        'deps': [
          '<@(exported_deps)',
          'libshill-client',
        ],
      },
      'all_dependent_settings': {
        'variables': {
          'deps': [
            '<@(exported_deps)',
          ],
        },
      },
      'link_settings': {
        'variables': {
          'deps': [
            'libcares',
            # system_api depends on protobuf (or protobuf-lite). It must appear
            # before protobuf here or the linker flags won't be in the right
            # order.
            'system_api',
            'protobuf-lite',
          ],
        },
        'libraries': [
          '-lbootstat',
          '-lpolicy-<(libbase_ver)',
          '-lrootdev',
          '-lrt'
        ],
      },
      'conditions': [
        ['USE_cellular == 1', {
          'variables': {
            'deps': [
              'ModemManager',
            ],
          },
          'sources': [
            'cellular/cellular.cc',
            'cellular/cellular_bearer.cc',
            'cellular/cellular_capability.cc',
            'cellular/cellular_capability_cdma.cc',
            'cellular/cellular_capability_classic.cc',
            'cellular/cellular_capability_gsm.cc',
            'cellular/cellular_capability_universal.cc',
            'cellular/cellular_capability_universal_cdma.cc',
            'cellular/cellular_error.cc',
            'cellular/cellular_error_mm1.cc',
            'cellular/cellular_service.cc',
            'cellular/mobile_operator_info.cc',
            'cellular/mobile_operator_info_impl.cc',
            'cellular/modem.cc',
            'cellular/modem_1.cc',
            'cellular/modem_classic.cc',
            'cellular/modem_info.cc',
            'cellular/modem_manager.cc',
            'cellular/modem_manager_1.cc',
            'cellular/out_of_credits_detector.cc',
            'cellular/subscription_state_out_of_credits_detector.cc',
            'dbus/chromeos_dbus_objectmanager_proxy.cc',
            'dbus/chromeos_dbus_properties_proxy.cc',
            'dbus/chromeos_mm1_modem_location_proxy.cc',
            'dbus/chromeos_mm1_modem_modem3gpp_proxy.cc',
            'dbus/chromeos_mm1_modem_modemcdma_proxy.cc',
            'dbus/chromeos_mm1_modem_proxy.cc',
            'dbus/chromeos_mm1_modem_simple_proxy.cc',
            'dbus/chromeos_mm1_sim_proxy.cc',
            'dbus/chromeos_modem_cdma_proxy.cc',
            'dbus/chromeos_modem_gobi_proxy.cc',
            'dbus/chromeos_modem_gsm_card_proxy.cc',
            'dbus/chromeos_modem_gsm_network_proxy.cc',
            'dbus/chromeos_modem_manager_proxy.cc',
            'dbus/chromeos_modem_proxy.cc',
            'dbus/chromeos_modem_simple_proxy.cc',
            'protobuf_lite_streams.cc',
          ],
          'actions': [
            {
              'action_name': 'generate-cellular-proxies',
              'variables': {
                'proxy_output_file': 'include/cellular/dbus-proxies.h',
                'modemmanager_in_dir': '<(sysroot)/usr/share/dbus-1/interfaces/',
              },
              'sources': [
                'dbus_bindings/dbus-objectmanager.dbus-xml',
                'dbus_bindings/dbus-properties.dbus-xml',
                'dbus_bindings/modem-gobi.dbus-xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager.Modem.Cdma.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager.Modem.Gsm.Card.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager.Modem.Gsm.Network.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager.Modem.Simple.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager.Modem.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager1.Modem.Location.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager1.Modem.Modem3gpp.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager1.Modem.ModemCdma.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager1.Modem.Simple.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager1.Modem.xml',
                '<(modemmanager_in_dir)/org.freedesktop.ModemManager1.Sim.xml',
              ],
              'includes': ['../../../../platform2/common-mk/generate-dbus-proxies.gypi'],
            },
          ],
        }],
        ['USE_json_store == 0', {
          'link_settings': {
            'variables': {
              'deps': [
                'glib-2.0',  # for g_key_*(), etc.
              ],
            },
          },
          'sources': [
            'key_file_store.cc',
          ],
          'variables': {
            'exported_deps': [
              'glib-2.0',  # for g_key_*(), etc.
            ],
            'deps': ['<@(exported_deps)'],
          },
        }],
        ['USE_json_store == 1', {
          'sources': [
            'json_store.cc',
          ],
        }],
        ['USE_vpn == 1', {
          'sources': [
            'vpn/arc_vpn_driver.cc',
            'vpn/l2tp_ipsec_driver.cc',
            'vpn/openvpn_driver.cc',
            'vpn/openvpn_management_server.cc',
            'vpn/third_party_vpn_driver.cc',
          ],
        }],
        ['USE_wifi == 1', {
          'sources': [
            'wifi/callback80211_metrics.cc',
            'wifi/mac80211_monitor.cc',
            'wifi/tdls_manager.cc',
            'wifi/wake_on_wifi.cc',
            'wifi/wifi.cc',
            'wifi/wifi_endpoint.cc',
            'wifi/wifi_provider.cc',
            'wifi/wifi_service.cc',
          ],
        }],
        ['USE_wifi == 1 or USE_wired_8021x == 1', {
          'sources': [
            'dbus/chromeos_supplicant_bss_proxy.cc',
            'dbus/chromeos_supplicant_interface_proxy.cc',
            'dbus/chromeos_supplicant_network_proxy.cc',
            'dbus/chromeos_supplicant_process_proxy.cc',
            'eap_credentials.cc',
            'eap_listener.cc',
            'supplicant/supplicant_eap_state_handler.cc',
            'supplicant/wpa_supplicant.cc',
          ],
          'actions': [
            {
              'action_name': 'generate-supplicant-proxies',
              'variables': {
                'proxy_output_file': 'include/supplicant/dbus-proxies.h',
              },
              'sources': [
                'dbus_bindings/supplicant-bss.dbus-xml',
                'dbus_bindings/supplicant-interface.dbus-xml',
                'dbus_bindings/supplicant-network.dbus-xml',
                'dbus_bindings/supplicant-process.dbus-xml',
              ],
              'includes': ['../../../../platform2/common-mk/generate-dbus-proxies.gypi'],
            },
          ],
        }],
        ['USE_wimax == 1', {
          'variables': {
            'exported_deps': [
              'libwimax_manager-client',
            ],
            'deps': ['<@(exported_deps)'],
          },
          'all_dependent_settings': {
            'variables': {
              'deps': [
                '<@(exported_deps)',
              ],
            },
          },
          'sources': [
            'dbus/chromeos_wimax_device_proxy.cc',
            'dbus/chromeos_wimax_manager_proxy.cc',
            'dbus/chromeos_wimax_network_proxy.cc',
            'wimax/wimax.cc',
            'wimax/wimax_provider.cc',
            'wimax/wimax_service.cc',
          ],
        }],
        ['USE_wired_8021x == 1', {
          'sources': [
            'ethernet/ethernet_eap_provider.cc',
            'ethernet/ethernet_eap_service.cc',
          ],
        }],
        ['USE_dhcpv6 == 1', {
          'sources': [
            'dhcp/dhcpv6_config.cc',
          ],
        }],
      ],
      'sources': [
        'active_link_monitor.cc',
        'async_connection.cc',
        'certificate_file.cc',
        'connection.cc',
        'connection_diagnostics.cc',
        'connection_health_checker.cc',
        'connection_info.cc',
        'connection_info_reader.cc',
        'connection_tester.cc',
        'connectivity_trial.cc',
        'crypto_des_cbc.cc',
        'crypto_provider.cc',
        'crypto_rot47.cc',
        'crypto_util_proxy.cc',
        'daemon_task.cc',
        'dbus/chromeos_dbus_adaptor.cc',
        'dbus/chromeos_dbus_control.cc',
        'dbus/chromeos_dbus_service_watcher.cc',
        'dbus/chromeos_device_dbus_adaptor.cc',
        'dbus/chromeos_dhcpcd_listener.cc',
        'dbus/chromeos_dhcpcd_proxy.cc',
        'dbus/chromeos_ipconfig_dbus_adaptor.cc',
        'dbus/chromeos_manager_dbus_adaptor.cc',
        'dbus/chromeos_power_manager_proxy.cc',
        'dbus/chromeos_profile_dbus_adaptor.cc',
        'dbus/chromeos_rpc_task_dbus_adaptor.cc',
        'dbus/chromeos_service_dbus_adaptor.cc',
        'dbus/chromeos_third_party_vpn_dbus_adaptor.cc',
        'dbus/chromeos_upstart_proxy.cc',
        'dbus/dbus_service_watcher_factory.cc',
        'default_profile.cc',
        'device.cc',
        'device_claimer.cc',
        'device_id.cc',
        'device_info.cc',
        'dhcp/dhcp_config.cc',
        'dhcp/dhcp_properties.cc',
        'dhcp/dhcp_provider.cc',
        'dhcp/dhcpv4_config.cc',
        'dns_client.cc',
        'dns_client_factory.cc',
        'dns_server_tester.cc',
        'dns_util.cc',
        'ephemeral_profile.cc',
        'error.cc',
        'ethernet/ethernet.cc',
        'ethernet/ethernet_service.cc',
        'ethernet/ethernet_temporary_service.cc',
        'ethernet/virtio_ethernet.cc',
        'event_dispatcher.cc',
        'external_task.cc',
        'file_io.cc',
        'file_reader.cc',
        'geolocation_info.cc',
        'hook_table.cc',
        'http_request.cc',
        'http_url.cc',
        'icmp.cc',
        'icmp_session.cc',
        'icmp_session_factory.cc',
        'ip_address_store.cc',
        'ipconfig.cc',
        'key_value_store.cc',
        'link_monitor.cc',
        'logging.cc',
        'manager.cc',
        'metrics.cc',
        'net/arp_client.cc',
        'net/arp_packet.cc',
        'net/attribute_list.cc',
        'net/byte_string.cc',
        'net/control_netlink_attribute.cc',
        'net/event_history.cc',
        'net/generic_netlink_message.cc',
        'net/io_handler_factory.cc',
        'net/io_handler_factory_container.cc',
        'net/io_input_handler.cc',
        'net/io_ready_handler.cc',
        'net/ip_address.cc',
        'net/netlink_attribute.cc',
        'net/netlink_fd.cc',
        'net/netlink_manager.cc',
        'net/netlink_message.cc',
        'net/netlink_packet.cc',
        'net/netlink_socket.cc',
        'net/nl80211_attribute.cc',
        'net/nl80211_message.cc',
        'net/rtnl_handler.cc',
        'net/rtnl_listener.cc',
        'net/rtnl_message.cc',
        'net/shill_time.cc',
        'net/sockets.cc',
        'passive_link_monitor.cc',
        'pending_activation_store.cc',
        'portal_detector.cc',
        'power_manager.cc',
        'ppp_daemon.cc',
        'ppp_device.cc',
        'ppp_device_factory.cc',
        'pppoe/pppoe_service.cc',
        'process_manager.cc',
        'profile.cc',
        'property_store.cc',
        'resolver.cc',
        'result_aggregator.cc',
        'routing_table.cc',
        'rpc_task.cc',
        'scope_logger.cc',
        'scoped_umask.cc',
        'service.cc',
        'shill_ares.cc',
        'shill_config.cc',
        'shill_daemon.cc',
        'shill_test_config.cc',
        'socket_info.cc',
        'socket_info_reader.cc',
        'static_ip_parameters.cc',
        'technology.cc',
        'tethering.cc',
        'throttler.cc',
        'traffic_monitor.cc',
        'upstart/upstart.cc',
        'virtual_device.cc',
        'vpn/vpn_driver.cc',
        'vpn/vpn_provider.cc',
        'vpn/vpn_service.cc',
      ],
      'actions': [
        {
          'action_name': 'generate-dhcpcd-proxies',
          'variables': {
            'proxy_output_file': 'include/dhcpcd/dbus-proxies.h',
          },
          'sources': [
            'dbus_bindings/dhcpcd.dbus-xml',
          ],
          'includes': ['../../../../platform2/common-mk/generate-dbus-proxies.gypi'],
        },
        {
          'action_name': 'generate-upstart-proxies',
          'variables': {
            'proxy_output_file': 'include/upstart/dbus-proxies.h',
          },
          'sources': [
            'dbus_bindings/upstart.dbus-xml',
          ],
          'includes': ['../../../../platform2/common-mk/generate-dbus-proxies.gypi'],
        },
      ],
    },
    {
      'target_name': 'shill',
      'type': 'executable',
      'dependencies': ['libshill'],
      'variables': {
        'deps': [
          'libminijail',
        ],
      },
      'sources': [
        'shill_main.cc',
      ]
    },
    {
      'target_name': 'crypto-util',
      'type': 'executable',
      'dependencies': ['shim-protos'],
      'variables': {
        'deps': [
          'openssl',
          'protobuf-lite',
        ],
      },
      'sources': [
        'shims/crypto_util.cc',
      ]
    },
    {
      'target_name': 'netfilter-queue-helper',
      'type': 'executable',
      'variables': {
        'deps': [
          'libnetfilter_queue',
          'libnfnetlink',
        ],
      },
      'sources': [
        'shims/netfilter_queue_helper.cc',
        'shims/netfilter_queue_processor.cc',
      ]
    },
    {
      'target_name': 'openvpn-script',
      'type': 'executable',
      'variables': {
        'deps': [
          'libshill-client',
        ],
      },
      'sources': [
        'shims/environment.cc',
        'shims/openvpn_script.cc',
        'shims/task_proxy.cc',
      ]
    },
  ],
  'conditions': [
    ['USE_cellular == 1', {
      'targets': [
        {
          'target_name': 'set-apn-helper',
          'type': 'executable',
          'variables': {
            'deps': [
              'dbus-glib-1'
            ]
          },
          'sources': [
            'shims/set_apn_helper.c',
          ],
        },
      ],
    }],
    ['USE_cellular == 1 or USE_vpn == 1 or USE_pppoe == 1', {
      'targets': [
        {
          'target_name': 'shill-pppd-plugin',
          'type': 'shared_library',
          'variables': {
            'deps': [
              'libshill-client',
            ],
          },
          'sources': [
            'shims/c_ppp.cc',
            'shims/environment.cc',
            'shims/ppp.cc',
            'shims/pppd_plugin.c',
            'shims/task_proxy.cc',
          ],
        },
      ],
    }],
    ['USE_fuzzer == 1', {
      'targets': [
        {
          'target_name': 'rtnl_handler_fuzzer',
          'type': 'executable',
          'dependencies': [
            'libshill',
          ],
          'includes': ['../../../../platform2/common-mk/common_fuzzer.gypi'],
          'sources': [
            'net/rtnl_handler_fuzzer.cc',
          ],
        },
      ],
    }],
    ['USE_test == 1', {
      'targets': [
        {
          'target_name': 'shill_unittest',
          'type': 'executable',
          'dependencies': [
            'libshill',
          ],
          'includes': ['../../../../platform2/common-mk/common_test.gypi'],
          'variables': {
            'deps': [
              'libchrome-test-<(libbase_ver)',
              'libnetfilter_queue',
              'libnfnetlink',
              'libminijail',
            ],
          },
          'defines': [
            'SYSROOT="<(sysroot)"',
          ],
          'sources': [
            'active_link_monitor_unittest.cc',
            'async_connection_unittest.cc',
            'certificate_file_unittest.cc',
            'connection_diagnostics_unittest.cc',
            'connection_health_checker_unittest.cc',
            'connection_info_reader_unittest.cc',
            'connection_info_unittest.cc',
            'connection_tester_unittest.cc',
            'connection_unittest.cc',
            'connectivity_trial_unittest.cc',
            'crypto_des_cbc_unittest.cc',
            'crypto_provider_unittest.cc',
            'crypto_rot47_unittest.cc',
            'crypto_util_proxy_unittest.cc',
            'daemon_task_unittest.cc',
            'dbus/chromeos_dbus_adaptor_unittest.cc',
            'dbus/chromeos_manager_dbus_adaptor_unittest.cc',
            'default_profile_unittest.cc',
            'device_claimer_unittest.cc',
            'device_info_unittest.cc',
            'device_unittest.cc',
            'dhcp/dhcp_config_unittest.cc',
            'dhcp/dhcp_properties_unittest.cc',
            'dhcp/dhcp_provider_unittest.cc',
            'dhcp/dhcpv4_config_unittest.cc',
            'dhcp/mock_dhcp_config.cc',
            'dhcp/mock_dhcp_properties.cc',
            'dhcp/mock_dhcp_provider.cc',
            'dhcp/mock_dhcp_proxy.cc',
            'dns_client_unittest.cc',
            'dns_server_tester_unittest.cc',
            'dns_util_unittest.cc',
            'error_unittest.cc',
            'ethernet/ethernet_service_unittest.cc',
            'ethernet/ethernet_unittest.cc',
            'ethernet/mock_ethernet.cc',
            'ethernet/mock_ethernet_service.cc',
            'external_task_unittest.cc',
            'fake_store.cc',
            'file_reader_unittest.cc',
            'hook_table_unittest.cc',
            'http_request_unittest.cc',
            'http_url_unittest.cc',
            'icmp_unittest.cc',
            'icmp_session_unittest.cc',
            'ip_address_store_unittest.cc',
            'ipconfig_unittest.cc',
            'key_value_store_unittest.cc',
            'link_monitor_unittest.cc',
            'manager_unittest.cc',
            'metrics_unittest.cc',
            'mock_active_link_monitor.cc',
            'mock_adaptors.cc',
            'mock_ares.cc',
            'mock_async_connection.cc',
            'mock_certificate_file.cc',
            'mock_connection.cc',
            'mock_connection_health_checker.cc',
            'mock_connection_info_reader.cc',
            'mock_connectivity_trial.cc',
            'mock_control.cc',
            'mock_crypto_util_proxy.cc',
            'mock_device.cc',
            'mock_device_claimer.cc',
            'mock_device_info.cc',
            'mock_dns_client.cc',
            'mock_dns_client_factory.cc',
            'mock_dns_server_tester.cc',
            'mock_event_dispatcher.cc',
            'mock_external_task.cc',
            'mock_http_request.cc',
            'mock_icmp.cc',
            'mock_icmp_session.cc',
            'mock_icmp_session_factory.cc',
            'mock_ip_address_store.cc',
            'mock_ipconfig.cc',
            'mock_link_monitor.cc',
            'mock_log.cc',
            'mock_log_unittest.cc',
            'mock_manager.cc',
            'mock_metrics.cc',
            'mock_passive_link_monitor.cc',
            'mock_pending_activation_store.cc',
            'mock_portal_detector.cc',
            'mock_power_manager.cc',
            'mock_power_manager_proxy.cc',
            'mock_ppp_device.cc',
            'mock_ppp_device_factory.cc',
            'mock_process_manager.cc',
            'mock_profile.cc',
            'mock_property_store.cc',
            'mock_resolver.cc',
            'mock_routing_table.cc',
            'mock_service.cc',
            'mock_socket_info_reader.cc',
            'mock_store.cc',
            'mock_throttler.cc',
            'mock_traffic_monitor.cc',
            'mock_virtual_device.cc',
            'net/arp_client_test_helper.cc',
            'net/arp_client_unittest.cc',
            'net/arp_packet_unittest.cc',
            'net/attribute_list_unittest.cc',
            'net/byte_string_unittest.cc',
            'net/event_history_unittest.cc',
            'net/ip_address_unittest.cc',
            'net/mock_arp_client.cc',
            'net/netlink_attribute_unittest.cc',
            'net/rtnl_handler_unittest.cc',
            'net/rtnl_listener_unittest.cc',
            'net/rtnl_message_unittest.cc',
            'net/shill_time_unittest.cc',
            'nice_mock_control.cc',
            'passive_link_monitor_unittest.cc',
            'pending_activation_store_unittest.cc',
            'portal_detector_unittest.cc',
            'power_manager_unittest.cc',
            'ppp_daemon_unittest.cc',
            'ppp_device_unittest.cc',
            'pppoe/pppoe_service_unittest.cc',
            'process_manager_unittest.cc',
            'profile_unittest.cc',
            'property_accessor_unittest.cc',
            'property_store_unittest.cc',
            'resolver_unittest.cc',
            'result_aggregator_unittest.cc',
            'routing_table_unittest.cc',
            'rpc_task_unittest.cc',
            'scope_logger_unittest.cc',
            'service_property_change_test.cc',
            'service_under_test.cc',
            'service_unittest.cc',
            'shims/netfilter_queue_processor.cc',
            'shims/netfilter_queue_processor_unittest.cc',
            'socket_info_reader_unittest.cc',
            'socket_info_unittest.cc',
            'static_ip_parameters_unittest.cc',
            'technology_unittest.cc',
            'testrunner.cc',
            'throttler_unittest.cc',
            'traffic_monitor_unittest.cc',
            'upstart/mock_upstart.cc',
            'upstart/mock_upstart_proxy.cc',
            'upstart/upstart_unittest.cc',
            'virtual_device_unittest.cc',
            'vpn/mock_vpn_provider.cc',
          ],
          'conditions': [
            ['USE_cellular == 1', {
              'variables': {
                'deps': [
                  'ModemManager',
                ],
              },
              'sources': [
                'cellular/cellular_bearer_unittest.cc',
                'cellular/cellular_capability_cdma_unittest.cc',
                'cellular/cellular_capability_classic_unittest.cc',
                'cellular/cellular_capability_gsm_unittest.cc',
                'cellular/cellular_capability_universal_cdma_unittest.cc',
                'cellular/cellular_capability_universal_unittest.cc',
                'cellular/cellular_error_unittest.cc',
                'cellular/cellular_service_unittest.cc',
                'cellular/cellular_unittest.cc',
                'cellular/mobile_operator_info_unittest.cc',
                'cellular/mock_cellular.cc',
                'cellular/mock_cellular_service.cc',
                'cellular/mock_dbus_objectmanager_proxy.cc',
                'cellular/mock_mm1_modem_location_proxy.cc',
                'cellular/mock_mm1_modem_modem3gpp_proxy.cc',
                'cellular/mock_mm1_modem_modemcdma_proxy.cc',
                'cellular/mock_mm1_modem_proxy.cc',
                'cellular/mock_mm1_modem_simple_proxy.cc',
                'cellular/mock_mm1_sim_proxy.cc',
                'cellular/mock_mobile_operator_info.cc',
                'cellular/mock_modem.cc',
                'cellular/mock_modem_cdma_proxy.cc',
                'cellular/mock_modem_gobi_proxy.cc',
                'cellular/mock_modem_gsm_card_proxy.cc',
                'cellular/mock_modem_gsm_network_proxy.cc',
                'cellular/mock_modem_info.cc',
                'cellular/mock_modem_manager_proxy.cc',
                'cellular/mock_modem_proxy.cc',
                'cellular/mock_modem_simple_proxy.cc',
                'cellular/mock_out_of_credits_detector.cc',
                'cellular/modem_1_unittest.cc',
                'cellular/modem_info_unittest.cc',
                'cellular/modem_manager_unittest.cc',
                'cellular/modem_unittest.cc',
                'cellular/subscription_state_out_of_credits_detector_unittest.cc',
                'mock_dbus_properties_proxy.cc',
              ],
            }],
            ['USE_dhcpv6 == 1', {
              'sources': [
                'dhcp/dhcpv6_config_unittest.cc',
              ],
            }],
            ['USE_json_store == 0', {
              'sources': [
                'key_file_store_unittest.cc',
              ],
            }],
            ['USE_json_store == 1', {
              'sources': [
                'json_store_unittest.cc',
              ],
            }],
            ['USE_vpn == 1', {
              'sources': [
                'shims/environment.cc',
                'shims/environment_unittest.cc',
                'vpn/arc_vpn_driver_unittest.cc',
                'vpn/l2tp_ipsec_driver_unittest.cc',
                'vpn/mock_openvpn_driver.cc',
                'vpn/mock_openvpn_management_server.cc',
                'vpn/mock_vpn_driver.cc',
                'vpn/mock_vpn_service.cc',
                'vpn/openvpn_driver_unittest.cc',
                'vpn/openvpn_management_server_unittest.cc',
                'vpn/third_party_vpn_driver_unittest.cc',
                'vpn/vpn_driver_unittest.cc',
                'vpn/vpn_provider_unittest.cc',
                'vpn/vpn_service_unittest.cc',
              ],
            }],
            ['USE_wifi == 1', {
              'sources': [
                'net/netlink_manager_unittest.cc',
                'net/netlink_message_unittest.cc',
                'net/netlink_packet_unittest.cc',
                'net/netlink_socket_unittest.cc',
                'net/nl80211_attribute_unittest.cc',
                'supplicant/mock_supplicant_bss_proxy.cc',
                'wifi/callback80211_metrics_unittest.cc',
                'wifi/mac80211_monitor_unittest.cc',
                'wifi/mock_mac80211_monitor.cc',
                'wifi/mock_tdls_manager.cc',
                'wifi/mock_wake_on_wifi.cc',
                'wifi/mock_wifi.cc',
                'wifi/mock_wifi_provider.cc',
                'wifi/mock_wifi_service.cc',
                'wifi/tdls_manager_unittest.cc',
                'wifi/wake_on_wifi_unittest.cc',
                'wifi/wifi_endpoint_unittest.cc',
                'wifi/wifi_provider_unittest.cc',
                'wifi/wifi_service_unittest.cc',
                'wifi/wifi_unittest.cc',
              ],
            }],
            ['USE_wifi == 1 or USE_wired_8021x == 1', {
              'sources': [
                'eap_credentials_unittest.cc',
                'eap_listener_unittest.cc',
                'mock_eap_credentials.cc',
                'mock_eap_listener.cc',
                'supplicant/mock_supplicant_eap_state_handler.cc',
                'supplicant/mock_supplicant_interface_proxy.cc',
                'supplicant/mock_supplicant_network_proxy.cc',
                'supplicant/mock_supplicant_process_proxy.cc',
                'supplicant/supplicant_eap_state_handler_unittest.cc',
                'supplicant/wpa_supplicant_unittest.cc',
              ],
            }],
            ['USE_wimax == 1', {
              'sources': [
                'wimax/mock_wimax.cc',
                'wimax/mock_wimax_device_proxy.cc',
                'wimax/mock_wimax_manager_proxy.cc',
                'wimax/mock_wimax_network_proxy.cc',
                'wimax/mock_wimax_provider.cc',
                'wimax/mock_wimax_service.cc',
                'wimax/wimax_provider_unittest.cc',
                'wimax/wimax_service_unittest.cc',
                'wimax/wimax_unittest.cc',
              ],
            }],
            ['USE_wired_8021x == 1', {
              'sources': [
                'ethernet/ethernet_eap_provider_unittest.cc',
                'ethernet/ethernet_eap_service_unittest.cc',
                'ethernet/mock_ethernet_eap_provider.cc',
              ],
            }],
          ],
        },
        {
          'target_name': 'shill_setup_wifi',
          'type': 'executable',
          'variables': {
            'deps': [
              'libshill-client',
            ],
          },
          'sources': [
            'setup_wifi/main.cc'
          ],
        },
      ],
    }],
  ],
}
