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_bytes 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.pwpb_options 210) 211 212pw_proto_library(pw_protobuf.codegen_test_deps_protos_prefix 213 SOURCES 214 pw_protobuf_test_deps_protos/test_prefix_imported.proto 215 INPUTS 216 pw_protobuf_test_deps_protos/test_prefix_imported.pwpb_options 217 STRIP_PREFIX 218 pw_protobuf_test_deps_protos 219 PREFIX 220 test_prefix 221) 222 223pw_proto_library(pw_protobuf.codegen_test_protos 224 SOURCES 225 pw_protobuf_test_protos/full_test.proto 226 pw_protobuf_test_protos/imported.proto 227 pw_protobuf_test_protos/importer.proto 228 pw_protobuf_test_protos/non_pw_package.proto 229 pw_protobuf_test_protos/optional.proto 230 pw_protobuf_test_protos/proto2.proto 231 pw_protobuf_test_protos/repeated.proto 232 INPUTS 233 pw_protobuf_test_protos/full_test.pwpb_options 234 pw_protobuf_test_protos/imported.pwpb_options 235 pw_protobuf_test_protos/optional.pwpb_options 236 pw_protobuf_test_protos/repeated.pwpb_options 237 DEPS 238 pw_protobuf.common_proto 239 pw_protobuf.status_proto 240 pw_protobuf.codegen_test_deps_protos 241 pw_protobuf.codegen_test_deps_protos_prefix 242) 243