3.6 KiB
Executable File
A rule that copies source files to the output tree.
This rule uses a Bash command (diff) on Linux/macOS/non-Windows, and a cmd.exe command (fc.exe) on Windows (no Bash is required).
Originally authored in rules_nodejs
8b5d27400d/internal/common/copy_to_bin.bzl
copy_file_to_bin_action
copy_file_to_bin_action(ctx, file, is_windows)
Helper function that creates an action to copy a file to the output tree.
File are copied to the same workspace-relative path. The resulting files is returned.
If the file passed in is already in the output tree is then it is returned without a copy action.
PARAMETERS
Name | Description | Default Value |
---|---|---|
ctx | The rule context. | none |
file | The file to copy. | none |
is_windows | If true, an cmd.exe action is created so there is no bash dependency. | False |
RETURNS
A File in the output tree.
copy_files_to_bin_actions
copy_files_to_bin_actions(ctx, files, is_windows)
Helper function that creates actions to copy files to the output tree.
Files are copied to the same workspace-relative path. The resulting list of files is returned.
If a file passed in is already in the output tree is then it is added directly to the result without a copy action.
PARAMETERS
Name | Description | Default Value |
---|---|---|
ctx | The rule context. | none |
files | List of File objects. | none |
is_windows | If true, an cmd.exe action is created so there is no bash dependency. | False |
RETURNS
List of File objects in the output tree.
copy_to_bin
copy_to_bin(name, srcs, kwargs)
Copies a source file to output tree at the same workspace-relative path.
e.g. <execroot>/path/to/file -> <execroot>/bazel-out/<platform>/bin/path/to/file
If a file passed in is already in the output tree is then it is added directly to the DefaultInfo provided by the rule without a copy.
This is useful to populate the output folder with all files needed at runtime, even those which aren't outputs of a Bazel rule.
This way you can run a binary in the output folder (execroot or runfiles_root) without that program needing to rely on a runfiles helper library or be aware that files are divided between the source tree and the output tree.
PARAMETERS
Name | Description | Default Value |
---|---|---|
name | Name of the rule. | none |
srcs | A list of labels. File(s) to copy. | none |
kwargs | further keyword arguments, e.g. visibility |
none |