# Copyright 2014 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/config/chromeos/rules.gni")
import("//build/config/ui.gni")
import("//testing/libfuzzer/fuzzer_test.gni")
import("//testing/test.gni")
import("//third_party/protobuf/proto_library.gni")

assert(is_chromeos, "Non-Chrome-OS builds must not depend on //chromeos")

# Used by targets that compile into the implementation.
config("chromeos_implementation") {
  defines = [ "CHROMEOS_IMPLEMENTATION" ]
}

component("chromeos") {
  configs += [
    ":chromeos_implementation",
    "//build/config/linux/nss:system_nss_no_ssl_config"
  ]
  public_deps = [
    ":chromeos_constants",
    ":chromeos_export",
    ":login_event_recorder",
    ":policy_certificate_provider",
    ":tools",
    "//chromeos/cryptohome",
    "//chromeos/dbus",
    "//chromeos/login",
    "//chromeos/network",
    "//chromeos/settings",
    "//dbus",
  ]
  deps = [
    ":account_manager_proto",
    ":attestation_proto",
    ":authpolicy_proto",
    ":biod_proto",
    ":cicerone_proto",
    ":concierge_proto",
    ":cryptohome_proto",
    ":login_manager_proto",
    ":media_perception_proto",
    ":metrics_event_proto",
    ":oobe_config_proto",
    ":power_manager_proto",
    ":seneschal_proto",
    ":smbprovider_proto",
    ":vm_applications_apps_proto",
    "//base",
    "//base:i18n",
    "//base/third_party/dynamic_annotations",
    "//components/account_id",
    "//components/device_event_log",
    "//components/policy:cloud_policy_proto_generated_compile",
    "//components/policy/proto",
    "//components/pref_registry",
    "//components/prefs",
    "//components/user_manager",
    "//crypto:platform",
    "//google_apis",
    "//media/base:video_facing",
    "//services/network/public/cpp:cpp",
    "//third_party/protobuf:protobuf_lite",
    "//ui/gfx/geometry",  # For accelerometer.
  ]
  sources = [
    "accelerometer/accelerometer_reader.cc",
    "accelerometer/accelerometer_reader.h",
    "accelerometer/accelerometer_types.cc",
    "accelerometer/accelerometer_types.h",
    "account_manager/account_manager.cc",
    "account_manager/account_manager.h",
    "account_manager/account_manager_factory.cc",
    "account_manager/account_manager_factory.h",
    "app_mode/kiosk_oem_manifest_parser.cc",
    "app_mode/kiosk_oem_manifest_parser.h",
    "attestation/attestation_flow.cc",
    "attestation/attestation_flow.h",
    "audio/audio_device.cc",
    "audio/audio_device.h",
    "audio/audio_devices_pref_handler.h",
    "audio/audio_devices_pref_handler_impl.cc",
    "audio/audio_devices_pref_handler_impl.h",
    "audio/audio_devices_pref_handler_stub.cc",
    "audio/audio_devices_pref_handler_stub.h",
    "audio/audio_pref_observer.h",
    "audio/chromeos_sounds.h",
    "audio/cras_audio_handler.cc",
    "audio/cras_audio_handler.h",
    "disks/disk.cc",
    "disks/disk.h",
    "disks/disk_mount_manager.cc",
    "disks/disk_mount_manager.h",
    "disks/suspend_unmount_manager.cc",
    "disks/suspend_unmount_manager.h",
    "geolocation/geoposition.cc",
    "geolocation/geoposition.h",
    "geolocation/simple_geolocation_provider.cc",
    "geolocation/simple_geolocation_provider.h",
    "geolocation/simple_geolocation_request.cc",
    "geolocation/simple_geolocation_request.h",
    "geolocation/simple_geolocation_request_test_monitor.cc",
    "geolocation/simple_geolocation_request_test_monitor.h",
    "hugepage_text/hugepage_text.cc",
    "hugepage_text/hugepage_text.h",
    "policy/weekly_time/time_utils.cc",
    "policy/weekly_time/time_utils.h",
    "policy/weekly_time/weekly_time.cc",
    "policy/weekly_time/weekly_time.h",
    "policy/weekly_time/weekly_time_interval.cc",
    "policy/weekly_time/weekly_time_interval.h",
    "printing/ppd_cache.cc",
    "printing/ppd_cache.h",
    "printing/ppd_line_reader.cc",
    "printing/ppd_line_reader.h",
    "printing/ppd_provider.cc",
    "printing/ppd_provider.h",
    "printing/printer_configuration.cc",
    "printing/printer_configuration.h",
    "printing/printer_translator.cc",
    "printing/printer_translator.h",
    "printing/uri_components.cc",
    "printing/uri_components.h",
    "process_proxy/process_output_watcher.cc",
    "process_proxy/process_output_watcher.h",
    "process_proxy/process_proxy.cc",
    "process_proxy/process_proxy.h",
    "process_proxy/process_proxy_registry.cc",
    "process_proxy/process_proxy_registry.h",
    "system/cpu_temperature_reader.cc",
    "system/cpu_temperature_reader.h",
    "system/devicemode.cc",
    "system/devicemode.h",
    "system/devicetype.cc",
    "system/devicetype.h",
    "system/factory_ping_embargo_check.cc",
    "system/factory_ping_embargo_check.h",

    # Used when running mash, both on Linux and on real devices.
    "system/fake_statistics_provider.cc",
    "system/fake_statistics_provider.h",
    "system/name_value_pairs_parser.cc",
    "system/name_value_pairs_parser.h",
    "system/statistics_provider.cc",
    "system/statistics_provider.h",
    "timezone/timezone_provider.cc",
    "timezone/timezone_provider.h",
    "timezone/timezone_request.cc",
    "timezone/timezone_request.h",
    "timezone/timezone_resolver.cc",
    "timezone/timezone_resolver.h",
    "tpm/tpm_password_fetcher.cc",
    "tpm/tpm_password_fetcher.h",
    "tpm/tpm_token_info_getter.cc",
    "tpm/tpm_token_info_getter.h",
    "tpm/tpm_token_loader.cc",
    "tpm/tpm_token_loader.h",
  ]
  if (current_cpu == "arm" || current_cpu == "x86") {
    defines = [ "BINDER_IPC_32BIT" ]
  }
}

