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 15include($ENV{PW_ROOT}/pw_build/pigweed.cmake) 16 17pw_add_module_library(pw_chrono.epoch 18 HEADERS 19 public/pw_chrono/epoch.h 20 PUBLIC_INCLUDES 21 public 22) 23 24pw_add_facade(pw_chrono.system_clock 25 HEADERS 26 public/pw_chrono/internal/system_clock_macros.h 27 public/pw_chrono/system_clock.h 28 PUBLIC_INCLUDES 29 public 30 PUBLIC_DEPS 31 pw_chrono.epoch 32 pw_preprocessor 33 SOURCES 34 system_clock.cc 35) 36 37pw_add_facade(pw_chrono.system_timer 38 HEADERS 39 public/pw_chrono/system_timer.h 40 PUBLIC_INCLUDES 41 public 42 PUBLIC_DEPS 43 pw_chrono.system_clock 44 pw_function 45) 46 47# Dependency injectable implementation of pw::chrono::SystemClock::Interface. 48pw_add_module_library(pw_chrono.simulated_system_clock 49 HEADERS 50 public/pw_chrono/simulated_system_clock.h 51 PUBLIC_INCLUDES 52 public 53 PUBLIC_DEPS 54 pw_chrono.system_clock 55 pw_sync.interrupt_spin_lock 56) 57 58# TODO(ewout): Renable this once we've resolved the backend variable definition 59# ordering issue, likely by mirroring GN's definition of variables in external 60# files which can be imported where needed. 61# if((NOT "${pw_chrono.system_clock_BACKEND}" 62# STREQUAL "pw_chrono.system_clock.NO_BACKEND_SET") AND 63# (NOT "${pw_sync.interrupt_spin_lock_BACKEND}" 64# STREQUAL "pw_sync.interrupt_spin_lock.NO_BACKEND_SET")) 65# pw_add_test(pw_chrono.simulated_system_clock_test 66# SOURCES 67# simulated_system_clock_test.cc 68# DEPS 69# pw_chrono.simulated_system_clock 70# GROUPS 71# modules 72# pw_chrono 73# ) 74# endif() 75 76if(NOT "${pw_chrono.system_clock_BACKEND}" 77 STREQUAL "pw_chrono.system_clock.NO_BACKEND_SET") 78 pw_add_test(pw_chrono.system_clock_facade_test 79 SOURCES 80 system_clock_facade_test.cc 81 system_clock_facade_test_c.c 82 DEPS 83 pw_chrono.system_clock 84 pw_preprocessor 85 GROUPS 86 modules 87 pw_chrono 88 ) 89endif() 90 91if(NOT "${pw_chrono.system_timer_BACKEND}" 92 STREQUAL "pw_chrono.system_timer.NO_BACKEND_SET") 93 pw_add_test(pw_chrono.system_timer_facade_test 94 SOURCES 95 system_timer_facade_test.cc 96 DEPS 97 pw_chrono.system_timer 98 pw_sync.thread_notification 99 GROUPS 100 modules 101 pw_chrono 102 ) 103endif() 104