1load("@pico-sdk//bazel:defs.bzl", "incompatible_with_config") 2 3package(default_visibility = ["//visibility:public"]) 4 5cc_library( 6 name = "pico_sync_headers", 7 hdrs = [ 8 "include/pico/critical_section.h", 9 "include/pico/lock_core.h", 10 "include/pico/mutex.h", 11 "include/pico/sem.h", 12 "include/pico/sync.h", 13 ], 14 includes = ["include"], 15 visibility = [ 16 "//src/rp2_common/hardware_sync:__pkg__", 17 "//src/rp2_common/hardware_sync_spin_lock:__pkg__", 18 ], 19) 20 21cc_library( 22 name = "pico_sync", 23 srcs = [ 24 "critical_section.c", 25 "lock_core.c", 26 "mutex.c", 27 "sem.c", 28 ], 29 # valid_params_if() uses Statement Expressions, which aren't supported in MSVC. 30 target_compatible_with = incompatible_with_config("@rules_cc//cc/compiler:msvc-cl"), 31 deps = [ 32 ":pico_sync_headers", 33 "//src/common/pico_base_headers", 34 "//src/common/pico_time:pico_time_headers", 35 ] + select({ 36 "//bazel/constraint:host": [ 37 "//src/host/hardware_sync", 38 "//src/host/pico_runtime", 39 ], 40 "//conditions:default": [ 41 "//src/rp2_common/hardware_sync", 42 "//src/rp2_common/hardware_sync_spin_lock", 43 "//src/rp2_common/pico_runtime_init", 44 ], 45 }), 46) 47