1load("//bazel:defs.bzl", "compatible_with_config", "compatible_with_rp2", "incompatible_with_config") 2load("//bazel/util:sdk_define.bzl", "pico_sdk_define") 3 4package(default_visibility = ["//visibility:public"]) 5 6alias( 7 name = "pico_stdio_usb", 8 actual = select({ 9 "//bazel/constraint:pico_stdio_usb_enabled": ":pico_stdio_usb_enabled", 10 "//conditions:default": ":pico_stdio_usb_disabled", 11 }), 12) 13 14# Picotool requires this, so it should work on host as well as rp2. 15cc_library( 16 name = "reset_interface_headers", 17 hdrs = ["include/pico/stdio_usb/reset_interface.h"], 18 includes = ["include"], 19 deps = ["//src/common/pico_usb_reset_interface_headers"], 20) 21 22cc_library( 23 name = "tusb_config", 24 hdrs = ["include/tusb_config.h"], 25 includes = ["include"], 26 target_compatible_with = compatible_with_rp2(), 27) 28 29pico_sdk_define( 30 name = "LIB_PICO_STDIO_USB", 31 define_name = "LIB_PICO_STDIO_USB", 32 from_flag = "//bazel/config:PICO_STDIO_USB", 33) 34 35pico_sdk_define( 36 name = "PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", 37 define_name = "PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", 38 from_flag = "//bazel/config:PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", 39) 40 41cc_library( 42 name = "pico_stdio_usb_headers", 43 hdrs = ["include/pico/stdio_usb.h"], 44 includes = ["include"], 45 target_compatible_with = compatible_with_rp2(), 46 visibility = [ 47 ":__pkg__", 48 "//src/rp2_common/tinyusb:__pkg__", 49 ], 50 deps = [ 51 ":LIB_PICO_STDIO_USB", 52 ":PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", 53 ], 54) 55 56cc_library( 57 name = "pico_stdio_usb_enabled", 58 srcs = [ 59 "reset_interface.c", 60 "stdio_usb.c", 61 "stdio_usb_descriptors.c", 62 ], 63 target_compatible_with = compatible_with_config( 64 "//bazel/constraint:pico_stdio_usb_enabled", 65 ) + compatible_with_rp2(), 66 deps = [ 67 ":LIB_PICO_STDIO_USB", 68 ":PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", 69 ":pico_stdio_usb_headers", 70 ":reset_interface_headers", 71 "//bazel/config:PICO_TINYUSB_LIB", 72 "//src/common/pico_binary_info", 73 "//src/common/pico_sync", 74 "//src/rp2_common/hardware_irq", 75 "//src/rp2_common/hardware_watchdog", 76 "//src/rp2_common/pico_bootrom", 77 "//src/rp2_common/pico_stdio:pico_stdio_headers", 78 "//src/rp2_common/pico_unique_id", 79 ], 80 # Ensure `stdio_usb_descriptors.c` isn't affected by link order. 81 alwayslink = True, 82) 83 84# Stub library that does NOT link in stdio USB support libs. 85cc_library( 86 name = "pico_stdio_usb_disabled", 87 target_compatible_with = incompatible_with_config( 88 "//bazel/constraint:pico_stdio_usb_enabled", 89 ) + compatible_with_rp2(), 90 deps = [ 91 ":PICO_STDIO_USB_CONNECT_WAIT_TIMEOUT_MS", 92 ":pico_stdio_usb_headers", 93 "//src/rp2_common/pico_stdio:pico_stdio_headers", 94 ], 95) 96