chromium/chrome/browser/themes/BUILD.gn

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

import("//extensions/buildflags/buildflags.gni")

assert(is_win || is_mac || is_linux || is_chromeos)

source_set("themes") {
  public = [
    "browser_theme_pack.h",
    "custom_theme_supplier.h",
    "theme_helper.h",
    "theme_properties.h",
    "theme_service.h",
    "theme_service_factory.h",
    "theme_service_observer.h",
    "theme_service_utils.h",
    "theme_syncable_service.h",
  ]
  sources = [
    "browser_theme_pack.cc",
    "custom_theme_supplier.cc",
    "theme_helper.cc",
    "theme_properties.cc",
    "theme_service.cc",
    "theme_service_factory.cc",
    "theme_service_utils.cc",
    "theme_syncable_service.cc",
  ]
  deps = [
    "//build:chromeos_buildflags",
    "//chrome/app/theme:theme_resources",
    "//chrome/browser/new_tab_page/chrome_colors",
    "//chrome/browser/search/background:constants",
    "//chrome/browser/ui/color:color_headers",
    "//chrome/browser/ui/frame",
    "//chrome/common",
    "//components/crx_file",
    "//components/infobars/content",
    "//components/keyed_service/content",
    "//components/pref_registry",
    "//components/resources:components_scaled_resources",
    "//components/sync/protocol",
    "//content/public/browser",
    "//third_party/abseil-cpp:absl",
    "//ui/color",
    "//ui/gfx",
    "//ui/native_theme",
  ]
  public_deps = [
    "//base",
    "//chrome/browser/profiles:profile",
    "//chrome/common/themes:autogenerated_theme_util",
    "//components/keyed_service/core",
    "//components/prefs",
    "//components/sync/model",
    "//skia",
    "//ui/base",
    "//ui/base/mojom",
    "//ui/color:color_provider_key",
    "//ui/gfx:color_utils",
  ]
  if (enable_extensions) {
    public_deps += [
      "//extensions/buildflags",
      "//extensions/common",
    ]
    deps += [ "//extensions/browser" ]
  }
  if (is_win || is_mac || is_linux) {
    public += [ "theme_color_policy_handler.h" ]
    sources += [ "theme_color_policy_handler.cc" ]
    deps += [
      "//components/policy:generated",
      "//components/policy:policy_code_generate",
      "//components/policy/core/browser",
      "//third_party/re2",
    ]
  }
  if (is_win) {
    sources += [
      "theme_helper_win.cc",
      "theme_helper_win.h",
    ]
    deps += [ "//chrome/browser/win:mica_titlebar" ]
  }
  if (is_linux) {
    public += [ "theme_service_aura_linux.h" ]
    sources += [ "theme_service_aura_linux.cc" ]
    deps += [
      "//ui/linux:linux_ui",
      "//ui/linux:linux_ui_factory",
      "//ui/ozone",
    ]
  }
}