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

# Each toolchain must define "stamp" and "copy" tools,
# but they are always the same in every toolchain.
stamp_command = "touch {{output}}"
stamp_description = "STAMP {{output}}"

# mtime on directories may not reflect the latest of a directory. For example in
# popular file systems, modifying a file in a directory does not affect mtime of
# the directory. Because of this, disable directory copy for incremental
# correctness. See https://fxbug.dev/73250.
copy_command = "if [ -d {{source}} ]; then echo 'Tool \"copy\" does not support directory copies'; exit 1; fi; "

# We use link instead of copy; the way "copy" tool is being used is
# compatible with links since Ninja is tracking changes to the source.
if (host_os == "mac") {
  # `cp -af` does not correctly preserve mtime (the nanoseconds are truncated to
  # microseconds) which causes spurious ninja rebuilds. As a result, shell to a
  # helper to copy rather than calling cp -r. See https://fxbug.dev/56376#c5.
  copy_command += "ln -f {{source}} {{output}} 2>/dev/null || (" +
                  rebase_path("//flutter/tools/fuchsia/toolchain/copy.py") +
                  " {{source}} {{output}})"
} else {
  copy_command += "ln -f {{source}} {{output}} 2>/dev/null || (rm -f {{output}} && cp -af {{source}} {{output}})"
}
copy_description = "COPY {{source}} {{output}}"
