1load("//bazel/util:label_flag_matches.bzl", "label_flag_matches") 2 3package(default_visibility = ["//visibility:public"]) 4 5# This constraint represents the dimension that guides the Pico SDK build. This 6# constraint will only ever enumerate specific MCUs (and the host), and does NOT 7# cover the differences from board-to-board. 8constraint_setting( 9 name = "sdk_target", 10 default_constraint_value = "host", 11) 12 13# This constraint value is used to guide the host build. 14constraint_value( 15 name = "host", 16 constraint_setting = ":sdk_target", 17) 18 19# This constraint value is used to guide parts of the build that are specific 20# to the rp2040. 21constraint_value( 22 name = "rp2040", 23 constraint_setting = ":sdk_target", 24) 25 26# This constraint value is used to guide parts of the build that are specific 27# to the rp2350. 28constraint_value( 29 name = "rp2350", 30 constraint_setting = ":sdk_target", 31) 32 33constraint_setting( 34 name = "wireless_support", 35 default_constraint_value = "no_wireless", 36) 37 38constraint_value( 39 name = "no_wireless", 40 constraint_setting = ":wireless_support", 41) 42 43constraint_value( 44 name = "cyw43_wireless", 45 constraint_setting = ":wireless_support", 46) 47 48config_setting( 49 name = "is_pico_w", 50 flag_values = {"//bazel/config:PICO_BOARD": "pico_w"}, 51) 52 53config_setting( 54 name = "is_pico2_w", 55 flag_values = {"//bazel/config:PICO_BOARD": "pico2_w"}, 56) 57 58config_setting( 59 name = "pico_toolchain_clang_enabled", 60 flag_values = {"//bazel/config:PICO_TOOLCHAIN": "clang"}, 61) 62 63config_setting( 64 name = "pico_toolchain_gcc_enabled", 65 flag_values = {"//bazel/config:PICO_TOOLCHAIN": "gcc"}, 66) 67 68config_setting( 69 name = "pico_baremetal_enabled", 70 flag_values = {"//bazel/config:PICO_BARE_METAL": "True"}, 71) 72 73config_setting( 74 name = "pico_no_gc_sections_enabled", 75 flag_values = {"//bazel/config:PICO_NO_GC_SECTIONS": "True"}, 76) 77 78config_setting( 79 name = "pico_cxx_enable_exceptions_enabled", 80 flag_values = {"//bazel/config:PICO_CXX_ENABLE_EXCEPTIONS": "True"}, 81) 82 83config_setting( 84 name = "pico_cxx_enable_rtti_enabled", 85 flag_values = {"//bazel/config:PICO_CXX_ENABLE_RTTI": "True"}, 86) 87 88config_setting( 89 name = "pico_cxx_enable_cxa_atexit_enabled", 90 flag_values = {"//bazel/config:PICO_CXX_ENABLE_RTTI": "True"}, 91) 92 93config_setting( 94 name = "pico_stdio_uart_enabled", 95 flag_values = {"//bazel/config:PICO_STDIO_UART": "True"}, 96) 97 98config_setting( 99 name = "pico_stdio_usb_enabled", 100 flag_values = {"//bazel/config:PICO_STDIO_USB": "True"}, 101) 102 103config_setting( 104 name = "pico_stdio_semihosting_enabled", 105 flag_values = {"//bazel/config:PICO_STDIO_SEMIHOSTING": "True"}, 106) 107 108config_setting( 109 name = "pico_stdio_rtt_enabled", 110 flag_values = {"//bazel/config:PICO_STDIO_RTT": "True"}, 111) 112 113config_setting( 114 name = "pico_multicore_enabled", 115 flag_values = {"//bazel/config:PICO_MULTICORE_ENABLED": "True"}, 116) 117 118config_setting( 119 name = "pico_float_auto_enabled", 120 flag_values = {"//bazel/config:PICO_DEFAULT_FLOAT_IMPL": "auto"}, 121) 122 123config_setting( 124 name = "pico_float_compiler_enabled", 125 flag_values = {"//bazel/config:PICO_DEFAULT_FLOAT_IMPL": "compiler"}, 126) 127 128config_setting( 129 name = "pico_float_dcp_enabled", 130 flag_values = {"//bazel/config:PICO_DEFAULT_FLOAT_IMPL": "dcp"}, 131) 132 133config_setting( 134 name = "pico_float_rp2040_enabled", 135 flag_values = {"//bazel/config:PICO_DEFAULT_FLOAT_IMPL": "rp2040"}, 136) 137 138config_setting( 139 name = "pico_float_vfp_enabled", 140 flag_values = {"//bazel/config:PICO_DEFAULT_FLOAT_IMPL": "vfp"}, 141) 142 143config_setting( 144 name = "pico_double_auto_enabled", 145 flag_values = {"//bazel/config:PICO_DEFAULT_DOUBLE_IMPL": "auto"}, 146) 147 148config_setting( 149 name = "pico_double_compiler_enabled", 150 flag_values = {"//bazel/config:PICO_DEFAULT_DOUBLE_IMPL": "compiler"}, 151) 152 153config_setting( 154 name = "pico_double_dcp_enabled", 155 flag_values = {"//bazel/config:PICO_DEFAULT_DOUBLE_IMPL": "dcp"}, 156) 157 158config_setting( 159 name = "pico_double_rp2040_enabled", 160 flag_values = {"//bazel/config:PICO_DEFAULT_DOUBLE_IMPL": "rp2040"}, 161) 162 163config_setting( 164 name = "pico_divider_hardware_enabled", 165 flag_values = {"//bazel/config:PICO_DEFAULT_DIVIDER_IMPL": "hardware"}, 166) 167 168config_setting( 169 name = "pico_divider_auto_enabled", 170 flag_values = {"//bazel/config:PICO_DEFAULT_DIVIDER_IMPL": "auto"}, 171) 172 173config_setting( 174 name = "pico_printf_pico_enabled", 175 flag_values = {"//bazel/config:PICO_DEFAULT_PRINTF_IMPL": "pico"}, 176) 177 178config_setting( 179 name = "pico_printf_compiler_enabled", 180 flag_values = {"//bazel/config:PICO_DEFAULT_PRINTF_IMPL": "compiler"}, 181) 182 183config_setting( 184 name = "pico_async_context_poll_enabled", 185 flag_values = {"//bazel/config:PICO_ASYNC_CONTEXT_IMPL": "poll"}, 186) 187 188config_setting( 189 name = "pico_async_context_threadsafe_background_enabled", 190 flag_values = {"//bazel/config:PICO_ASYNC_CONTEXT_IMPL": "threadsafe_background"}, 191) 192 193config_setting( 194 name = "pico_async_context_freertos_enabled", 195 flag_values = {"//bazel/config:PICO_ASYNC_CONTEXT_IMPL": "freertos"}, 196) 197 198config_setting( 199 name = "pico_use_default_max_page_size_enabled", 200 flag_values = {"//bazel/config:PICO_USE_DEFAULT_MAX_PAGE_SIZE": "True"}, 201) 202 203config_setting( 204 name = "pico_no_target_name_enabled", 205 flag_values = {"//bazel/config:PICO_NO_TARGET_NAME": "True"}, 206) 207 208config_setting( 209 name = "pico_clib_llvm_libc_enabled", 210 flag_values = {"//bazel/config:PICO_CLIB": "llvm_libc"}, 211) 212 213config_setting( 214 name = "pico_clib_newlib_enabled", 215 flag_values = {"//bazel/config:PICO_CLIB": "newlib"}, 216) 217 218config_setting( 219 name = "pico_clib_picolibc_enabled", 220 flag_values = {"//bazel/config:PICO_CLIB": "picolibc"}, 221) 222 223config_setting( 224 name = "pico_bt_enable_ble_enabled", 225 flag_values = {"//bazel/config:PICO_BT_ENABLE_BLE": "True"}, 226) 227 228config_setting( 229 name = "pico_bt_enable_classic_enabled", 230 flag_values = {"//bazel/config:PICO_BT_ENABLE_CLASSIC": "True"}, 231) 232 233config_setting( 234 name = "pico_bt_enable_mesh_enabled", 235 flag_values = {"//bazel/config:PICO_BT_ENABLE_MESH": "True"}, 236) 237 238label_flag_matches( 239 name = "pico_lwip_config_unset", 240 flag = "//bazel/config:PICO_LWIP_CONFIG", 241 value = "//bazel:empty_cc_lib", 242) 243 244label_flag_matches( 245 name = "pico_btstack_config_unset", 246 flag = "//bazel/config:PICO_BTSTACK_CONFIG", 247 value = "//bazel:empty_cc_lib", 248) 249 250label_flag_matches( 251 name = "pico_freertos_unset", 252 flag = "//bazel/config:PICO_FREERTOS_LIB", 253 value = "//bazel:empty_cc_lib", 254) 255