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

# This target creates a stamp file that depends on all the sources in the grit
# directory. By depending on this, a target can force itself to be rebuilt if
# grit itself changes.
action("grit_sources") {
  depfile = "$target_out_dir/grit_sources.d"
  script = "//build/secondary/tools/grit/stamp_grit_sources.py"

  inputs = [ "grit.py" ]

  # Note that we can't call this "grit_sources.stamp" because that file is
  # implicitly created by GN for script actions.
  outputs = [ "$target_out_dir/grit_sources.script.stamp" ]

  args = [
    rebase_path("//tools/grit", root_build_dir),
    rebase_path(outputs[0], root_build_dir),
    rebase_path(depfile, root_build_dir)
  ]
}
