xref: /aosp_15_r20/external/pigweed/pw_minimal_cpp_stdlib/BUILD.gn (revision 61c4878ac05f98d0ceed94b57d316916de578985)
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
15import("//build_overrides/pigweed.gni")
16
17import("$dir_pw_build/target_types.gni")
18import("$dir_pw_docgen/docs.gni")
19import("$dir_pw_unit_test/test.gni")
20
21config("public_include_path") {
22  include_dirs = [ "public" ]
23  visibility = [ ":*" ]
24}
25
26config("no_cpp_includes") {
27  cflags = [ "-nostdinc++" ]
28}
29
30pw_source_set("pw_minimal_cpp_stdlib") {
31  public_configs = [
32    ":public_include_path",
33    ":no_cpp_includes",
34  ]
35  public = [
36    "public/algorithm",
37    "public/array",
38    "public/cinttypes",
39    "public/climits",
40    "public/cmath",
41    "public/cstdarg",
42    "public/cstddef",
43    "public/cstdint",
44    "public/cstdio",
45    "public/cstring",
46    "public/functional",
47    "public/initializer_list",
48    "public/iterator",
49    "public/limits",
50    "public/memory",
51    "public/new",
52    "public/string",
53    "public/string_view",
54    "public/type_traits",
55    "public/utility",
56  ]
57  sources = [
58    "public/pw_minimal_cpp_stdlib/internal/algorithm.h",
59    "public/pw_minimal_cpp_stdlib/internal/array.h",
60    "public/pw_minimal_cpp_stdlib/internal/cinttypes.h",
61    "public/pw_minimal_cpp_stdlib/internal/climits.h",
62    "public/pw_minimal_cpp_stdlib/internal/cmath.h",
63    "public/pw_minimal_cpp_stdlib/internal/cstdarg.h",
64    "public/pw_minimal_cpp_stdlib/internal/cstddef.h",
65    "public/pw_minimal_cpp_stdlib/internal/cstdint.h",
66    "public/pw_minimal_cpp_stdlib/internal/cstdio.h",
67    "public/pw_minimal_cpp_stdlib/internal/cstring.h",
68    "public/pw_minimal_cpp_stdlib/internal/functional.h",
69    "public/pw_minimal_cpp_stdlib/internal/initializer_list.h",
70    "public/pw_minimal_cpp_stdlib/internal/iterator.h",
71    "public/pw_minimal_cpp_stdlib/internal/limits.h",
72    "public/pw_minimal_cpp_stdlib/internal/memory.h",
73    "public/pw_minimal_cpp_stdlib/internal/new.h",
74    "public/pw_minimal_cpp_stdlib/internal/string.h",
75    "public/pw_minimal_cpp_stdlib/internal/string_view.h",
76    "public/pw_minimal_cpp_stdlib/internal/type_traits.h",
77    "public/pw_minimal_cpp_stdlib/internal/utility.h",
78  ]
79  public_deps = [ "$dir_pw_polyfill:standard_library" ]
80  remove_public_deps = [ "$dir_pw_minimal_cpp_stdlib" ]
81}
82
83pw_test_group("tests") {
84  tests = []
85  if (host_os != "win") {
86    # TODO(amontanez): pw_minimal_cpp_stdlib tests do not build on windows.
87    tests += [
88      ":minimal_cpp_stdlib_test",
89      ":standard_library_test",
90    ]
91  }
92}
93
94pw_source_set("minimal_cpp_stdlib_isolated_test") {
95  configs = [ ":no_cpp_includes" ]
96  deps = [
97    ":pw_minimal_cpp_stdlib",
98    dir_pw_polyfill,
99    dir_pw_preprocessor,
100  ]
101  sources = [ "isolated_test.cc" ]
102  visibility = [ ":*" ]
103}
104
105pw_test("minimal_cpp_stdlib_test") {
106  deps = [ ":minimal_cpp_stdlib_isolated_test" ]
107  sources = [ "test.cc" ]
108}
109
110pw_test("standard_library_test") {
111  deps = [
112    dir_pw_polyfill,
113    dir_pw_preprocessor,
114  ]
115  sources = [
116    "isolated_test.cc",
117    "test.cc",
118  ]
119}
120
121pw_doc_group("docs") {
122  inputs = [ "Kconfig" ]
123  sources = [ "docs.rst" ]
124}
125