blob: ea15ad4c2831aeb63c4f78d3941de3919afb4a32 [file] [log] [blame]
# Copyright 2020 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.
# 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}}"
# 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") {
# ln cannot hardlink directories on Mac, but `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("//build/toolchain/recursive_copy.py") +
" {{source}} {{output}})"
} else {
copy_command = "ln -f {{source}} {{output}} 2>/dev/null || (rm -rf {{output}} && cp -af {{source}} {{output}})"
}
copy_description = "COPY {{source}} {{output}}"