1# Copyright 2020 The Pigweed Authors 2# 3# Licensed under the Apache License, Version 2.0 (the "License"); you may not 4# use this file except in compliance with the License. You may obtain a copy of 5# the License at 6# 7# https://www.apache.org/licenses/LICENSE-2.0 8# 9# Unless required by applicable law or agreed to in writing, software 10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 12# License for the specific language governing permissions and limitations under 13# the License. 14 15load( 16 "//pw_build:pigweed.bzl", 17 "pw_cc_library", 18) 19 20package(default_visibility = ["//visibility:public"]) 21 22licenses(["notice"]) 23 24pw_cc_library( 25 name = "system_clock_headers", 26 hdrs = [ 27 "public/pw_chrono_freertos/config.h", 28 "public/pw_chrono_freertos/system_clock_config.h", 29 "public/pw_chrono_freertos/system_clock_constants.h", 30 "public_overrides/pw_chrono_backend/system_clock_config.h", 31 ], 32 includes = [ 33 "public", 34 "public_overrides", 35 ], 36 target_compatible_with = [ 37 "//pw_build/constraints/rtos:freertos", 38 ], 39 deps = [ 40 "//pw_chrono:epoch", 41 "@freertos", 42 ], 43) 44 45pw_cc_library( 46 name = "system_clock", 47 srcs = [ 48 "system_clock.cc", 49 ], 50 target_compatible_with = [ 51 "//pw_build/constraints/rtos:freertos", 52 ], 53 deps = [ 54 ":system_clock_headers", 55 "//pw_chrono:system_clock_facade", 56 "//pw_interrupt:context", 57 "//pw_sync:interrupt_spin_lock", 58 "@freertos", 59 ], 60) 61 62pw_cc_library( 63 name = "system_timer_headers", 64 hdrs = [ 65 "public/pw_chrono_freertos/system_timer_inline.h", 66 "public/pw_chrono_freertos/system_timer_native.h", 67 "public_overrides/pw_chrono_backend/system_timer_inline.h", 68 "public_overrides/pw_chrono_backend/system_timer_native.h", 69 ], 70 includes = [ 71 "public", 72 "public_overrides", 73 ], 74 deps = [ 75 "//pw_chrono:system_clock", 76 "//pw_function", 77 "//pw_chrono:system_timer_facade", 78 # TODO(b/234876414): This should depend on FreeRTOS but our third parties 79 # currently do not have Bazel support. 80 ], 81) 82 83pw_cc_library( 84 name = "system_timer", 85 srcs = [ 86 "system_timer.cc", 87 ], 88 deps = [ 89 ":system_timer_headers", 90 "//pw_chrono:system_timer_facade", 91 ":system_clock", 92 "//pw_assert", 93 # TODO(b/234876414): This should depend on FreeRTOS but our third parties 94 # currently do not have Bazel support. 95 ], 96) 97