# Copyright 2016 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.

source_set("main") {
  sources = [
    "browser_view_information.h",
    "browser_view_wrangler.h",
    "browser_view_wrangler.mm",
    "main_coordinator.h",
    "main_coordinator.mm",
    "main_view_controller.h",
    "main_view_controller.mm",
  ]
  deps = [
    "//base",
    "//ios/chrome/browser",
    "//ios/chrome/browser/browser_state",
    "//ios/chrome/browser/browsing_data",
    "//ios/chrome/browser/browsing_data:browsing_data_internal",
    "//ios/chrome/browser/crash_report:crash_report_internal",
    "//ios/chrome/browser/device_sharing",
    "//ios/chrome/browser/physical_web",
    "//ios/chrome/browser/sessions",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/tabs:tabs_internal",
    "//ios/public/provider/chrome/browser",
  ]
  public_deps = [
    "//ios/chrome/browser/ui:ui_internal",
  ]
  libs = [ "UIKit.framework" ]
}

source_set("unit_tests") {
  configs += [ "//build/config/compiler:enable_arc" ]
  testonly = true
  sources = [
    "browser_view_wrangler_unittest.mm",
    "main_coordinator_unittest.mm",
    "main_view_controller_unittest.mm",
  ]
  deps = [
    ":main",
    "//base",
    "//components/bookmarks/test",
    "//ios/chrome/browser/bookmarks",
    "//ios/chrome/browser/browser_state:test_support",
    "//ios/chrome/browser/tabs",
    "//ios/chrome/browser/ui:ui_internal",
    "//ios/web:test_support",
    "//testing/gtest",
  ]
}
