# Copyright 2019 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//components/compose/features.gni")
import("//ui/base/ui_features.gni")

assert(!is_ios, "Chromium/iOS shouldn't use anything in //chrome")

source_set("color_headers") {
  sources = [ "chrome_color_id.h" ]

  public_deps = [
    "//components/color:color_headers",
    "//ui/color:color_headers",
  ]
}

source_set("mixers") {
  sources = [
    "chrome_color_mixer.cc",
    "chrome_color_mixer.h",
    "chrome_color_mixers.cc",
    "chrome_color_mixers.h",
    "chrome_color_provider_utils.cc",
    "chrome_color_provider_utils.h",
    "material_chrome_color_mixer.cc",
    "material_chrome_color_mixer.h",
    "material_new_tab_page_color_mixer.cc",
    "material_new_tab_page_color_mixer.h",
    "material_omnibox_color_mixer.cc",
    "material_omnibox_color_mixer.h",
    "material_side_panel_color_mixer.cc",
    "material_side_panel_color_mixer.h",
    "material_tab_strip_color_mixer.cc",
    "material_tab_strip_color_mixer.h",
    "native_chrome_color_mixer.cc",
    "native_chrome_color_mixer.h",
    "new_tab_page_color_mixer.cc",
    "new_tab_page_color_mixer.h",
    "omnibox_color_mixer.cc",
    "omnibox_color_mixer.h",
    "product_specifications_color_mixer.cc",
    "product_specifications_color_mixer.h",
    "tab_group_color_ids.h",
    "tab_strip_color_mixer.cc",
    "tab_strip_color_mixer.h",
  ]

  configs += [ "//build/config/compiler:wexit_time_destructors" ]

  deps = [
    ":color_headers",
    "//build:branding_buildflags",
    "//chrome/app/theme:theme_resources",
    "//chrome/browser/task_manager/common",
    "//chrome/browser/ui:ui_features",
    "//chrome/common/themes:autogenerated_theme_util",
    "//components/compose:buildflags",
    "//components/omnibox/common",
    "//components/search",
    "//ui/base:buildflags",
    "//ui/color",
    "//ui/color:mixers",
  ]

  if (is_chromeos) {
    sources += [ "chromeos/native_chrome_color_mixer_chromeos.cc" ]
  }

  if (is_linux) {
    sources += [ "linux/native_chrome_color_mixer_linux.cc" ]
  }

  if (is_mac) {
    sources += [ "mac/native_chrome_color_mixer_mac.cc" ]
  }

  if (is_win) {
    sources += [ "win/native_chrome_color_mixer_win.cc" ]
    deps += [
      "//chrome/browser:titlebar_config",
      "//ui/base",
      "//ui/color:accent_color_observer",
      "//ui/native_theme",
      "//ui/views",
    ]
  }

  if (is_chromeos || is_linux || is_mac || is_win) {
    deps += [ "//chrome/browser/themes" ]
  }
}

if (!is_android) {
  executable("dump_colors") {
    testonly = true

    sources = [ "tools/dump_colors.cc" ]

    deps = [
      ":color_headers",
      ":mixers",
      "//chrome/browser",
      "//components/color",
      "//ui/color:mixers",
    ]

    if (is_mac) {
      sources += [
        "//chrome/app/chrome_crash_reporter_client.cc",
        "//chrome/app/chrome_crash_reporter_client_mac.mm",
      ]

      deps += [
        "//chrome/app_shim",
        "//components/upload_list",
      ]
    }

    if (is_win) {
      deps += [
        "//chrome/chrome_elf:test_stubs",
        "//components/crash/core/app:crash_export_thunks",
      ]
    }

    if (is_chromeos) {
      deps += [
        "//chrome/services/sharing/nearby",
        "//components/exo/wayland:ui_controls_protocol_stub",
      ]
    }
  }
}
