1load("//bazel:defs.bzl", "pico_board_config") 2load("//bazel/util:multiple_choice_flag.bzl", "declare_flag_choices", "flag_choice") 3 4package(default_visibility = ["//visibility:public"]) 5 6# Known board choices: 7BOARD_CHOICES = [ 8 "0xcb_helios", 9 "adafruit_feather_rp2040_usb_host", 10 "adafruit_feather_rp2040", 11 "adafruit_itsybitsy_rp2040", 12 "adafruit_kb2040", 13 "adafruit_macropad_rp2040", 14 "adafruit_qtpy_rp2040", 15 "adafruit_trinkey_qt2040", 16 "amethyst_fpga", 17 "archi", 18 "arduino_nano_rp2040_connect", 19 "cytron_maker_pi_rp2040", 20 "datanoisetv_rp2040_dsp", 21 "defcon32_badge", 22 "eetree_gamekit_rp2040", 23 "garatronic_pybstick26_rp2040", 24 "gen4_rp2350_24", 25 "gen4_rp2350_24ct", 26 "gen4_rp2350_24t", 27 "gen4_rp2350_28", 28 "gen4_rp2350_28ct", 29 "gen4_rp2350_28t", 30 "gen4_rp2350_32", 31 "gen4_rp2350_32ct", 32 "gen4_rp2350_32t", 33 "gen4_rp2350_35", 34 "gen4_rp2350_35ct", 35 "gen4_rp2350_35t", 36 "hellbender_2350A_devboard", 37 "ilabs_challenger_rp2350_bconnect", 38 "ilabs_challenger_rp2350_wifi_ble", 39 "ilabs_opendec02", 40 "melopero_perpetuo_rp2350_lora", 41 "melopero_shake_rp2040", 42 "metrotech_xerxes_rp2040", 43 "net8086_usb_interposer", 44 "none", 45 "nullbits_bit_c_pro", 46 "phyx_rick_tny_rp2350", 47 "pi-plates_micropi", 48 "pico_w", 49 "pico", 50 "pico2", 51 "pimoroni_badger2040", 52 "pimoroni_interstate75", 53 "pimoroni_keybow2040", 54 "pimoroni_motor2040", 55 "pimoroni_pga2040", 56 "pimoroni_pga2350", 57 "pimoroni_pico_plus2_rp2350", 58 "pimoroni_picolipo_16mb", 59 "pimoroni_picolipo_4mb", 60 "pimoroni_picosystem", 61 "pimoroni_plasma2040", 62 "pimoroni_plasma2350", 63 "pimoroni_servo2040", 64 "pimoroni_tiny2040_2mb", 65 "pimoroni_tiny2040", 66 "pimoroni_tiny2350", 67 "pololu_3pi_2040_robot", 68 "pololu_zumo_2040_robot", 69 "seeed_xiao_rp2040", 70 "seeed_xiao_rp2350", 71 "solderparty_rp2040_stamp_carrier", 72 "solderparty_rp2040_stamp_round_carrier", 73 "solderparty_rp2040_stamp", 74 "solderparty_rp2350_stamp_xl", 75 "solderparty_rp2350_stamp", 76 "sparkfun_micromod", 77 "sparkfun_promicro_rp2350", 78 "sparkfun_promicro", 79 "sparkfun_thingplus", 80 "switchscience_picossci2_conta_base", 81 "switchscience_picossci2_dev_board", 82 "switchscience_picossci2_micro", 83 "switchscience_picossci2_rp2350_breakout", 84 "switchscience_picossci2_tiny", 85 "tinycircuits_thumby_color_rp2350", 86 "vgaboard", 87 "waveshare_rp2040_lcd_0.96", 88 "waveshare_rp2040_lcd_1.28", 89 "waveshare_rp2040_one", 90 "waveshare_rp2040_plus_16mb", 91 "waveshare_rp2040_plus_4mb", 92 "waveshare_rp2040_zero", 93 "weact_studio_rp2040_16mb", 94 "weact_studio_rp2040_2mb", 95 "weact_studio_rp2040_4mb", 96 "weact_studio_rp2040_8mb", 97 "wiznet_w5100s_evb_pico", 98] 99 100BOARD_CHOICE_FILES = ["include/boards/" + c + ".h" for c in BOARD_CHOICES] 101 102BOARD_CHOICE_MAP = {c: [":{}".format(c)] for c in BOARD_CHOICES} 103 104# PICO_BUILD_DEFINE: PICO_BOARD, Name of board, type=string, default=CMake PICO_BOARD variable, group=pico_base 105[ 106 pico_board_config( 107 name = board, 108 hdrs = BOARD_CHOICE_FILES, 109 defines = [ 110 'PICO_BOARD=\\"{}\\"'.format(board), 111 ], 112 includes = ["include"], 113 platform_includes = [ 114 "cmsis/rename_exceptions.h", 115 "boards/{}.h".format(board), 116 ], 117 deps = ["//src/rp2_common/cmsis:rename_exceptions"], 118 ) 119 for board in BOARD_CHOICES 120] 121 122# Creates a config_setting for each known board option with the name: 123# PICO_BOARD_[choice] 124declare_flag_choices( 125 "//bazel/config:PICO_BOARD", 126 BOARD_CHOICES, 127) 128 129cc_library( 130 name = "default", 131 deps = select( 132 flag_choice( 133 "//bazel/config:PICO_BOARD", 134 ":__pkg__", 135 BOARD_CHOICE_MAP, 136 ) | { 137 "//bazel/constraint:host": [":none"], 138 "//conditions:default": [":none"], 139 }, 140 ), 141) 142