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 = "pw_polyfill", 27 hdrs = [ 28 "public/pw_polyfill/language_feature_macros.h", 29 "public/pw_polyfill/standard.h", 30 ], 31 includes = ["public"], 32) 33 34# Provides <cstddef>'s std::byte for C++14. 35pw_cc_library( 36 name = "cstddef", 37 hdrs = [ 38 "cstddef_public_overrides/cstddef", 39 "standard_library_public/pw_polyfill/standard_library/cstddef.h", 40 ], 41 includes = [ 42 "public_overrides", 43 "standard_library_public", 44 ], 45 # Polyfills aren't supported in the Bazel build, so disallow use. 46 visibility = ["//visibility:private"], 47 deps = [":standard_library"], 48) 49 50# Provides <iterator>'s std::data and std::size for C++14. 51pw_cc_library( 52 name = "iterator", 53 hdrs = [ 54 "iterator_public_overrides/iterator", 55 "standard_library_public/pw_polyfill/standard_library/iterator.h", 56 ], 57 includes = [ 58 "public_overrides", 59 "standard_library_public", 60 ], 61 # Polyfills aren't supported in the Bazel build, so disallow use. 62 visibility = ["//visibility:private"], 63 deps = [":standard_library"], 64) 65 66pw_cc_library( 67 name = "standard_library", 68 hdrs = [ 69 "standard_library_public/pw_polyfill/standard_library/namespace.h", 70 ], 71 includes = ["standard_library_public"], 72 visibility = [ 73 "//pw_minimal_cpp_stdlib:__pkg__", 74 "//pw_span:__pkg__", 75 ], 76) 77 78pw_cc_test( 79 name = "test", 80 srcs = ["test.cc"], 81 deps = [ 82 ":cstddef", 83 ":iterator", 84 ":pw_polyfill", 85 ":standard_library", 86 "//pw_unit_test", 87 ], 88) 89