diff --git a/tools/build_defs/shell_toolchain/toolchains/impl/default_commands.bzl b/tools/build_defs/shell_toolchain/toolchains/impl/default_commands.bzl index d4da1737e..d9231d06b 100644 --- a/tools/build_defs/shell_toolchain/toolchains/impl/default_commands.bzl +++ b/tools/build_defs/shell_toolchain/toolchains/impl/default_commands.bzl @@ -61,7 +61,7 @@ fi ) def copy_dir_contents_to_dir(source, target): - return """cp -L -r --no-target-directory "{}" "{}" """.format(source, target) + return """cp -L -p -r --no-target-directory "{}" "{}" """.format(source, target) def symlink_contents_to_dir(source, target): text = """\ diff --git a/tools/build_defs/shell_toolchain/toolchains/impl/linux_commands.bzl b/tools/build_defs/shell_toolchain/toolchains/impl/linux_commands.bzl index 8cbbe47b1..2b7503728 100644 --- a/tools/build_defs/shell_toolchain/toolchains/impl/linux_commands.bzl +++ b/tools/build_defs/shell_toolchain/toolchains/impl/linux_commands.bzl @@ -61,7 +61,7 @@ fi ) def copy_dir_contents_to_dir(source, target): - return """cp -L -r --no-target-directory "{}" "{}" """.format(source, target) + return """cp -L -p -r --no-target-directory "{}" "{}" """.format(source, target) def symlink_contents_to_dir(source, target): text = """\ diff --git a/tools/build_defs/shell_toolchain/toolchains/impl/osx_commands.bzl b/tools/build_defs/shell_toolchain/toolchains/impl/osx_commands.bzl index 6a91182dd..627b13aa6 100644 --- a/tools/build_defs/shell_toolchain/toolchains/impl/osx_commands.bzl +++ b/tools/build_defs/shell_toolchain/toolchains/impl/osx_commands.bzl @@ -70,7 +70,7 @@ local target="$2" mkdir -p "${target}" for child in "${children[@]:-}"; do if [[ -f "$child" ]]; then - cp "$child" "$target" + cp -p "$child" "$target" elif [[ -L "$child" ]]; then local actual=$(readlink "$child") if [[ -f "$actual" ]]; then diff --git a/tools/build_defs/shell_toolchain/toolchains/impl/windows_commands.bzl b/tools/build_defs/shell_toolchain/toolchains/impl/windows_commands.bzl index b9d3d99f4..89dd0042e 100644 --- a/tools/build_defs/shell_toolchain/toolchains/impl/windows_commands.bzl +++ b/tools/build_defs/shell_toolchain/toolchains/impl/windows_commands.bzl @@ -61,7 +61,7 @@ fi ) def copy_dir_contents_to_dir(source, target): - return """cp -L -r --no-target-directory "{}" "{}" """.format(source, target) + return """cp -L -p -r --no-target-directory "{}" "{}" """.format(source, target) def symlink_contents_to_dir(source, target): text = """\