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 15load("@rules_cc//cc:cc_library.bzl", "cc_library") 16load("@rules_python//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library") 17load("//pw_build:compatibility.bzl", "incompatible_with_mcu") 18load("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test") 19 20package(default_visibility = ["//visibility:public"]) 21 22licenses(["notice"]) 23 24cc_library( 25 name = "pw_minimal_cpp_stdlib", 26 srcs = [ 27 "public/pw_minimal_cpp_stdlib/internal/algorithm.h", 28 "public/pw_minimal_cpp_stdlib/internal/array.h", 29 "public/pw_minimal_cpp_stdlib/internal/cinttypes.h", 30 "public/pw_minimal_cpp_stdlib/internal/climits.h", 31 "public/pw_minimal_cpp_stdlib/internal/cmath.h", 32 "public/pw_minimal_cpp_stdlib/internal/cstdarg.h", 33 "public/pw_minimal_cpp_stdlib/internal/cstddef.h", 34 "public/pw_minimal_cpp_stdlib/internal/cstdint.h", 35 "public/pw_minimal_cpp_stdlib/internal/cstdio.h", 36 "public/pw_minimal_cpp_stdlib/internal/cstring.h", 37 "public/pw_minimal_cpp_stdlib/internal/functional.h", 38 "public/pw_minimal_cpp_stdlib/internal/initializer_list.h", 39 "public/pw_minimal_cpp_stdlib/internal/iterator.h", 40 "public/pw_minimal_cpp_stdlib/internal/limits.h", 41 "public/pw_minimal_cpp_stdlib/internal/memory.h", 42 "public/pw_minimal_cpp_stdlib/internal/new.h", 43 "public/pw_minimal_cpp_stdlib/internal/string.h", 44 "public/pw_minimal_cpp_stdlib/internal/string_view.h", 45 "public/pw_minimal_cpp_stdlib/internal/type_traits.h", 46 "public/pw_minimal_cpp_stdlib/internal/utility.h", 47 ], 48 hdrs = [ 49 "public/algorithm", 50 "public/array", 51 "public/cinttypes", 52 "public/climits", 53 "public/cmath", 54 "public/cstdarg", 55 "public/cstddef", 56 "public/cstdint", 57 "public/cstdio", 58 "public/cstring", 59 "public/functional", 60 "public/initializer_list", 61 "public/iterator", 62 "public/limits", 63 "public/memory", 64 "public/new", 65 "public/string", 66 "public/string_view", 67 "public/type_traits", 68 "public/utility", 69 ], 70 copts = ["-nostdinc++"], 71 strip_include_prefix = "public", 72 tags = ["noclangtidy"], 73 deps = [ 74 "//pw_polyfill:standard_library", 75 ], 76) 77 78cc_library( 79 name = "minimal_cpp_stdlib_isolated_test", 80 srcs = ["isolated_test.cc"], 81 copts = ["-nostdinc++"], 82 tags = ["manual"], # TODO: b/257529911 - Fix build failures. 83 deps = [ 84 ":pw_minimal_cpp_stdlib", 85 "//pw_polyfill", 86 "//pw_preprocessor", 87 ], 88) 89 90pw_cc_test( 91 name = "test", 92 srcs = [ 93 "test.cc", 94 ], 95 tags = ["manual"], # TODO: b/257529911 - Fix build failures. 96 deps = [":minimal_cpp_stdlib_isolated_test"], 97) 98 99sphinx_docs_library( 100 name = "docs", 101 srcs = [ 102 "Kconfig", 103 "docs.rst", 104 ], 105 prefix = "pw_minimal_cpp_stdlib/", 106 target_compatible_with = incompatible_with_mcu(), 107) 108