# Copyright 2021 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. load( "//pw_build:pigweed.bzl", "pw_cc_test", "pw_facade", ) package(default_visibility = ["//visibility:public"]) licenses(["notice"]) # TODO: pwbug.dev/328679085 - Remove this alias. alias( name = "facade", actual = ":pw_assert.facade", ) pw_facade( name = "pw_assert", hdrs = [ "public/pw_assert/assert.h", "public/pw_assert/check.h", "public/pw_assert/internal/check_impl.h", "public/pw_assert/short.h", ], backend = ":backend", includes = [ "public", ], deps = [ ":config", "//pw_preprocessor", ], ) label_flag( name = "backend", build_setting_default = ":backend_multiplexer", ) label_flag( name = "backend_impl", build_setting_default = ":backend_impl_multiplexer", # For internal tooling: go/build-cleaner/troubleshooting-faq#keep-dep tags = ["keep_dep"], ) cc_library( name = "config", hdrs = ["public/pw_assert/config.h"], includes = ["public"], deps = [":config_override"], ) label_flag( name = "config_override", build_setting_default = "//pw_build:default_module_config", ) cc_library( name = "libc_assert", hdrs = [ "libc_assert_public_overrides/assert.h", "libc_assert_public_overrides/cassert", "public/pw_assert/internal/libc_assert.h", ], includes = [ "libc_assert_public_overrides", "public", ], deps = [ "//pw_assert", "//pw_preprocessor", ], ) cc_library( name = "assert_compatibility_backend", hdrs = [ "assert_compatibility_public_overrides/pw_assert_backend/assert_backend.h", ], includes = ["assert_compatibility_public_overrides"], deps = ["//pw_preprocessor"], ) cc_library( name = "print_and_abort", hdrs = ["public/pw_assert/internal/print_and_abort.h"], includes = ["public"], visibility = ["//visibility:private"], deps = [":config"], ) cc_library( name = "print_and_abort_assert_backend", hdrs = ["print_and_abort_assert_public_overrides/pw_assert_backend/assert_backend.h"], includes = ["print_and_abort_assert_public_overrides"], deps = [ ":config", ":print_and_abort", ], ) cc_library( name = "print_and_abort_check_backend", hdrs = ["print_and_abort_check_public_overrides/pw_assert_backend/check_backend.h"], includes = ["print_and_abort_check_public_overrides"], deps = [":print_and_abort"], ) cc_library( name = "print_and_abort_assert_and_check_backend", deps = [ ":print_and_abort_assert_backend", ":print_and_abort_check_backend", ], ) cc_library( name = "backend_multiplexer", visibility = ["@pigweed//targets:__pkg__"], deps = [ "@pigweed//pw_assert_basic", ], ) alias( name = "backend_impl_multiplexer", actual = "@pigweed//pw_assert_basic:impl", visibility = ["@pigweed//targets:__pkg__"], ) pw_cc_test( name = "assert_facade_test", srcs = [ "assert_facade_test.cc", "assert_test.cc", "fake_backend.cc", "public/pw_assert/internal/check_impl.h", "pw_assert_test/fake_backend.h", ], deps = [ ":facade", "//pw_assert", "//pw_compilation_testing:negative_compilation_testing", "//pw_preprocessor", "//pw_span", "//pw_status", "//pw_string", "//pw_unit_test", ], ) pw_cc_test( name = "assert_backend_compile_test", srcs = [ "assert_backend_compile_test.cc", "assert_backend_compile_test_c.c", ], deps = [ "//pw_assert", "//pw_status", "//pw_unit_test", ], )