• 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_string.string
57    pw_varint
58    pw_varint.stream
59  SOURCES
60    decoder.cc
61    encoder.cc
62    find.cc
63    map_utils.cc
64    message.cc
65    stream_decoder.cc
66)
67
68pw_add_library(pw_protobuf.bytes_utils INTERFACE
69  HEADERS
70    public/pw_protobuf/bytes_utils.h
71  PUBLIC_INCLUDES
72    public
73  PUBLIC_DEPS
74    pw_protobuf
75    pw_bytes
76    pw_result
77    pw_status
78)
79
80pw_add_test(pw_protobuf.decoder_test
81  SOURCES
82    decoder_test.cc
83  PRIVATE_DEPS
84    pw_protobuf
85  GROUPS
86    modules
87    pw_protobuf
88)
89
90pw_add_test(pw_protobuf.encoder_test
91  SOURCES
92    encoder_test.cc
93  PRIVATE_DEPS
94    pw_protobuf
95  GROUPS
96    modules
97    pw_protobuf
98)
99
100pw_add_test(pw_protobuf.find_test
101  SOURCES
102    find_test.cc
103  PRIVATE_DEPS
104    pw_protobuf
105  GROUPS
106    modules
107    pw_protobuf
108)
109
110pw_add_test(pw_protobuf.codegen_decoder_test
111  SOURCES
112    codegen_decoder_test.cc
113  PRIVATE_DEPS
114    pw_protobuf
115    pw_protobuf.codegen_test_protos.pwpb
116  GROUPS
117    modules
118    pw_protobuf
119)
120
121pw_add_test(pw_protobuf.codegen_encoder_test
122  SOURCES
123    codegen_encoder_test.cc
124  PRIVATE_DEPS
125    pw_protobuf
126    pw_protobuf.codegen_test_protos.pwpb
127  GROUPS
128    modules
129    pw_protobuf
130)
131
132pw_add_test(pw_protobuf.codegen_message_test
133  SOURCES
134    codegen_message_test.cc
135  PRIVATE_DEPS
136    pw_protobuf
137    pw_protobuf.codegen_test_protos.pwpb
138    pw_string
139  GROUPS
140    modules
141    pw_protobuf
142)
143
144pw_add_test(pw_protobuf.serialized_size_test
145  SOURCES
146    serialized_size_test.cc
147  PRIVATE_DEPS
148    pw_protobuf
149  GROUPS
150    modules
151    pw_protobuf
152)
153
154pw_add_test(pw_protobuf.stream_decoder_test
155  SOURCES
156    stream_decoder_test.cc
157  PRIVATE_DEPS
158    pw_protobuf
159  GROUPS
160    modules
161    pw_protobuf
162)
163
164pw_add_test(pw_protobuf.map_utils_test
165  SOURCES
166    map_utils_test.cc
167  PRIVATE_DEPS
168    pw_protobuf
169  GROUPS
170    modules
171    pw_protobuf
172)
173
174pw_add_test(pw_protobuf.message_test
175  SOURCES
176    message_test.cc
177  PRIVATE_DEPS
178    pw_protobuf
179  GROUPS
180    modules
181    pw_protobuf
182)
183
184pw_proto_library(pw_protobuf.common_proto
185  SOURCES
186    pw_protobuf_protos/common.proto
187)
188
189pw_proto_library(pw_protobuf.status_proto
190  SOURCES
191    pw_protobuf_protos/status.proto
192)
193
194pw_proto_library(pw_protobuf.field_options_proto
195  SOURCES
196    pw_protobuf_protos/field_options.proto
197)
198
199pw_proto_library(pw_protobuf.codegen_protos
200  SOURCES
201    pw_protobuf_codegen_protos/codegen_options.proto
202)
203
204pw_proto_library(pw_protobuf.codegen_test_deps_protos
205  SOURCES
206    pw_protobuf_test_deps_protos/imported.proto
207  INPUTS
208    pw_protobuf_test_deps_protos/imported.options
209)
210
211pw_proto_library(pw_protobuf.codegen_test_deps_protos_prefix
212  SOURCES
213    pw_protobuf_test_deps_protos/test_prefix_imported.proto
214  INPUTS
215    pw_protobuf_test_deps_protos/test_prefix_imported.options
216  STRIP_PREFIX
217    pw_protobuf_test_deps_protos
218  PREFIX
219    test_prefix
220)
221
222pw_proto_library(pw_protobuf.codegen_test_protos
223  SOURCES
224    pw_protobuf_test_protos/full_test.proto
225    pw_protobuf_test_protos/imported.proto
226    pw_protobuf_test_protos/importer.proto
227    pw_protobuf_test_protos/non_pw_package.proto
228    pw_protobuf_test_protos/optional.proto
229    pw_protobuf_test_protos/proto2.proto
230    pw_protobuf_test_protos/repeated.proto
231  INPUTS
232    pw_protobuf_test_protos/full_test.options
233    pw_protobuf_test_protos/imported.options
234    pw_protobuf_test_protos/optional.options
235    pw_protobuf_test_protos/repeated.options
236  DEPS
237    pw_protobuf.common_proto
238    pw_protobuf.status_proto
239    pw_protobuf.codegen_test_deps_protos
240    pw_protobuf.codegen_test_deps_protos_prefix
241)
242