1# Copyright 2021 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"]) 24 25pw_cc_library( 26 name = "config", 27 hdrs = ["public/pw_function/config.h"], 28 includes = ["public"], 29) 30 31pw_cc_library( 32 name = "pw_function", 33 hdrs = ["public/pw_function/function.h"], 34 includes = ["public"], 35 deps = [ 36 ":config", 37 "//pw_assert", 38 "//pw_preprocessor", 39 "//third_party/fuchsia:fit", 40 ], 41) 42 43pw_cc_test( 44 name = "function_test", 45 srcs = ["function_test.cc"], 46 deps = [ 47 ":pw_function", 48 "//pw_compilation_testing:negative_compilation_testing", 49 ], 50) 51 52pw_cc_library( 53 name = "pointer", 54 srcs = ["public/pw_function/internal/static_invoker.h"], 55 hdrs = ["public/pw_function/pointer.h"], 56 includes = ["public"], 57) 58 59pw_cc_test( 60 name = "pointer_test", 61 srcs = ["pointer_test.cc"], 62 deps = [ 63 ":pointer", 64 ":pw_function", 65 ], 66) 67 68pw_cc_library( 69 name = "scope_guard", 70 hdrs = ["public/pw_function/scope_guard.h"], 71 includes = ["public"], 72) 73 74pw_cc_test( 75 name = "scope_guard_test", 76 srcs = ["scope_guard_test.cc"], 77 deps = [ 78 ":pw_function", 79 ":scope_guard", 80 ], 81) 82