2022-04-12 23:31:04 +00:00
<!-- Generated with Stardoc: http://skydoc.bazel.build -->
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
https://github.com/bazelbuild/rules_nodejs/blob/8b5d27400db51e7027fe95ae413eeabea4856f8e/internal/common/copy_to_bin.bzl
2022-06-10 20:05:19 +00:00
< a id = "copy_file_to_bin_action" > < / a >
2022-04-13 20:55:41 +00:00
## copy_file_to_bin_action
< pre >
copy_file_to_bin_action(< a href = "#copy_file_to_bin_action-ctx" > ctx< / a > , < a href = "#copy_file_to_bin_action-file" > file< / a > , < a href = "#copy_file_to_bin_action-is_windows" > is_windows< / a > )
< / pre >
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 |
| :------------- | :------------- | :------------- |
| < a id = "copy_file_to_bin_action-ctx" > < / a > ctx | The rule context. | none |
| < a id = "copy_file_to_bin_action-file" > < / a > file | The file to copy. | none |
| < a id = "copy_file_to_bin_action-is_windows" > < / a > is_windows | If true, an cmd.exe action is created so there is no bash dependency. | < code > False< / code > |
**RETURNS**
A File in the output tree.
2022-06-10 20:05:19 +00:00
< a id = "copy_files_to_bin_actions" > < / a >
2022-04-13 20:55:41 +00:00
## copy_files_to_bin_actions
< pre >
copy_files_to_bin_actions(< a href = "#copy_files_to_bin_actions-ctx" > ctx< / a > , < a href = "#copy_files_to_bin_actions-files" > files< / a > , < a href = "#copy_files_to_bin_actions-is_windows" > is_windows< / a > )
< / pre >
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 |
| :------------- | :------------- | :------------- |
| < a id = "copy_files_to_bin_actions-ctx" > < / a > ctx | The rule context. | none |
| < a id = "copy_files_to_bin_actions-files" > < / a > files | List of File objects. | none |
| < a id = "copy_files_to_bin_actions-is_windows" > < / a > is_windows | If true, an cmd.exe action is created so there is no bash dependency. | < code > False< / code > |
**RETURNS**
List of File objects in the output tree.
2022-06-10 20:05:19 +00:00
< a id = "copy_to_bin" > < / a >
2022-04-12 23:31:04 +00:00
## copy_to_bin
< pre >
copy_to_bin(< a href = "#copy_to_bin-name" > name< / a > , < a href = "#copy_to_bin-srcs" > srcs< / a > , < a href = "#copy_to_bin-kwargs" > kwargs< / a > )
< / pre >
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`
2022-04-13 19:40:07 +00:00
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.
2022-04-12 23:31:04 +00:00
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 |
| :------------- | :------------- | :------------- |
| < a id = "copy_to_bin-name" > < / a > name | Name of the rule. | none |
| < a id = "copy_to_bin-srcs" > < / a > srcs | A list of labels. File(s) to copy. | none |
| < a id = "copy_to_bin-kwargs" > < / a > kwargs | further keyword arguments, e.g. < code > visibility< / code > | none |