blob: acf8774880c3b4f74568c36e8e460df25cdd86c3 [file] [log] [blame]
load("@pico-sdk//bazel:defs.bzl", "incompatible_with_config")
package(default_visibility = ["//visibility:public"])
# This exists to break a dependency cycle between
# this library and //src/common/pico_sync.
# Application code should always use :pico_time instead.
cc_library(
name = "pico_time_headers",
hdrs = [
"include/pico/time.h",
"include/pico/timeout_helper.h",
],
includes = ["include"],
# invalid_params_if() uses Statement Expressions, which aren't supported in MSVC.
target_compatible_with = incompatible_with_config("@rules_cc//cc/compiler:msvc-cl"),
visibility = [
"//src/common/pico_sync:__pkg__",
"//src/host/pico_time_adapter:__pkg__",
"//src/rp2_common/tinyusb:__pkg__",
],
deps = select({
"//bazel/constraint:host": [
"//src/host/hardware_timer:hardware_timer_headers",
],
"//conditions:default": [
"//src/rp2_common/hardware_timer:hardware_timer_headers",
],
}),
)
cc_library(
name = "pico_time",
srcs = [
"time.c",
"timeout_helper.c",
],
hdrs = [
"include/pico/time.h",
"include/pico/timeout_helper.h",
],
# macOS defines __weak as part of Xcode, and the semantics are unfortunately
# different.
copts = select({
"@platforms//os:macos": ["-Wno-ignored-attributes"],
"//conditions:default": [],
}),
includes = ["include"],
deps = [
"//src/common/pico_base_headers",
"//src/common/pico_sync",
"//src/common/pico_util",
] + select({
"//bazel/constraint:host": [
"//src/host/hardware_gpio",
"//src/host/hardware_timer",
"//src/host/pico_runtime",
"//src/host/pico_time_adapter",
],
"//conditions:default": [
"//src/rp2_common/hardware_gpio",
"//src/rp2_common/hardware_timer",
"//src/rp2_common/pico_runtime_init",
"//src/rp2_common/pico_time_adapter",
],
}),
)