chromium/ui/webui/resources/BUILD.gn

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

import("//build/config/chromeos/ui_mode.gni")
import("//crypto/features.gni")
import("//ui/webui/resources/include_polymer.gni")
import("//ui/webui/resources/tools/generate_grd.gni")

if (use_blink) {
  import("//chrome/common/features.gni")
}

generate_grd("build_grd") {
  grd_prefix = "webui"
  out_grd = "$target_gen_dir/${grd_prefix}_resources.grd"

  input_files = [ "test_loader.html" ]
  input_files_base_dir = rebase_path(".", "//")

  if (is_linux) {
    # Only need to include on Linux.
    #  - Android: Roboto-Regular and Roboto-Light is already available on
    #             Android, and Roboto-Medium is not used on Android.
    #  - CrOS: All 6 weights of Roboto are available on Chrome OS.
    #  - Win/Mac: Use system UI fonts for WebUI surfaces and don't need Roboto.
    input_files += [
      "roboto/roboto-bold.woff2",
      "roboto/roboto-medium.woff2",
      "roboto/roboto-regular.woff2",
    ]
  }

  public_deps = [
    "cr_components/commerce:build_grdp",
    "cr_elements:build_grdp",
    "css:build_grdp",
    "images:build_grdp",
    "js:build_grdp",
    "mojo:build_grdp",
    "//third_party/jstemplate:build_grdp",
  ]
  grdp_files = [
    "$root_gen_dir/third_party/jstemplate/resources.grdp",
    "$target_gen_dir/cr_components/commerce/resources.grdp",
    "$target_gen_dir/cr_elements/resources.grdp",
    "$target_gen_dir/css/resources.grdp",
    "$target_gen_dir/images/resources.grdp",
    "$target_gen_dir/js/resources.grdp",
    "$target_gen_dir/mojo/resources.grdp",
  ]

  if (include_polymer) {
    public_deps += [
      "cr_components/app_management:build_grdp",
      "cr_components/customize_color_scheme_mode:build_grdp",
      "cr_components/help_bubble:build_grdp",
      "cr_components/localized_link:build_grdp",
      "cr_components/managed_dialog:build_grdp",
      "cr_components/managed_footnote:build_grdp",
      "cr_components/most_visited:build_grdp",
      "cr_components/theme_color_picker:build_grdp",
      "//third_party/d3:build_grdp",
      "//third_party/lit/v3_0:build_grdp",
      "//third_party/polymer/v3_0:build_grdp",
    ]
    grdp_files += [
      "$root_gen_dir/third_party/d3/d3_resources.grdp",
      "$root_gen_dir/third_party/lit/v3_0/resources.grdp",
      "$root_gen_dir/third_party/polymer/v3_0/polymer_3_0_resources.grdp",
      "$target_gen_dir/cr_components/app_management/resources.grdp",
      "$target_gen_dir/cr_components/theme_color_picker/resources.grdp",
      "$target_gen_dir/cr_components/customize_color_scheme_mode/resources.grdp",
      "$target_gen_dir/cr_components/help_bubble/resources.grdp",
      "$target_gen_dir/cr_components/localized_link/resources.grdp",
      "$target_gen_dir/cr_components/managed_dialog/resources.grdp",
      "$target_gen_dir/cr_components/managed_footnote/resources.grdp",
      "$target_gen_dir/cr_components/most_visited/resources.grdp",
    ]

    if (use_blink) {
      if (use_nss_certs || chrome_root_store_cert_management_ui) {
        public_deps += [ "cr_components/certificate_manager:build_grdp" ]
        grdp_files += [
          "$target_gen_dir/cr_components/certificate_manager/resources.grdp",
        ]
      }
    }

    if (!is_android) {
      public_deps += [
        "cr_components/history:build_grdp",
        "cr_components/history_clusters:build_grdp",
        "cr_components/history_embeddings:build_grdp",
        "cr_components/searchbox:build_grdp",
        "cr_components/searchbox/icons:build_grdp",
      ]
      grdp_files += [
        "$target_gen_dir/cr_components/history/resources.grdp",
        "$target_gen_dir/cr_components/history_clusters/resources.grdp",
        "$target_gen_dir/cr_components/history_embeddings/resources.grdp",
        "$target_gen_dir/cr_components/searchbox/resources.grdp",
        "$target_gen_dir/cr_components/searchbox/icons/resources.grdp",
      ]

      if (is_chrome_branded) {
        public_deps +=
            [ "cr_components/searchbox/icons:chrome_branded_build_grdp" ]
        grdp_files += [ "$target_gen_dir/cr_components/searchbox/icons/chrome_branded_resources.grdp" ]
      }
    }
  }

  if (is_chromeos_ash) {
    # NOTE: Do not add any new Ash-only grdp files below.
    # TODO(crbug.com/40233082): Move remaining Ash-only shared resources to
    # ash/webui/common/resources:build_grd
    public_deps += [ ":build_cros_styles_grdp" ]
    grdp_files += [ "$target_gen_dir/cros_styles_resources.grdp" ]
  }

  if (!is_android && !is_ios) {
    public_deps += [
      "cr_components/color_change_listener:build_grdp",
      "cr_components/page_image_service:build_grdp",
      "//third_party/lottie:build_grdp",
    ]
    grdp_files += [
      "$root_gen_dir/third_party/lottie/resources.grdp",
      "$root_gen_dir/ui/webui/resources/cr_components/color_change_listener/resources.grdp",
      "$root_gen_dir/ui/webui/resources/cr_components/page_image_service/resources.grdp",
    ]
  }
}

if (is_chromeos_ash) {
  generate_grd("build_cros_styles_grdp") {
    grd_prefix = "webui"
    out_grd = "$target_gen_dir/cros_styles_resources.grdp"
    public_deps = [ "//ui/chromeos/styles:cros_styles_css" ]
    input_files_base_dir = rebase_path("$root_gen_dir/", root_build_dir)
    input_files = [ "ui/chromeos/styles/cros_styles.css" ]
    resource_path_rewrites =
        [ "ui/chromeos/styles/cros_styles.css|chromeos/colors/cros_styles.css" ]
  }
}