blob: 4b65e892195b57cdb0f1419a0d389d2bd550139f [file] [log] [blame]
load("@pico-sdk//bazel:defs.bzl", "incompatible_with_config")
package(default_visibility = ["//visibility:public"])
cc_library(
name = "pico_sync_headers",
hdrs = [
"include/pico/critical_section.h",
"include/pico/lock_core.h",
"include/pico/mutex.h",
"include/pico/sem.h",
"include/pico/sync.h",
],
includes = ["include"],
visibility = [
"//src/rp2_common/hardware_sync:__pkg__",
"//src/rp2_common/hardware_sync_spin_lock:__pkg__",
],
)
cc_library(
name = "pico_sync",
srcs = [
"critical_section.c",
"lock_core.c",
"mutex.c",
"sem.c",
],
# valid_params_if() uses Statement Expressions, which aren't supported in MSVC.
target_compatible_with = incompatible_with_config("@rules_cc//cc/compiler:msvc-cl"),
deps = [
":pico_sync_headers",
"//src/common/pico_base_headers",
"//src/common/pico_time:pico_time_headers",
] + select({
"//bazel/constraint:host": [
"//src/host/hardware_sync",
"//src/host/pico_runtime",
],
"//conditions:default": [
"//src/rp2_common/hardware_sync",
"//src/rp2_common/hardware_sync_spin_lock",
"//src/rp2_common/pico_runtime_init",
],
}),
)