source_set("chromeos_export") {
  deps = [
    "//base",
  ]
  sources = [
    "chromeos_export.h",
  ]
}

source_set("chromeos_constants") {
  configs += [ ":chromeos_implementation" ]
  deps = [
    ":chromeos_export",
    "//base",
    "//base:i18n",
    "//chromeos/dbus:dbus_switches",
    "//third_party/icu",
  ]
  sources = [
    "chromeos_constants.cc",
    "chromeos_constants.h",
    "chromeos_features.cc",
    "chromeos_features.h",
    "chromeos_paths.cc",
    "chromeos_paths.h",
    "chromeos_pref_names.cc",
    "chromeos_pref_names.h",
    "chromeos_switches.cc",
    "chromeos_switches.h",
  ]
}

source_set("login_event_recorder") {
  configs += [ ":chromeos_implementation" ]
  deps = [
    ":chromeos_export",
    "//base",
  ]
  sources = [
    "login_event_recorder.cc",
    "login_event_recorder.h",
  ]
}

source_set("policy_certificate_provider") {
  configs += [ ":chromeos_implementation" ]
  deps = [
    ":chromeos_export",
    "//base",
  ]
  sources = [
    "policy_certificate_provider.h",
  ]
}

source_set("tools") {
  configs += [ ":chromeos_implementation" ]
  deps = [
    ":chromeos_export",
    "//base",
  ]
  sources = [
    "tools/variable_expander.cc",
    "tools/variable_expander.h",
  ]
}

# This must be a static library instead of a source set because some of the
# files pull in things with dependencies that aren't linked in all cases.
#
# TODO this should probably be changed such that it links in all cases and
# can be converted to a source set.
static_library("test_support") {
  testonly = true
  public_deps = [
    ":test_support_source_set",
  ]
}

source_set("test_support_source_set") {
  testonly = true
  public_deps = [
    ":attestation_proto",
    ":biod_proto",
    ":chromeos",
    ":cryptohome_proto",
    ":power_manager_proto",
    "//chromeos/dbus:test_support",
  ]
  deps = [
    "//components/account_id",
    "//google_apis",
    "//net:test_support",
    "//services/network:test_support",
    "//testing/gmock",
    "//testing/gtest",
  ]
  sources = [
    "attestation/mock_attestation_flow.cc",
    "attestation/mock_attestation_flow.h",
    "chromeos_test_utils.cc",
    "chromeos_test_utils.h",
    "cryptohome/mock_async_method_caller.cc",
    "cryptohome/mock_async_method_caller.h",
    "cryptohome/mock_homedir_methods.cc",
    "cryptohome/mock_homedir_methods.h",
    "disks/mock_disk_mount_manager.cc",
    "disks/mock_disk_mount_manager.h",
    "login/auth/fake_extended_authenticator.cc",
    "login/auth/fake_extended_authenticator.h",
    "login/auth/mock_auth_attempt_state_resolver.cc",
    "login/auth/mock_auth_attempt_state_resolver.h",
    "login/auth/mock_auth_status_consumer.cc",
    "login/auth/mock_auth_status_consumer.h",
    "login/auth/mock_url_fetchers.cc",
    "login/auth/mock_url_fetchers.h",
    "login/scoped_test_public_session_login_state.cc",
    "login/scoped_test_public_session_login_state.h",
    "network/fake_network_device_handler.cc",
    "network/fake_network_device_handler.h",
    "network/mock_managed_network_configuration_handler.cc",
    "network/mock_managed_network_configuration_handler.h",
    "network/mock_network_device_handler.cc",
    "network/mock_network_device_handler.h",
    "network/mock_network_state_handler.cc",
    "network/mock_network_state_handler.h",
    "network/network_state_test.cc",
    "network/network_state_test.h",
    "network/onc/onc_test_utils.cc",
    "network/onc/onc_test_utils.h",
    "network/portal_detector/mock_network_portal_detector.cc",
    "network/portal_detector/mock_network_portal_detector.h",
  ]
}

