Skip to content

Commit

Permalink
Make out on native_binary optional
Browse files Browse the repository at this point in the history
Fixes: #399
  • Loading branch information
tpudlik committed Nov 6, 2023
1 parent 9c9beee commit f374bc5
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
4 changes: 2 additions & 2 deletions docs/native_binary_doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ in genrule.tools for example. You can also augment the binary with runfiles.
| :------------- | :------------- | :------------- | :------------- | :------------- |
| <a id="native_binary-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
| <a id="native_binary-data"></a>data | data dependencies. See https://bazel.build/reference/be/common-definitions#typical.data | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | <code>[]</code> |
| <a id="native_binary-out"></a>out | An output name for the copy of the binary | String | required | |
| <a id="native_binary-out"></a>out | An output name for the copy of the binary. Defaults to name.exe. (We add .exe to the name by default because it's required on Windows and tolerated on other platforms.) | String | optional | <code>""</code> |
| <a id="native_binary-src"></a>src | path of the pre-built executable | <a href="https://bazel.build/concepts/labels">Label</a> | required | |


Expand All @@ -56,7 +56,7 @@ the binary with runfiles.
| :------------- | :------------- | :------------- | :------------- | :------------- |
| <a id="native_test-name"></a>name | A unique name for this target. | <a href="https://bazel.build/concepts/labels#target-names">Name</a> | required | |
| <a id="native_test-data"></a>data | data dependencies. See https://bazel.build/reference/be/common-definitions#typical.data | <a href="https://bazel.build/concepts/labels">List of labels</a> | optional | <code>[]</code> |
| <a id="native_test-out"></a>out | An output name for the copy of the binary | String | required | |
| <a id="native_test-out"></a>out | An output name for the copy of the binary. Defaults to name.exe. (We add .exe to the name by default because it's required on Windows and tolerated on other platforms.) | String | optional | <code>""</code> |
| <a id="native_test-src"></a>src | path of the pre-built executable | <a href="https://bazel.build/concepts/labels">Label</a> | required | |


9 changes: 7 additions & 2 deletions rules/native_binary.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ don't depend on Bash and work with --shell_executable="".
"""

def _impl_rule(ctx):
out = ctx.actions.declare_file(ctx.attr.out)
out = ctx.actions.declare_file(ctx.attr.out if (ctx.attr.out != "") else ctx.attr.name + ".exe")
ctx.actions.symlink(
target_file = ctx.executable.src,
output = out,
Expand Down Expand Up @@ -64,7 +64,12 @@ _ATTRS = {
" https://bazel.build/reference/be/common-definitions#typical.data",
),
# "out" is attr.string instead of attr.output, so that it is select()'able.
"out": attr.string(mandatory = True, doc = "An output name for the copy of the binary"),
"out": attr.string(
default = "",
doc = "An output name for the copy of the binary. Defaults to " +
"name.exe. (We add .exe to the name by default because it's " +
"required on Windows and tolerated on other platforms.)",
),
}

native_binary = rule(
Expand Down

0 comments on commit f374bc5

Please sign in to comment.