• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
15include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
16include($ENV{PW_ROOT}/pw_protobuf_compiler/proto.cmake)
17
18pw_add_module_config(pw_protobuf_CONFIG)
19
20pw_add_library(pw_protobuf.config INTERFACE
21  HEADERS
22    public/pw_protobuf/config.h
23  PUBLIC_INCLUDES
24    public
25  PUBLIC_DEPS
26    ${pw_protobuf_CONFIG}
27)
28
29pw_add_library(pw_protobuf STATIC
30  HEADERS
31    public/pw_protobuf/decoder.h
32    public/pw_protobuf/encoder.h
33    public/pw_protobuf/find.h
34    public/pw_protobuf/internal/codegen.h
35    public/pw_protobuf/internal/proto_integer_base.h
36    public/pw_protobuf/map_utils.h
37    public/pw_protobuf/message.h
38    public/pw_protobuf/serialized_size.h
39    public/pw_protobuf/stream_decoder.h
40    public/pw_protobuf/wire_format.h
41  PUBLIC_INCLUDES
42    public
43  PUBLIC_DEPS
44    pw_assert
45    pw_bytes
46    pw_bytes.bit
47    pw_containers.vector
48    pw_function
49    pw_preprocessor
50    pw_protobuf.config
51    pw_result
52    pw_span
53    pw_status
54    pw_stream
55    pw_stream.interval_reader
56    pw_varint
57    pw_varint.stream
58  PRIVATE_DEPS
59    pw_string.string
60  SOURCES
61    decoder.cc
62    encoder.cc
63    find.cc
64    map_utils.cc
65    message.cc
66    stream_decoder.cc
67)
68
69pw_add_library(pw_protobuf.bytes_utils INTERFACE
70  HEADERS
71    public/pw_protobuf/bytes_utils.h
72  PUBLIC_INCLUDES
73    public
74  PUBLIC_DEPS
75    pw_protobuf
76    pw_bytes
77    pw_result
78    pw_status
79)
80
81pw_add_test(pw_protobuf.decoder_test
82  SOURCES
83    decoder_test.cc
84  PRIVATE_DEPS
85    pw_protobuf
86  GROUPS
87    modules
88    pw_protobuf
89)
90
91pw_add_test(pw_protobuf.encoder_test
92  SOURCES
93    encoder_test.cc
94  PRIVATE_DEPS
95    pw_protobuf
96  GROUPS
97    modules
98    pw_protobuf
99)
100
101pw_add_test(pw_protobuf.find_test
102  SOURCES
103    find_test.cc
104  PRIVATE_DEPS
105    pw_protobuf
106  GROUPS
107    modules
108    pw_protobuf
109)
110
111pw_add_test(pw_protobuf.codegen_decoder_test
112  SOURCES
113    codegen_decoder_test.cc
114  PRIVATE_DEPS
115    pw_protobuf
116    pw_protobuf.codegen_test_protos.pwpb
117  GROUPS
118    modules
119    pw_protobuf
120)
121
122pw_add_test(pw_protobuf.codegen_encoder_test
123  SOURCES
124    codegen_encoder_test.cc
125  PRIVATE_DEPS
126    pw_protobuf
127    pw_protobuf.codegen_test_protos.pwpb
128  GROUPS
129    modules
130    pw_protobuf
131)
132
133pw_add_test(pw_protobuf.codegen_message_test
134  SOURCES
135    codegen_message_test.cc
136  PRIVATE_DEPS
137    pw_protobuf
138    pw_protobuf.codegen_test_protos.pwpb
139    pw_string
140  GROUPS
141    modules
142    pw_protobuf
143)
144
145pw_add_test(pw_protobuf.serialized_size_test
146  SOURCES
147    serialized_size_test.cc
148  PRIVATE_DEPS
149    pw_protobuf
150  GROUPS
151    modules
152    pw_protobuf
153)
154
155pw_add_test(pw_protobuf.stream_decoder_test
156  SOURCES
157    stream_decoder_test.cc
158  PRIVATE_DEPS
159    pw_protobuf
160  GROUPS
161    modules
162    pw_protobuf
163)
164
165pw_add_test(pw_protobuf.map_utils_test
166  SOURCES
167    map_utils_test.cc
168  PRIVATE_DEPS
169    pw_protobuf
170  GROUPS
171    modules
172    pw_protobuf
173)
174
175pw_add_test(pw_protobuf.message_test
176  SOURCES
177    message_test.cc
178  PRIVATE_DEPS
179    pw_protobuf
180  GROUPS
181    modules
182    pw_protobuf
183)
184
185pw_proto_library(pw_protobuf.common_proto
186  SOURCES
187    pw_protobuf_protos/common.proto
188)
189
190pw_proto_library(pw_protobuf.status_proto
191  SOURCES
192    pw_protobuf_protos/status.proto
193)
194
195pw_proto_library(pw_protobuf.field_options_proto
196  SOURCES
197    pw_protobuf_protos/field_options.proto
198)
199
200pw_proto_library(pw_protobuf.codegen_protos
201  SOURCES
202    pw_protobuf_codegen_protos/codegen_options.proto
203)
204
205pw_proto_library(pw_protobuf.codegen_test_deps_protos
206  SOURCES
207    pw_protobuf_test_deps_protos/imported.proto
208  INPUTS
209    pw_protobuf_test_deps_protos/imported.options
210)
211
212pw_proto_library(pw_protobuf.codegen_test_protos
213  SOURCES
214    pw_protobuf_test_protos/full_test.proto
215    pw_protobuf_test_protos/imported.proto
216    pw_protobuf_test_protos/importer.proto
217    pw_protobuf_test_protos/non_pw_package.proto
218    pw_protobuf_test_protos/optional.proto
219    pw_protobuf_test_protos/proto2.proto
220    pw_protobuf_test_protos/repeated.proto
221  INPUTS
222    pw_protobuf_test_protos/full_test.options
223    pw_protobuf_test_protos/imported.options
224    pw_protobuf_test_protos/optional.options
225    pw_protobuf_test_protos/repeated.options
226  DEPS
227    pw_protobuf.common_proto
228    pw_protobuf.status_proto
229    pw_protobuf.codegen_test_deps_protos
230)
231