load("//bazel:defs.bzl", "pico_board_config") load("//bazel/util:multiple_choice_flag.bzl", "declare_flag_choices", "flag_choice") package(default_visibility = ["//visibility:public"]) # Find all boards. BOARD_CHOICE_FILES = glob(["include/boards/*.h"]) # Extract just the name of the board. BOARD_CHOICES = [ path.removeprefix("include/boards/").removesuffix(".h") for path in BOARD_CHOICE_FILES ] BOARD_CHOICE_MAP = {c: [":{}".format(c)] for c in BOARD_CHOICES} # PICO_BUILD_DEFINE: PICO_BOARD, Name of board, type=string, default=CMake PICO_BOARD variable, group=pico_base [ pico_board_config( name = board, hdrs = BOARD_CHOICE_FILES, defines = [ 'PICO_BOARD=\\"{}\\"'.format(board), ], includes = ["include"], platform_includes = [ "cmsis/rename_exceptions.h", "boards/{}.h".format(board), ], deps = ["//src/rp2_common/cmsis:rename_exceptions"], ) for board in BOARD_CHOICES ] # Creates a config_setting for each known board option with the name: # PICO_BOARD_[choice] declare_flag_choices( "//bazel/config:PICO_BOARD", BOARD_CHOICES, ) cc_library( name = "default", deps = select( flag_choice( "//bazel/config:PICO_BOARD", ":__pkg__", BOARD_CHOICE_MAP, ) | { "//bazel/constraint:host": [":none"], "//conditions:default": [":none"], }, ), )