# Creates a symlink (or, on Windows, copies).
# Args:
#   source: Path to link to.
#   output: Where to create the symlink.
template("symlink_or_copy") {
  action(target_name) {
    forward_variables_from(invoker, [ "deps" ])

    # Make a stamp file the output to work around
    # https://github.com/ninja-build/ninja/issues/1186
    stamp =
        "$target_gen_dir/" + get_path_info(invoker.output, "file") + ".stamp"
    outputs = [ stamp ]
    script = "//llvm/utils/gn/build/symlink_or_copy.py"
    args = [
      "--stamp",
      rebase_path(stamp, root_build_dir),
      invoker.source,
      rebase_path(invoker.output, root_build_dir),
    ]
  }
}
