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