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