static_library("test_support_without_gmock") {
  testonly = true
  public_deps = [
    "//chromeos/dbus",
  ]
}

test("chromeos_unittests") {
  configs += [
    "//build/config/linux/dbus",
    "//build/config/linux/nss:system_nss_no_ssl_config",
  ]
  deps = [
    ":attestation_proto",
    ":authpolicy_proto",
    ":biod_proto",
    ":cryptohome_proto",
    ":oobe_config_proto",
    ":power_manager_proto",
    ":test_support",
    ":test_support_without_gmock",
    "//base/test:test_support",
    "//chromeos/cryptohome:unit_tests",
    "//chromeos/dbus:unit_tests",
    "//chromeos/login:unit_tests",
    "//chromeos/network:unit_tests",
    "//chromeos/services:unit_tests",
    "//chromeos/settings:unit_tests",
    "//components/account_id",
    "//components/onc",
    "//components/policy:generated",
    "//components/policy/proto",
    "//components/prefs:test_support",
    "//components/proxy_config",
    "//crypto",
    "//crypto:test_support",
    "//dbus:test_support",
    "//google_apis",
    "//media/base:video_facing",
    "//mojo/core/embedder",
    "//net",
    "//net:test_support",
    "//services/network:test_support",
    "//services/network/public/cpp",
    "//testing/gmock",
    "//testing/gtest",
    "//third_party/icu",
    "//url",
  ]
  sources = [
    "account_manager/account_manager_unittest.cc",
    "app_mode/kiosk_oem_manifest_parser_unittest.cc",
    "attestation/attestation_flow_unittest.cc",
    "audio/audio_devices_pref_handler_impl_unittest.cc",
    "audio/cras_audio_handler_unittest.cc",
    "disks/disk_mount_manager_unittest.cc",
    "disks/disk_unittest.cc",
    "disks/suspend_unmount_manager_unittest.cc",
    "geolocation/simple_geolocation_unittest.cc",
    "policy/weekly_time/time_utils_unittest.cc",
    "policy/weekly_time/weekly_time_interval_unittest.cc",
    "policy/weekly_time/weekly_time_unittest.cc",
    "printing/ppd_cache_unittest.cc",
    "printing/ppd_line_reader_unittest.cc",
    "printing/ppd_provider_unittest.cc",
    "printing/printer_configuration_unittest.cc",
    "printing/printer_translator_unittest.cc",
    "process_proxy/process_output_watcher_unittest.cc",
    "process_proxy/process_proxy_unittest.cc",
    "run_all_unittests.cc",
    "system/cpu_temperature_reader_unittest.cc",
    "system/factory_ping_embargo_check_unittest.cc",
    "system/name_value_pairs_parser_unittest.cc",
    "timezone/timezone_unittest.cc",
    "tools/variable_expander_unittest.cc",
    "tpm/tpm_token_info_getter_unittest.cc",
  ]

  data = [
    "test/data/",
  ]
}

# The following definitions only apply when building for a CrOS board (ie: not
# linux-chromeos). See the following for reference:
# https://chromium.googlesource.com/chromium/src/+/master/docs/chromeos_build_instructions.md
# https://chromium.googlesource.com/chromiumos/docs/+/master/simple_chrome_workflow.md
if (is_chromeos_chrome) {
  generate_vm_runner_script("cros_vm_launcher") {
    generated_script = "$root_build_dir/bin/launch_cros_vm"

    # Assume every time we build cros_vm_launcher, we also build chrome and
    # want to deploy it to the VM.
    deploy_chrome = true
  }

  # The sanity test's actual binary is baked into the vm image. All we need to
  # do is build the test wrapper and build our own browser to push to the VM
  # before testing it.
  generate_vm_runner_script("cros_vm_sanity_test") {
    testonly = true
    test_exe = "cros_vm_sanity_test"
    generated_script = "$root_build_dir/bin/run_cros_vm_sanity_test"
    runtime_deps_file = "$root_out_dir/cros_vm_sanity_test.runtime_deps"

    data_deps = [
      ":cros_chrome_deploy",
      "//:chromiumos_preflight",  # Builds the browser.
    ]
  }

  tast_test("chrome_login_tast_tests") {
    tast_tests = [
      "ui.ChromeLogin",
      "ui.ChromeCrashLoggedIn",
      "ui.ChromeCrashNotLoggedIn",
    ]
  }

  tast_test("chrome_all_tast_tests") {
    tast_conditional = "(!informational && !disabled && (\"dep:chrome\" || \"dep:chrome_login\"))"
  }

  group("cros_chrome_deploy") {
    # The following run-time dependencies are needed to deploy chrome to a
    # ChromeOS device. See the link for the full list:
    # https://codesearch.chromium.org/chromium/src/third_party/chromite/lib/chrome_util.py?l=341
    # Most of these are copy targets, for which GN doesn't add their outputs
    # as runtime-deps. See the link below for more details:
    # https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/reference.md#actions-and-copies
    data_deps = [
      "//chrome:xdg_mime",
      "//mojo/core:shared_library_arc32",
      "//mojo/core:shared_library_arc64",
    ]

    # TODO(bpastene): Figure out what's generating resources/chromeos/ and
    # declare it as a dep instead of adding the dir directly.
    data = [
      "$root_out_dir/resources/chromeos/",
    ]
  }
}

