| load("//bazel:defs.bzl", "compatible_with_config", "compatible_with_rp2", "incompatible_with_config") |
| load("//bazel/util:sdk_define.bzl", "pico_sdk_define") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| alias( |
| name = "pico_stdio_usb", |
| actual = select({ |
| "//bazel/constraint:pico_stdio_usb_enabled": ":pico_stdio_usb_enabled", |
| "//conditions:default": ":pico_stdio_usb_disabled", |
| }), |
| ) |
| |
| # Picotool requires this, so it should work on host as well as rp2. |
| cc_library( |
| name = "reset_interface_headers", |
| hdrs = ["include/pico/stdio_usb/reset_interface.h"], |
| includes = ["include"], |
| deps = ["//src/common/pico_usb_reset_interface_headers"], |
| ) |
| |
| cc_library( |
| name = "tusb_config", |
| hdrs = ["include/tusb_config.h"], |
| includes = ["include"], |
| target_compatible_with = compatible_with_rp2(), |
| ) |
| |
| pico_sdk_define( |
| name = "LIB_PICO_STDIO_USB", |
| define_name = "LIB_PICO_STDIO_USB", |
| from_flag = "//bazel/config:PICO_STDIO_USB", |
| ) |
| |
| pico_sdk_define( |
| name = "PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", |
| define_name = "PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", |
| from_flag = "//bazel/config:PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", |
| ) |
| |
| cc_library( |
| name = "pico_stdio_usb_headers", |
| hdrs = ["include/pico/stdio_usb.h"], |
| includes = ["include"], |
| target_compatible_with = compatible_with_rp2(), |
| visibility = [ |
| ":__pkg__", |
| "//src/rp2_common/tinyusb:__pkg__", |
| ], |
| deps = [ |
| ":LIB_PICO_STDIO_USB", |
| ":PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", |
| ], |
| ) |
| |
| cc_library( |
| name = "pico_stdio_usb_enabled", |
| srcs = [ |
| "reset_interface.c", |
| "stdio_usb.c", |
| "stdio_usb_descriptors.c", |
| ], |
| target_compatible_with = compatible_with_config( |
| "//bazel/constraint:pico_stdio_usb_enabled", |
| ) + compatible_with_rp2(), |
| deps = [ |
| ":LIB_PICO_STDIO_USB", |
| ":PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", |
| ":pico_stdio_usb_headers", |
| ":reset_interface_headers", |
| "//bazel/config:PICO_TINYUSB_LIB", |
| "//src/common/pico_binary_info", |
| "//src/common/pico_sync", |
| "//src/rp2_common/hardware_irq", |
| "//src/rp2_common/hardware_watchdog", |
| "//src/rp2_common/pico_bootrom", |
| "//src/rp2_common/pico_stdio:pico_stdio_headers", |
| "//src/rp2_common/pico_unique_id", |
| ], |
| # Ensure `stdio_usb_descriptors.c` isn't affected by link order. |
| alwayslink = True, |
| ) |
| |
| # Stub library that does NOT link in stdio USB support libs. |
| cc_library( |
| name = "pico_stdio_usb_disabled", |
| target_compatible_with = incompatible_with_config( |
| "//bazel/constraint:pico_stdio_usb_enabled", |
| ) + compatible_with_rp2(), |
| deps = [ |
| ":PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", |
| ":pico_stdio_usb_headers", |
| "//src/rp2_common/pico_stdio:pico_stdio_headers", |
| ], |
| ) |