# Copyright 2021 The Fuchsia Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Ninja `restat` can lead to on-the-fly pruning of the overall action graph,
# when intermediate files are unchanged as a result of re-running an action.

import("//build/toolchain/rbe.gni")

# This script transforms any command to be restat-friendly by redirecting
# outputs to a temporary location, followed by move-if-changed.
# re-client supports this behavior directly with
# --preserve_unchanged_output_mtime (which suppresses downloading over
# unchanged files), so this script is only needed for non-RBE build actions.
restat_wrapper = "//build/tracer/restat_cacher.py"

declare_args() {
  # Set to true to make Rust compiles preserve timestamps of unchanged outputs.
  restat_rust = true

  # Set to true to make C++ compiles preserve timestamps of unchanged outputs.
  # re-client provides this feature out-of-the-box with
  # --preserve_unchanged_output_mtime, so it makes sense to default to true
  # when using `cxx_rbe_enable`.  When not using re-client, you can still
  # get write-if-change behavior through the `restat_wrapper` script,
  # but at the cost of the wrapper overhead (tradeoff vs. action pruning).
  restat_cc = cxx_rbe_enable
}
