mirror of
https://github.com/raspberrypi/pico-sdk.git
synced 2025-02-15 21:40:28 +00:00
47 lines
1.4 KiB
Python
47 lines
1.4 KiB
Python
|
load("@bazel_tools//tools/build_defs/cc:action_names.bzl", "OBJ_COPY_ACTION_NAME")
|
||
|
load("@rules_cc//cc:find_cc_toolchain.bzl", "find_cpp_toolchain", "use_cc_toolchain")
|
||
|
|
||
|
def _objcopy_to_bin_impl(ctx):
|
||
|
cc_toolchain = find_cpp_toolchain(ctx)
|
||
|
feature_configuration = cc_common.configure_features(
|
||
|
ctx = ctx,
|
||
|
cc_toolchain = cc_toolchain,
|
||
|
requested_features = ctx.features,
|
||
|
unsupported_features = ctx.disabled_features,
|
||
|
)
|
||
|
objcopy_tool_path = cc_common.get_tool_for_action(
|
||
|
feature_configuration = feature_configuration,
|
||
|
action_name = OBJ_COPY_ACTION_NAME,
|
||
|
)
|
||
|
|
||
|
ctx.actions.run(
|
||
|
inputs = depset(
|
||
|
direct = [ctx.file.src],
|
||
|
transitive = [cc_toolchain.all_files],
|
||
|
),
|
||
|
executable = objcopy_tool_path,
|
||
|
outputs = [ctx.outputs.out],
|
||
|
arguments = [
|
||
|
ctx.file.src.path,
|
||
|
"-Obinary",
|
||
|
ctx.outputs.out.path,
|
||
|
],
|
||
|
)
|
||
|
|
||
|
objcopy_to_bin = rule(
|
||
|
implementation = _objcopy_to_bin_impl,
|
||
|
attrs = {
|
||
|
"src": attr.label(
|
||
|
allow_single_file = True,
|
||
|
mandatory = True,
|
||
|
doc = "File to use as input to objcopy command",
|
||
|
),
|
||
|
"out": attr.output(
|
||
|
mandatory = True,
|
||
|
doc = "Destination file for objcopy command",
|
||
|
),
|
||
|
},
|
||
|
fragments = ["cpp"],
|
||
|
toolchains = use_cc_toolchain(),
|
||
|
)
|