Allow runnable_binary to work on non-external targets (#1100)

This commit is contained in:
Mike Lundy 2023-10-14 06:24:09 -07:00 committed by GitHub
parent 14ded03b9c
commit 01cf7897e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View File

@ -22,6 +22,9 @@ The following flags are required in Bazel 4.x but not Bazel 5.x or newer:
Note that the rules may be compatible with older versions of Bazel but support may break Note that the rules may be compatible with older versions of Bazel but support may break
in future changes as these older versions are not tested. in future changes as these older versions are not tested.
Note also that the `runnable_binary` macro requires bazel 5.4.0, for the `rlocationpath` [path
variable](https://bazel.build/reference/be/make-variables)
## News ## News
For more generalized updates, please see [NEWS.md](./NEWS.md) or checkout the For more generalized updates, please see [NEWS.md](./NEWS.md) or checkout the

View File

@ -9,7 +9,7 @@ def runnable_binary(name, binary, foreign_cc_target, match_binary_name = False,
The wrapper script also facilitates the running of binaries that are dynamically linked to shared libraries also built by rules_foreign_cc. The runnable bin could be used as a tool in a dependent bazel target The wrapper script also facilitates the running of binaries that are dynamically linked to shared libraries also built by rules_foreign_cc. The runnable bin could be used as a tool in a dependent bazel target
Note that this macro only works on foreign_cc_targets in external repositories, not in the main repository. This is due to the issue described here: https://github.com/bazelbuild/bazel/issues/10923 Note that this macro requires bazel 5.4.0 due to the use of the rlocationpath variable (see https://github.com/bazelbuild/bazel/issues/10923 for context)
Also note that the macro requires the `--enable_runfiles` option to be set on Windows. Also note that the macro requires the `--enable_runfiles` option to be set on Windows.
Args: Args:
@ -43,7 +43,7 @@ def runnable_binary(name, binary, foreign_cc_target, match_binary_name = False,
) )
wrapper_cmd = """ wrapper_cmd = """
sed s@EXECUTABLE@$(rootpath {name})@g $(location @rules_foreign_cc//foreign_cc/private:runnable_binary_wrapper.sh) > tmp sed s@EXECUTABLE@$(rlocationpath {name})@g $(location @rules_foreign_cc//foreign_cc/private:runnable_binary_wrapper.sh) > tmp
sed s@SH_BINARY_FILENAME@{sh_binary_filename}@g tmp > $@ sed s@SH_BINARY_FILENAME@{sh_binary_filename}@g tmp > $@
""" """