xref: /aosp_15_r20/external/pigweed/pw_digital_io/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_chrono/backend.gni")
19import("$dir_pw_docgen/docs.gni")
20import("$dir_pw_protobuf_compiler/proto.gni")
21import("$dir_pw_toolchain/generate_toolchain.gni")
22import("$dir_pw_unit_test/test.gni")
23
24config("public_include_path") {
25  include_dirs = [ "public" ]
26  visibility = [ ":*" ]
27}
28
29pw_source_set("pw_digital_io") {
30  public_configs = [ ":public_include_path" ]
31  public = [
32    "public/pw_digital_io/digital_io.h",
33    "public/pw_digital_io/internal/conversions.h",
34    "public/pw_digital_io/polarity.h",
35  ]
36  sources = [ "digital_io.cc" ]
37  public_deps = [
38    "$dir_pw_toolchain:sibling_cast",
39    dir_pw_assert,
40    dir_pw_function,
41    dir_pw_result,
42    dir_pw_status,
43  ]
44}
45
46pw_test("digital_io_test") {
47  sources = [ "digital_io_test.cc" ]
48  deps = [ ":pw_digital_io" ]
49}
50
51pw_source_set("digital_io_service") {
52  public_configs = [ ":public_include_path" ]
53  public = [ "public/pw_digital_io/digital_io_service.h" ]
54  sources = [ "digital_io_service.cc" ]
55  public_deps = [
56    ":protos.pwpb_rpc",
57    ":pw_digital_io",
58  ]
59}
60
61pw_proto_library("protos") {
62  sources = [ "digital_io.proto" ]
63  prefix = "pw_digital_io"
64}
65
66pw_source_set("digital_io_mock") {
67  public_configs = [ ":public_include_path" ]
68  sources = [ "digital_io_mock.cc" ]
69  public = [ "public/pw_digital_io/digital_io_mock.h" ]
70  deps = [ dir_pw_log ]
71  public_deps = [
72    ":pw_digital_io",
73    "$dir_pw_assert:check",
74    "$dir_pw_chrono:system_clock",
75    "$dir_pw_containers:inline_deque",
76    dir_pw_result,
77  ]
78}
79
80pw_test("digital_io_mock_test") {
81  enable_if = pw_chrono_SYSTEM_CLOCK_BACKEND != ""
82  sources = [ "digital_io_mock_test.cc" ]
83  deps = [ ":digital_io_mock" ]
84}
85
86pw_doc_group("docs") {
87  sources = [
88    "backends.rst",
89    "docs.rst",
90  ]
91}
92
93pw_test_group("tests") {
94  tests = [
95    ":digital_io_test",
96    ":digital_io_mock_test",
97  ]
98}
99