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_fuzzer.fuzztest 85 pw_fuzzer.libfuzzer 86 pw_protobuf 87 GROUPS 88 modules 89 pw_protobuf 90) 91 92pw_add_test(pw_protobuf.encoder_test 93 SOURCES 94 encoder_test.cc 95 PRIVATE_DEPS 96 pw_protobuf 97 GROUPS 98 modules 99 pw_protobuf 100) 101 102pw_add_test(pw_protobuf.find_test 103 SOURCES 104 find_test.cc 105 PRIVATE_DEPS 106 pw_protobuf 107 GROUPS 108 modules 109 pw_protobuf 110) 111 112pw_add_test(pw_protobuf.codegen_decoder_test 113 SOURCES 114 codegen_decoder_test.cc 115 PRIVATE_DEPS 116 pw_protobuf 117 pw_protobuf.codegen_test_protos.pwpb 118 GROUPS 119 modules 120 pw_protobuf 121) 122 123pw_add_test(pw_protobuf.codegen_encoder_test 124 SOURCES 125 codegen_encoder_test.cc 126 PRIVATE_DEPS 127 pw_bytes 128 pw_protobuf 129 pw_protobuf.codegen_test_protos.pwpb 130 GROUPS 131 modules 132 pw_protobuf 133) 134 135pw_add_test(pw_protobuf.codegen_message_test 136 SOURCES 137 codegen_message_test.cc 138 PRIVATE_DEPS 139 pw_protobuf 140 pw_protobuf.codegen_test_protos.pwpb 141 pw_string 142 GROUPS 143 modules 144 pw_protobuf 145) 146 147pw_add_test(pw_protobuf.serialized_size_test 148 SOURCES 149 serialized_size_test.cc 150 PRIVATE_DEPS 151 pw_protobuf 152 GROUPS 153 modules 154 pw_protobuf 155) 156 157pw_add_test(pw_protobuf.stream_decoder_test 158 SOURCES 159 stream_decoder_test.cc 160 PRIVATE_DEPS 161 pw_protobuf 162 GROUPS 163 modules 164 pw_protobuf 165) 166 167pw_add_test(pw_protobuf.map_utils_test 168 SOURCES 169 map_utils_test.cc 170 PRIVATE_DEPS 171 pw_protobuf 172 GROUPS 173 modules 174 pw_protobuf 175) 176 177pw_add_test(pw_protobuf.message_test 178 SOURCES 179 message_test.cc 180 PRIVATE_DEPS 181 pw_protobuf 182 GROUPS 183 modules 184 pw_protobuf 185) 186 187pw_proto_library(pw_protobuf.common_proto 188 SOURCES 189 pw_protobuf_protos/common.proto 190) 191 192pw_proto_library(pw_protobuf.status_proto 193 SOURCES 194 pw_protobuf_protos/status.proto 195) 196 197pw_proto_library(pw_protobuf.field_options_proto 198 SOURCES 199 pw_protobuf_protos/field_options.proto 200) 201 202pw_proto_library(pw_protobuf.codegen_protos 203 SOURCES 204 pw_protobuf_codegen_protos/codegen_options.proto 205) 206 207pw_proto_library(pw_protobuf.codegen_test_deps_protos 208 SOURCES 209 pw_protobuf_test_deps_protos/imported.proto 210 INPUTS 211 pw_protobuf_test_deps_protos/imported.pwpb_options 212) 213 214pw_proto_library(pw_protobuf.codegen_test_deps_protos_prefix 215 SOURCES 216 pw_protobuf_test_deps_protos/test_prefix_imported.proto 217 INPUTS 218 pw_protobuf_test_deps_protos/test_prefix_imported.pwpb_options 219 STRIP_PREFIX 220 pw_protobuf_test_deps_protos 221 PREFIX 222 test_prefix 223) 224 225pw_proto_library(pw_protobuf.codegen_test_protos 226 SOURCES 227 pw_protobuf_test_protos/full_test.proto 228 pw_protobuf_test_protos/imported.proto 229 pw_protobuf_test_protos/importer.proto 230 pw_protobuf_test_protos/non_pw_package.proto 231 pw_protobuf_test_protos/optional.proto 232 pw_protobuf_test_protos/proto2.proto 233 pw_protobuf_test_protos/repeated.proto 234 INPUTS 235 pw_protobuf_test_protos/full_test.pwpb_options 236 pw_protobuf_test_protos/imported.pwpb_options 237 pw_protobuf_test_protos/optional.pwpb_options 238 pw_protobuf_test_protos/repeated.pwpb_options 239 DEPS 240 pw_protobuf.common_proto 241 pw_protobuf.status_proto 242 pw_protobuf.codegen_test_deps_protos 243 pw_protobuf.codegen_test_deps_protos_prefix 244) 245