blob: dd74a902d71cfed89e9c10b84eb074915fdcb5fe [file] [log] [blame]
load("@rules_cc//cc:defs.bzl", "cc_library")
# PICO_BUILD_DEFINE: PICO_PROGRAM_NAME, Provided by PICO_DEFAULT_BINARY_INFO or a manually linked custom_pico_binary_info target, type=string, group=pico_binary_info
# PICO_BUILD_DEFINE: PICO_PROGRAM_DESCRIPTION, Provided by PICO_DEFAULT_BINARY_INFO or a manually linked custom_pico_binary_info target, type=string, group=pico_binary_info
# PICO_BUILD_DEFINE: PICO_PROGRAM_URL, Provided by PICO_DEFAULT_BINARY_INFO or a manually linked custom_pico_binary_info target, type=string, group=pico_binary_info
# PICO_BUILD_DEFINE: PICO_PROGRAM_VERSION_STRING, Provided by PICO_DEFAULT_BINARY_INFO or a manually linked custom_pico_binary_info target, type=string, group=pico_binary_info
# PICO_BUILD_DEFINE: PICO_TARGET_NAME, The name of the build target being compiled, type=string, default=target name, group=build
def custom_pico_binary_info(name = None, program_name = None, program_description = None, program_url = None, program_version_string = None, build_target_name = None):
_all_defines = []
if program_name != None:
_all_defines.append('PICO_PROGRAM_NAME=\\"{}\\"'.format(program_name))
if program_description != None:
_all_defines.append('PICO_PROGRAM_DESCRIPTION=\\"{}\\"'.format(program_description))
if program_url != None:
_all_defines.append('PICO_PROGRAM_URL=\\"{}\\"'.format(program_url))
if program_version_string != None:
_all_defines.append('PICO_PROGRAM_VERSION_STRING=\\"{}\\"'.format(program_version_string))
# TODO: There's no practical way to support this correctly without a
# `pico_cc_binary` wrapper. Either way, this would be the right place to put
# it.
_build_target_name_defines = []
if build_target_name != None:
_build_target_name_defines.append('PICO_TARGET_NAME=\\"{}\\"'.format(build_target_name))
cc_library(
name = name,
defines = _all_defines + select({
"@pico-sdk//bazel/constraint:pico_no_target_name_enabled": [],
"//conditions:default": _build_target_name_defines,
}),
srcs = ["@pico-sdk//src/rp2_common/pico_standard_binary_info:binary_info_srcs"],
deps = [
"@pico-sdk//src/rp2_common/pico_standard_binary_info:PICO_BAZEL_BUILD_TYPE",
"@pico-sdk//src/common/pico_base_headers:version",
"@pico-sdk//src/common/pico_binary_info",
"@pico-sdk//src/rp2_common:boot_stage2_config",
],
alwayslink = True,
)