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) 16include($ENV{PW_ROOT}/pw_protobuf_compiler/proto.cmake) 17 18include($ENV{PW_ROOT}/pw_unit_test/backend.cmake) 19 20pw_add_module_config(pw_unit_test_CONFIG) 21 22pw_add_library(pw_unit_test.config INTERFACE 23 HEADERS 24 public/pw_unit_test/config.h 25 PUBLIC_INCLUDES 26 public 27 PUBLIC_DEPS 28 ${pw_unit_test_CONFIG} 29 pw_polyfill 30) 31 32add_library(pw_unit_test INTERFACE) 33target_include_directories(pw_unit_test 34 INTERFACE 35 public 36) 37 38# Temporarily redirect deprecated googletest pointer to new pointer. 39if("${pw_unit_test_GOOGLETEST_BACKEND}" STREQUAL "pw_third_party.googletest") 40 message(DEPRECATION 41 "pw_unit_test_GOOGLETEST_BACKEND is deprecated. Set pw_unit_test_BACKEND " 42 "to pw_unit_test.googletest instead." 43 ) 44 target_link_libraries(pw_unit_test 45 INTERFACE 46 pw_unit_test.googletest 47 ) 48else() 49 target_link_libraries(pw_unit_test 50 INTERFACE 51 "${pw_unit_test_BACKEND}" 52 ) 53endif() 54 55pw_add_library(pw_unit_test.light STATIC 56 HEADERS 57 light_public_overrides/pw_unit_test/framework_backend.h 58 SOURCES 59 framework_light.cc 60 PUBLIC_DEPS 61 pw_bytes.alignment 62 pw_polyfill 63 pw_preprocessor 64 pw_result 65 pw_status 66 pw_string.builder 67 pw_unit_test.config 68 PRIVATE_DEPS 69 pw_assert 70 PUBLIC_INCLUDES 71 light_public_overrides 72 public 73 public_overrides 74) 75 76pw_add_library(pw_unit_test.googletest INTERFACE 77 HEADERS 78 googletest_public_overrides/pw_unit_test/framework_backend.h 79 PUBLIC_INCLUDES 80 googletest_public_overrides 81 PUBLIC_DEPS 82 pw_third_party.googletest 83 pw_result 84 pw_status 85) 86 87pw_add_library(pw_unit_test.googletest_handler_adapter STATIC 88 SOURCES 89 googletest_handler_adapter.cc 90 PUBLIC_DEPS 91 pw_unit_test.event_handler 92 pw_third_party.googletest 93 PUBLIC_INCLUDES 94 public 95) 96 97pw_add_test(pw_unit_test.framework_test 98 SOURCES 99 framework_test.cc 100 PRIVATE_DEPS 101 pw_assert 102 pw_status 103 GROUPS 104 pw_unit_test 105 ) 106 107if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.light") 108 pw_add_test(pw_unit_test.framework_light_test 109 SOURCES 110 framework_light_test.cc 111 PRIVATE_DEPS 112 pw_string 113 GROUPS 114 pw_unit_test 115 ) 116endif() 117 118pw_add_library(pw_unit_test.static_library_support STATIC 119 HEADERS 120 public/pw_unit_test/static_library_support.h 121 PUBLIC_INCLUDES 122 public 123 SOURCES 124 static_library_support.cc 125 PUBLIC_DEPS 126 pw_unit_test.light 127) 128 129pw_add_library(pw_unit_test.event_handler INTERFACE 130 HEADERS 131 public/pw_unit_test/event_handler.h 132 PUBLIC_INCLUDES 133 public 134) 135 136pw_add_library(pw_unit_test.status_macros INTERFACE 137 HEADERS 138 public/pw_unit_test/status_macros.h 139 PUBLIC_INCLUDES 140 public 141) 142 143pw_add_library(pw_unit_test.googletest_style_event_handler STATIC 144 HEADERS 145 public/pw_unit_test/googletest_style_event_handler.h 146 PUBLIC_INCLUDES 147 public 148 PUBLIC_DEPS 149 pw_unit_test.event_handler 150 pw_preprocessor 151 SOURCES 152 googletest_style_event_handler.cc 153) 154 155if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.googletest") 156 pw_add_library(pw_unit_test.googletest_test_matchers INTERFACE 157 HEADERS 158 public/pw_unit_test/googletest_test_matchers.h 159 PUBLIC_INCLUDES 160 public 161 PUBLIC_DEPS 162 pw_result 163 pw_status 164 pw_third_party.googletest 165 ) 166 pw_add_test(pw_unit_test.googletest_test_matchers_test 167 SOURCES 168 googletest_test_matchers_test.cc 169 PRIVATE_DEPS 170 pw_unit_test.googletest_test_matchers 171 GROUPS 172 pw_unit_test 173 ) 174endif() 175 176pw_add_library(pw_unit_test.simple_printing_main STATIC 177 SOURCES 178 simple_printing_main.cc 179 simple_printing_event_handler.cc 180 PRIVATE_DEPS 181 pw_unit_test 182 pw_unit_test.googletest_style_event_handler 183 pw_preprocessor 184 pw_string 185 pw_sys_io 186) 187 188pw_add_library(pw_unit_test.logging_event_handler STATIC 189 HEADERS 190 public/pw_unit_test/logging_event_handler.h 191 PUBLIC_INCLUDES 192 public 193 PUBLIC_DEPS 194 pw_log 195 pw_unit_test.googletest_style_event_handler 196 SOURCES 197 logging_event_handler.cc 198) 199 200pw_add_library(pw_unit_test.logging_main STATIC 201 SOURCES 202 logging_main.cc 203 PRIVATE_DEPS 204 pw_unit_test.logging_event_handler 205 pw_unit_test 206) 207 208pw_add_library(pw_unit_test.multi_event_handler INTERFACE 209 HEADERS 210 public/pw_unit_test/multi_event_handler.h 211 PUBLIC_INCLUDES 212 public 213 PUBLIC_DEPS 214 pw_unit_test.event_handler 215) 216 217pw_add_test(pw_unit_test.multi_event_handler_test 218 SOURCES 219 multi_event_handler_test.cc 220 PRIVATE_DEPS 221 pw_unit_test.multi_event_handler 222 GROUPS 223 pw_unit_test 224) 225 226pw_add_library(pw_unit_test.test_record_event_handler INTERFACE 227 HEADERS 228 public/pw_unit_test/internal/test_record_trie.h 229 public/pw_unit_test/test_record_event_handler.h 230 PUBLIC_INCLUDES 231 public 232 PUBLIC_DEPS 233 pw_assert 234 pw_json.builder 235 pw_unit_test.event_handler 236) 237 238pw_add_test(pw_unit_test.test_record_event_handler_test 239 SOURCES 240 test_record_event_handler_test.cc 241 PRIVATE_DEPS 242 pw_unit_test.test_record_event_handler 243 GROUPS 244 pw_unit_test 245) 246 247pw_proto_library(pw_unit_test.unit_test_proto 248 SOURCES 249 pw_unit_test_proto/unit_test.proto 250) 251 252if("${pw_unit_test_BACKEND}" STREQUAL "pw_unit_test.light") 253 pw_add_library(pw_unit_test.rpc_service STATIC 254 PUBLIC_DEPS 255 pw_unit_test.config 256 pw_unit_test.event_handler 257 pw_unit_test 258 pw_unit_test.unit_test_proto.pwpb 259 pw_unit_test.unit_test_proto.raw_rpc 260 pw_containers.vector 261 PRIVATE_DEPS 262 pw_log 263 PUBLIC_INCLUDES 264 public 265 rpc_light_public 266 HEADERS 267 public/pw_unit_test/unit_test_service.h 268 rpc_light_public/pw_unit_test/internal/rpc_event_handler.h 269 SOURCES 270 unit_test_service.cc 271 rpc_light_event_handler.cc 272 ) 273else() 274 pw_add_library(pw_unit_test.rpc_service STATIC 275 PUBLIC_DEPS 276 pw_unit_test.config 277 pw_unit_test.event_handler 278 pw_unit_test 279 pw_unit_test.unit_test_proto.pwpb 280 pw_unit_test.unit_test_proto.raw_rpc 281 pw_containers.vector 282 PRIVATE_DEPS 283 pw_log 284 PUBLIC_INCLUDES 285 public 286 rpc_gtest_public 287 HEADERS 288 public/pw_unit_test/unit_test_service.h 289 rpc_light_public/pw_unit_test/internal/rpc_event_handler.h 290 rpc_gtest_public/pw_unit_test/internal/rpc_event_handler.h 291 SOURCES 292 unit_test_service.cc 293 rpc_gtest_event_handler.cc 294 ) 295endif() 296