| load("@bazel_skylib//rules:common_settings.bzl", "bool_flag", "int_flag", "string_flag") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| # PICO_BAZEL_CONFIG: PICO_TOOLCHAIN, The toolchain to use, type=string, default=gcc, group=build |
| string_flag( |
| name = "PICO_TOOLCHAIN", |
| build_setting_default = "gcc", |
| values = [ |
| "gcc", |
| "clang", |
| ], |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_BOARD, Board name being built for, type=string, default=pico or pico2, group=build, docref=cmake-platform-board-config |
| string_flag( |
| name = "PICO_BOARD", |
| build_setting_default = "pico", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_BARE_METAL, Flag to exclude anything except base headers from the build, type=bool, default=0, group=build |
| bool_flag( |
| name = "PICO_BARE_METAL", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_NO_GC_SECTIONS, Disable `-ffunction-sections` `-fdata-sections` and `--gc-sections`, type=bool, default=0, advanced=true, group=pico_standard_link |
| bool_flag( |
| name = "PICO_NO_GC_SECTIONS", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_BOOT_STAGE2_FILE, Boot stage 2 file to use; this should point to a filegroup with the .S file to use, type=string, group=build |
| label_flag( |
| name = "PICO_DEFAULT_BOOT_STAGE2_FILE", |
| build_setting_default = "//src/rp2_common:build_selected_boot2", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_BOOT_STAGE2, Simpler alternative to specifying PICO_DEFAULT_BOOT_STAGE2_FILE where the latter is set to src/rp2_common/boot_stage2/{PICO_DEFAULT_BOOT_STAGE2}.S, type=string, default=compile_time_choice, group=build |
| string_flag( |
| name = "PICO_DEFAULT_BOOT_STAGE2", |
| build_setting_default = "compile_time_choice", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_BOOT_STAGE2_LINK_IMAGE, [Bazel only] The final boot_stage2 image target to link in. Use this to fully override/replace boot_stage2, default=@pico-sdk//src/rp2_common:boot_stage2, group=build |
| label_flag( |
| name = "PICO_BOOT_STAGE2_LINK_IMAGE", |
| build_setting_default = "//src/rp2_common:boot_stage2", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CXX_ENABLE_EXCEPTIONS, Enable CXX exception handling, type=bool, default=0, group=pico_cxx_options |
| bool_flag( |
| name = "PICO_CXX_ENABLE_EXCEPTIONS", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CXX_ENABLE_RTTI, Enable CXX rtti, type=bool, default=0, group=pico_cxx_options |
| bool_flag( |
| name = "PICO_CXX_ENABLE_RTTI", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CXX_ENABLE_CXA_ATEXIT, Enable cxa-atexit, type=bool, default=0, group=pico_cxx_options |
| bool_flag( |
| name = "PICO_CXX_ENABLE_CXA_ATEXIT", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_STDIO_UART, Option to globally enable stdio UART for all targets by default, type=bool, default=1, group=pico_stdlib |
| bool_flag( |
| name = "PICO_STDIO_UART", |
| build_setting_default = True, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_STDIO_USB, Option to globally enable stdio USB for all targets by default, type=bool, default=0, group=pico_stdlib |
| bool_flag( |
| name = "PICO_STDIO_USB", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_STDIO_SEMIHOSTING, Option to globally enable stdio semi-hosting for all targets by default, type=bool, default=0, group=pico_stdlib |
| bool_flag( |
| name = "PICO_STDIO_SEMIHOSTING", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_STDIO_RTT, Option to globally enable stdio RTT for all targets by default, type=bool, default=0, group=pico_stdlib |
| bool_flag( |
| name = "PICO_STDIO_RTT", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_MULTICORE_ENABLED, OPTION: Enable multicore handling, type=bool, default=1, group=pico_stdlib |
| bool_flag( |
| name = "PICO_MULTICORE_ENABLED", |
| build_setting_default = True, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_DOUBLE_IMPL, The default implementation for pico_double to link. auto selects an appropriate default for the current platform. rp2040 is only supported on the rp2040. dcp is only supported on rp2350, type=string, default=auto, group=build |
| string_flag( |
| name = "PICO_DEFAULT_DOUBLE_IMPL", |
| build_setting_default = "auto", |
| values = [ |
| "auto", |
| "compiler", |
| "dcp", |
| "rp2040", |
| "none", |
| ], |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_FLOAT_IMPL, The default implementation for pico_float to link. auto selects an appropriate default for the current platform. rp2040 is only supported on the rp2040. vfp and dcp are only supported on rp2350, type=string, default=auto, group=build |
| string_flag( |
| name = "PICO_DEFAULT_FLOAT_IMPL", |
| build_setting_default = "auto", |
| values = [ |
| "auto", |
| "compiler", |
| "dcp", |
| "rp2040", |
| "vfp", |
| "none", |
| ], |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_DIVIDER_IMPL, The default implementation for pico_divider to link. hardware uses accelerated divide instructions while compiler allows the compiler to decide how to handle divide instructions. auto uses the platform default (hardware on RP2040 and compiler on RP2350), type=string, default=auto, group=build |
| string_flag( |
| name = "PICO_DEFAULT_DIVIDER_IMPL", |
| build_setting_default = "auto", |
| values = [ |
| "auto", |
| "hardware", |
| "compiler", |
| ], |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_PRINTF_IMPL, The default implementation for pico_printf to link. compiler lets the compiler control printf behavior while pico provides a pico-specific implementation, type=string, default=double, group=build |
| string_flag( |
| name = "PICO_DEFAULT_PRINTF_IMPL", |
| build_setting_default = "pico", |
| values = [ |
| "pico", |
| "compiler", |
| "none", |
| ], |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_BINARY_INFO_ENABLED, Whether to include binary info in final firmware, type=bool, default=1, group=pico_stdlib |
| bool_flag( |
| name = "PICO_BINARY_INFO_ENABLED", |
| build_setting_default = True, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CMSIS_PATH, Label of a cc_ibrary providing CMSIS core, default="included stub CORE only impl", group=build |
| label_flag( |
| name = "PICO_CMSIS_PATH", |
| build_setting_default = "//src/rp2_common/cmsis:cmsis_core", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_USE_DEFAULT_MAX_PAGE_SIZE, Don't shrink linker max page to 4096, type=bool, default=0, advanced=true, group=pico_standard_link |
| bool_flag( |
| name = "PICO_USE_DEFAULT_MAX_PAGE_SIZE", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS, Maximum number of milliseconds to wait during initialization for a CDC connection from the host (negative means indefinite) during initialization, type=int, default=0, group=pico_stdio_usb |
| int_flag( |
| name = "PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", |
| build_setting_default = 0, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_TINYUSB_LIB, [Bazel only] The library that provides TinyUSB, default=@tinyusb//:tinyusb, group=build |
| label_flag( |
| name = "PICO_TINYUSB_LIB", |
| build_setting_default = "@tinyusb//:tinyusb", |
| ) |
| |
| # TODO: Bazel build for mbedtls at @mbedtls//:mbedtls. |
| # PICO_BAZEL_CONFIG: PICO_MBEDTLS_LIB, [Bazel only] The library that provides mbedtls, default=@mbedtls//:mbedtls, group=build |
| label_flag( |
| name = "PICO_MBEDTLS_LIB", |
| build_setting_default = "//bazel:incompatible_cc_lib", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_BINARY_INFO, [Bazel only] The library that provides custom_pico_binary_info to link into all binaries, default=//src/rp2_common/pico_standard_binary_info:default_binary_info, group=pico_standard_link |
| label_flag( |
| name = "PICO_DEFAULT_BINARY_INFO", |
| build_setting_default = "//src/rp2_common/pico_standard_binary_info:default_binary_info", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_BAZEL_BUILD_TYPE, The type of build (e.g. Debug or Release) to embed in binary info, type=string, default=pico, group=build |
| string_flag( |
| name = "PICO_BAZEL_BUILD_TYPE", |
| build_setting_default = "Debug", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_DEFAULT_LINKER_SCRIPT, [Bazel only] The library that provides a linker script to link into all binaries, default=//src/rp2_common/pico_crt0:default_linker_script, group=pico_standard_link |
| label_flag( |
| name = "PICO_DEFAULT_LINKER_SCRIPT", |
| build_setting_default = "//src/rp2_common/pico_crt0:default_linker_script", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_NO_TARGET_NAME, Don't define PICO_TARGET_NAME, type=bool, default=0, group=build |
| bool_flag( |
| name = "PICO_NO_TARGET_NAME", |
| build_setting_default = False, |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CONFIG_EXTRA_HEADER, [Bazel only] The cc_library that provides "pico_config_extra_headers.h", default=//bazel:no_extra_headers, group=pico_base |
| label_flag( |
| name = "PICO_CONFIG_EXTRA_HEADER", |
| build_setting_default = "//bazel:no_extra_headers", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CONFIG_PLATFORM_HEADER, [Bazel only] The cc_library that provides "pico_config_platform_headers.h" and defines PICO_BOARD, default=//src/common/pico_base_headers:default_platform_headers, group=pico_base |
| label_flag( |
| name = "PICO_CONFIG_PLATFORM_HEADER", |
| build_setting_default = "//src/boards:default", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CONFIG_HEADER, [Bazel only] The cc_library that defines PICO_CONFIG_HEADER or pico/config_autogen.h and other SDK critical defines (overrides PICO_BOARD setting), default=//bazel:generate_config_header, group=pico_base |
| label_flag( |
| name = "PICO_CONFIG_HEADER", |
| build_setting_default = "//bazel:generate_config_header", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_CLIB, [Bazel only] The flavor of libc porting layer to use. auto infers the correct value to use from PICO_TOOLCHAIN, group=pico_standard_link |
| string_flag( |
| name = "PICO_CLIB", |
| build_setting_default = "auto", |
| values = [ |
| "auto", |
| "llvm_libc", |
| "newlib", |
| "picolibc", |
| ], |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_BTSTACK_CONFIG, [Bazel only] The cc_library that provides btstack_config.h, default=//bazel:empty_cc_lib, group=wireless |
| label_flag( |
| name = "PICO_BTSTACK_CONFIG", |
| build_setting_default = "//bazel:empty_cc_lib", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_LWIP_CONFIG, [Bazel only] The cc_library that provides lwipopts.h, default=//bazel:empty_cc_lib, group=wireless |
| label_flag( |
| name = "PICO_LWIP_CONFIG", |
| build_setting_default = "//bazel:empty_cc_lib", |
| ) |
| |
| # PICO_BAZEL_CONFIG: PICO_FREERTOS_LIB, [Bazel only] The cc_library that provides FreeRTOS, default=//bazel:empty_cc_lib, group=wireless |
| label_flag( |
| name = "PICO_FREERTOS_LIB", |
| build_setting_default = "//bazel:empty_cc_lib", |
| ) |