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_config(pw_unit_test_CONFIG) 18 19pw_add_library(pw_unit_test.config INTERFACE 20 HEADERS 21 public/pw_unit_test/config.h 22 PUBLIC_INCLUDES 23 public 24 PUBLIC_DEPS 25 ${pw_unit_test_CONFIG} 26 pw_polyfill 27) 28 29add_library(pw_unit_test INTERFACE) 30target_include_directories(pw_unit_test 31 INTERFACE 32 public 33) 34 35# Temporarily redirect deprecated googletest pointer to new pointer. 36if("${pw_unit_test_GOOGLETEST_BACKEND}" STREQUAL "pw_third_party.googletest") 37 message(DEPRECATION 38 "pw_unit_test_GOOGLETEST_BACKEND is deprecated. Set pw_unit_test_BACKEND " 39 "to pw_unit_test.googletest instead." 40 ) 41 target_link_libraries(pw_unit_test 42 INTERFACE 43 pw_unit_test.googletest 44 ) 45else() 46 target_link_libraries(pw_unit_test 47 INTERFACE 48 "${pw_unit_test_BACKEND}" 49 ) 50endif() 51 52pw_add_library(pw_unit_test.light STATIC 53 HEADERS 54 light_public_overrides/pw_unit_test/framework_backend.h 55 SOURCES 56 framework_light.cc 57 PUBLIC_DEPS 58 pw_bytes.alignment 59 pw_polyfill 60 pw_preprocessor 61 pw_string 62 pw_unit_test.config 63 PUBLIC_INCLUDES 64 light_public_overrides 65 public 66 public_overrides 67) 68 69pw_add_library(pw_unit_test.googletest INTERFACE 70 HEADERS 71 googletest_public_overrides/pw_unit_test/framework_backend.h 72 PUBLIC_INCLUDES 73 googletest_public_overrides 74 PUBLIC_DEPS 75 pw_third_party.googletest 76) 77 78pw_add_library(pw_unit_test.googletest_handler_adapter STATIC 79 SOURCES 80 googletest_handler_adapter.cc 81 PUBLIC_DEPS 82 pw_unit_test.event_handler 83 pw_third_party.googletest 84 PUBLIC_INCLUDES 85 public 86) 87 88pw_add_test(pw_unit_test.framework_test 89 SOURCES 90 framework_test.cc 91 PRIVATE_DEPS 92 pw_assert 93 pw_status 94 GROUPS 95 pw_unit_test 96 ) 97 98if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.light") 99 pw_add_test(pw_unit_test.framework_light_test 100 SOURCES 101 framework_light_test.cc 102 PRIVATE_DEPS 103 pw_string 104 GROUPS 105 pw_unit_test 106 ) 107endif() 108 109pw_add_library(pw_unit_test.static_library_support STATIC 110 HEADERS 111 public/pw_unit_test/static_library_support.h 112 PUBLIC_INCLUDES 113 public 114 SOURCES 115 static_library_support.cc 116 PUBLIC_DEPS 117 pw_unit_test.light 118) 119 120pw_add_library(pw_unit_test.event_handler INTERFACE 121 HEADERS 122 public/pw_unit_test/event_handler.h 123 PUBLIC_INCLUDES 124 public 125) 126 127pw_add_library(pw_unit_test.googletest_style_event_handler STATIC 128 HEADERS 129 public/pw_unit_test/googletest_style_event_handler.h 130 PUBLIC_INCLUDES 131 public 132 PUBLIC_DEPS 133 pw_unit_test.event_handler 134 pw_preprocessor 135 SOURCES 136 googletest_style_event_handler.cc 137) 138 139if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.googletest") 140 pw_add_library(pw_unit_test.googletest_test_matchers INTERFACE 141 HEADERS 142 public/pw_unit_test/googletest_test_matchers.h 143 PUBLIC_INCLUDES 144 public 145 PUBLIC_DEPS 146 pw_result 147 pw_status 148 pw_third_party.googletest 149 ) 150 pw_add_test(pw_unit_test.googletest_test_matchers_test 151 SOURCES 152 googletest_test_matchers_test.cc 153 PRIVATE_DEPS 154 pw_unit_test.googletest_test_matchers 155 GROUPS 156 pw_unit_test 157 ) 158endif() 159 160pw_add_library(pw_unit_test.simple_printing_main STATIC 161 SOURCES 162 simple_printing_main.cc 163 simple_printing_event_handler.cc 164 PRIVATE_DEPS 165 pw_unit_test 166 pw_unit_test.googletest_style_event_handler 167 pw_preprocessor 168 pw_string 169 pw_sys_io 170) 171 172pw_add_library(pw_unit_test.logging_event_handler STATIC 173 HEADERS 174 public/pw_unit_test/logging_event_handler.h 175 PUBLIC_INCLUDES 176 public 177 PUBLIC_DEPS 178 pw_log 179 pw_unit_test.googletest_style_event_handler 180 SOURCES 181 logging_event_handler.cc 182) 183 184pw_add_library(pw_unit_test.logging_main STATIC 185 SOURCES 186 logging_main.cc 187 PRIVATE_DEPS 188 pw_unit_test.logging_event_handler 189 pw_unit_test 190) 191 192pw_add_library(pw_unit_test.multi_event_handler INTERFACE 193 HEADERS 194 public/pw_unit_test/multi_event_handler.h 195 PUBLIC_INCLUDES 196 public 197 PUBLIC_DEPS 198 pw_unit_test.event_handler 199) 200 201pw_add_test(pw_unit_test.multi_event_handler_test 202 SOURCES 203 multi_event_handler_test.cc 204 PRIVATE_DEPS 205 pw_unit_test.multi_event_handler 206 GROUPS 207 pw_unit_test 208) 209 210pw_add_library(pw_unit_test.test_record_event_handler INTERFACE 211 HEADERS 212 public/pw_unit_test/internal/test_record_trie.h 213 public/pw_unit_test/test_record_event_handler.h 214 PUBLIC_INCLUDES 215 public 216 PUBLIC_DEPS 217 pw_assert 218 pw_json.builder 219 pw_unit_test.event_handler 220) 221 222pw_add_test(pw_unit_test.test_record_event_handler_test 223 SOURCES 224 test_record_event_handler_test.cc 225 PRIVATE_DEPS 226 pw_unit_test.test_record_event_handler 227 GROUPS 228 pw_unit_test 229) 230