# 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("//tools/grit/grit_rule.gni")

# GYP version: components/components_resources.gyp:components_resources
group("resources") {
  deps = [
    ":components_resources",
    ":components_scaled_resources",
  ]
}

# GYP version: components/components_resources.gyp
#              (generate_components_resources action)
grit("components_resources") {
  source = "components_resources.grd"
  outputs = [
    "grit/component_resources.h",
    "component_resources.pak",
  ]
}

# GYP version: components/components_resources.gyp
#              (generate_scaled_components_resources action)
grit("components_scaled_resources") {
  source = "components_scaled_resources.grd"
  outputs = [
    "grit/component_scaled_resources.h",
    "component_resources_100_percent.pak",
    "component_resources_200_percent.pak",
  ]
}
