1load("@pico-sdk//bazel:defs.bzl", "incompatible_with_config") 2 3package(default_visibility = ["//visibility:public"]) 4 5# This exists to break a dependency cycle between 6# this library and //src/common/pico_sync. 7# Application code should always use :pico_time instead. 8cc_library( 9 name = "pico_time_headers", 10 hdrs = [ 11 "include/pico/time.h", 12 "include/pico/timeout_helper.h", 13 ], 14 includes = ["include"], 15 # invalid_params_if() uses Statement Expressions, which aren't supported in MSVC. 16 target_compatible_with = incompatible_with_config("@rules_cc//cc/compiler:msvc-cl"), 17 visibility = [ 18 "//src/common/pico_sync:__pkg__", 19 "//src/host/pico_time_adapter:__pkg__", 20 "//src/rp2_common/tinyusb:__pkg__", 21 ], 22 deps = select({ 23 "//bazel/constraint:host": [ 24 "//src/host/hardware_timer:hardware_timer_headers", 25 ], 26 "//conditions:default": [ 27 "//src/rp2_common/hardware_timer:hardware_timer_headers", 28 ], 29 }), 30) 31 32cc_library( 33 name = "pico_time", 34 srcs = [ 35 "time.c", 36 "timeout_helper.c", 37 ], 38 hdrs = [ 39 "include/pico/time.h", 40 "include/pico/timeout_helper.h", 41 ], 42 # macOS defines __weak as part of Xcode, and the semantics are unfortunately 43 # different. 44 copts = select({ 45 "@platforms//os:macos": ["-Wno-ignored-attributes"], 46 "//conditions:default": [], 47 }), 48 includes = ["include"], 49 deps = [ 50 "//src/common/pico_base_headers", 51 "//src/common/pico_sync", 52 "//src/common/pico_util", 53 ] + select({ 54 "//bazel/constraint:host": [ 55 "//src/host/hardware_gpio", 56 "//src/host/hardware_timer", 57 "//src/host/pico_runtime", 58 "//src/host/pico_time_adapter", 59 ], 60 "//conditions:default": [ 61 "//src/rp2_common/hardware_gpio", 62 "//src/rp2_common/hardware_timer", 63 "//src/rp2_common/pico_runtime_init", 64 "//src/rp2_common/pico_time_adapter", 65 ], 66 }), 67) 68