fuzzer_test("variable_expander_fuzzer") {
  sources = [
    "tools/variable_expander_fuzzer.cc",
  ]
  seed_corpus = "//chromeos/test/data/variable_expander/fuzzer_corpus"
  dict = "//chromeos/test/data/variable_expander/fuzzer.dict"
  deps = [
    ":chromeos",
    "//base/test:test_support",
  ]
}

proto_library("power_manager_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/power_manager/backlight.proto",
    "//third_party/cros_system_api/dbus/power_manager/idle.proto",
    "//third_party/cros_system_api/dbus/power_manager/input_event.proto",
    "//third_party/cros_system_api/dbus/power_manager/peripheral_battery_status.proto",
    "//third_party/cros_system_api/dbus/power_manager/policy.proto",
    "//third_party/cros_system_api/dbus/power_manager/power_supply_properties.proto",
    "//third_party/cros_system_api/dbus/power_manager/suspend.proto",
    "//third_party/cros_system_api/dbus/power_manager/switch_states.proto",
  ]

  proto_out_dir = "chromeos/dbus/power_manager"
}

proto_library("metrics_event_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/metrics_event/metrics_event.proto",
  ]

  proto_out_dir = "chromeos/dbus/metrics_event"
}

proto_library("attestation_proto") {
  sources = [
    "dbus/proto/attestation.proto",
  ]

  proto_out_dir = "chromeos/dbus/attestation"
}

proto_library("authpolicy_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/authpolicy/active_directory_info.proto",
  ]

  proto_out_dir = "chromeos/dbus/authpolicy"
}

proto_library("biod_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/biod/constants.proto",
    "//third_party/cros_system_api/dbus/biod/messages.proto",
  ]

  proto_out_dir = "chromeos/dbus/biod"
}

proto_library("cicerone_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/vm_cicerone/cicerone_service.proto",
  ]

  proto_out_dir = "chromeos/dbus/cicerone"
}

proto_library("concierge_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/vm_concierge/service.proto",
  ]

  proto_out_dir = "chromeos/dbus/concierge"
}

proto_library("cryptohome_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/cryptohome/key.proto",
    "//third_party/cros_system_api/dbus/cryptohome/rpc.proto",
  ]

  proto_out_dir = "chromeos/dbus/cryptohome"
}

proto_library("cryptohome_signkey_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/cryptohome/signed_secret.proto",
  ]

  proto_out_dir = "chromeos/dbus/cryptohome"
}

proto_library("login_manager_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/login_manager/arc.proto",
    "//third_party/cros_system_api/dbus/login_manager/policy_descriptor.proto",
  ]

  proto_out_dir = "chromeos/dbus/login_manager"
}

proto_library("media_perception_proto") {
  sources = [
    "dbus/proto/media_perception.proto",
  ]

  proto_out_dir = "chromeos/dbus/media_perception"
}

proto_library("oobe_config_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/oobe_config/oobe_config.proto",
  ]

  proto_out_dir = "chromeos/dbus/oobe_config"
}

proto_library("seneschal_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/seneschal/seneschal_service.proto",
  ]

  proto_out_dir = "chromeos/dbus/seneschal"
}

proto_library("smbprovider_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/smbprovider/directory_entry.proto",
  ]

  proto_out_dir = "chromeos/dbus/smbprovider"
}

proto_library("vm_applications_apps_proto") {
  sources = [
    "//third_party/cros_system_api/dbus/vm_applications/apps.proto",
  ]

  proto_out_dir = "chromeos/dbus/vm_applications"
}

proto_library("account_manager_proto") {
  sources = [
    "account_manager/tokens.proto",
  ]

  proto_out_dir = "chromeos/account_manager"
}
