| 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, |
| ) |