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 "pw_cc_test", 19) 20 21package(default_visibility = ["//visibility:public"]) 22 23licenses(["notice"]) # Apache License 2.0 24 25# TODO(pwbug/101): Need to add support for facades/backends to Bazel. 26PW_CHRONO_SYSTEM_CLOCK_BACKEND = "//pw_chrono_stl:system_clock" 27 28pw_cc_library( 29 name = "epoch", 30 hdrs = [ 31 "public/pw_chrono/epoch.h", 32 ], 33 includes = ["public"], 34) 35 36pw_cc_library( 37 name = "system_clock_facade", 38 hdrs = [ 39 "public/pw_chrono/internal/system_clock_macros.h", 40 "public/pw_chrono/system_clock.h", 41 ], 42 includes = ["public"], 43 srcs = [ 44 "system_clock.cc" 45 ], 46 deps = [ 47 ":epoch", 48 PW_CHRONO_SYSTEM_CLOCK_BACKEND + "_headers", 49 "//pw_preprocessor", 50 ], 51) 52 53pw_cc_library( 54 name = "system_clock", 55 deps = [ 56 ":system_clock_facade", 57 PW_CHRONO_SYSTEM_CLOCK_BACKEND + "_headers", 58 ], 59) 60 61pw_cc_library( 62 name = "system_clock_backend", 63 deps = [ 64 PW_CHRONO_SYSTEM_CLOCK_BACKEND, 65 ], 66) 67 68pw_cc_library( 69 name = "simulated_system_clock", 70 hdrs = [ 71 "public/pw_chrono/simulated_system_clock.h", 72 ], 73 deps = [ 74 ":system_clock", 75 "//pw_sync:interrupt_spin_lock", 76 ], 77) 78 79pw_cc_test( 80 name = "simulated_system_clock_test", 81 srcs = [ 82 "simulated_system_clock_test.cc", 83 ], 84 deps = [ 85 ":simulated_system_clock", 86 "//pw_unit_test", 87 ], 88) 89 90pw_cc_test( 91 name = "system_clock_facade_test", 92 srcs = [ 93 "system_clock_facade_test.cc", 94 "system_clock_facade_test_c.c", 95 ], 96 deps = [ 97 ":system_clock", 98 "//pw_preprocessor", 99 "//pw_unit_test", 100 ], 101) 102