• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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