blob: 3d1e5c468ac4c90f28e1216d77d15a7f28235bc9 [file] [log] [blame]
load("@bazel_tools//tools/cpp:toolchain_utils.bzl", "use_cpp_toolchain")
def _generated_pico_flash_region_impl(ctx):
flash_region_linker_fragment = ctx.actions.declare_file(ctx.label.name + "/ldinclude/pico_flash_region.ld")
link_include_dir = flash_region_linker_fragment.dirname
file_contents = "\n".join((
"FLASH(rx) : ORIGIN = 0x10000000, LENGTH = " + str(ctx.attr.flash_region_size),
))
ctx.actions.write(flash_region_linker_fragment, file_contents)
linking_inputs = cc_common.create_linker_input(
owner = ctx.label,
user_link_flags = depset(
direct = ["-L" + str(link_include_dir)],
),
additional_inputs = depset(
direct = [flash_region_linker_fragment],
),
)
return [
DefaultInfo(files = depset([flash_region_linker_fragment])),
CcInfo(linking_context = cc_common.create_linking_context(linker_inputs = depset(direct = [linking_inputs]))),
]
generated_pico_flash_region = rule(
implementation = _generated_pico_flash_region_impl,
attrs = {
"flash_region_size": attr.int(mandatory = True),
},
toolchains = use_cpp_toolchain(),
fragments = ["cpp"],
)