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