Commit Graph

128 Commits

Author SHA1 Message Date
Petteri Aimonen
7713d43bc3 Implement support for oneofs (C unions).
Basic test included, should probably add an oneof to the AllTypes test also.

Update issue 131
Status: Started
2015-01-04 19:39:37 +02:00
Petteri Aimonen
50c67ecec4 Add int_size option for generator.
This allows overriding the integer field types to e.g. uint8_t for
saving RAM.

Update issue 139
Status: FixedInGit
2015-01-04 12:02:15 +02:00
Petteri Aimonen
980f899dd5 Include the field type in a comment for extension fields 2014-12-26 17:43:38 +02:00
Petteri Aimonen
e5cbee84e1 Verify build with protobuf-3.0.0, fix problems.
Also updated descriptor.proto from protobuf-3.0.0.
2014-12-22 22:52:36 +02:00
Petteri Aimonen
baf44b367f Set version to nanopb-0.3.2-dev 2014-09-16 20:41:45 +03:00
Petteri Aimonen
b947dc6e2c Publishing nanopb-0.3.1 2014-09-11 19:36:14 +03:00
Petteri Aimonen
cdbf51db08 Fix compilation error with generated initializers for repeated pointer fields 2014-09-07 19:49:00 +03:00
Petteri Aimonen
df7234fd8b Fix cyclic messages support in generator. Beginnings of test.
Update issue 130
Status: Started
2014-08-28 21:23:28 +03:00
Petteri Aimonen
71b81ad573 Setting version to 0.3.1-dev 2014-08-26 18:20:48 +03:00
Petteri Aimonen
8dede6095e Publishing nanopb-0.3.0 2014-08-26 18:08:31 +03:00
Petteri Aimonen
3ed219382e Add #if guard for .pb.h version.
The version in PB_PROTO_HEADER_VERSION can be bumped whenever there
is a breaking change to the generated files, and it will then alert
to the difference.

Update issue 129
Status: FixedInGit
2014-08-19 17:55:44 +03:00
Petteri Aimonen
be0b9e047a Rename poorly named identifier to avoid name conflicts.
Update issue 106
Status: FixedInGit
2014-08-18 21:11:10 +03:00
Petteri Aimonen
62b4a8ecaa Rename UNUSED() and STATIC_ASSERT() macros with PB_ prefix.
This avoids possible namespace conflicts with other macros.
2014-08-18 20:49:48 +03:00
Petteri Aimonen
1dd9f1900f Change the _count fields to use pb_size_t datatype.
Update issue 82
Status: FixedInGit
2014-08-18 20:09:52 +03:00
Petteri Aimonen
0150b98be6 Setting version to 0.3.0-dev 2014-08-09 22:18:24 +03:00
Petteri Aimonen
2f05a35b5f Publishing nanopb-0.2.9 2014-08-09 22:01:04 +03:00
Petteri Aimonen
ec3bff4ba1 Generate #defines for initializing message structures.
Usage like:
MyMessage foo = MyMessage_init_default;

MyMessage_init_default will initialize to default values defined in .proto.

MyMessage_init_zero will initialize to null/zero values. Same results as {}
or {0}, but will avoid compiler warnings by initializing everything explicitly.

Update issue 79
Status: FixedInGit
2014-08-04 18:40:40 +03:00
Petteri Aimonen
1d7f60fec3 Add skip_message option to generator.
Update issue 121
Status: FixedInGit
2014-07-20 14:56:12 +03:00
Petteri Aimonen
3cf9668c75 Do not automatically add a dot with generator -e option.
Now -e option in generator is more versatile. Especially it avoids
double-dot problem with some build systems.

Given foobar.proto, we now get:
-e .pb  =>  foobar.pb.c (default)
-e _pb  =>  foobar_pb.c
-e ''   =>  foobar.c

Note that if you have used -e option previously, you will have to prepend
. to the argument to get the same filenames as before.

Update issue 122
Status: FixedInGit
2014-07-20 14:25:11 +03:00
Petteri Aimonen
7f97ad549e Give better messages about the .options file path.
Update issue 124
Status: FixedInGit
2014-07-20 14:18:21 +03:00
Petteri Aimonen
f2f9f8a9ed Fix problem with .options file and extension fields.
The options for an extension field were being looked up under wrong name
(MessageName instead of MessageName.fieldname).

Fixed the problem and added regression test. Created a new subfolder for
regression test cases.

Update issue 125
Status: FixedInGit
2014-07-20 14:02:56 +03:00
Petteri Aimonen
2e9797af58 Setting version to 0.2.9-dev 2014-05-20 19:52:09 +03:00
Petteri Aimonen
916bcb3643 Publishing nanopb-0.2.8 2014-05-20 19:35:00 +03:00
Petteri Aimonen
e6a57e512f Add option to not add timestamps to .pb.h and .pb.c preambles.
Patch by rusnakp.

Update issue 115
Status: FixedInGit
2014-04-18 15:40:40 +03:00
Petteri Aimonen
938c7ac3f3 Setting version to 0.2.8-dev 2014-04-07 20:45:04 +03:00
Petteri Aimonen
6d74c66ada Publishing nanopb-0.2.7 2014-04-07 20:30:42 +03:00
Petteri Aimonen
6c90e824c4 Fix compile error when default value given for extension field.
Update issue 111
Status: FixedInGit
2014-04-01 16:47:53 +03:00
Petteri Aimonen
9be2cfe968 Get rid of pb_bytes_ptr_t, just allocate pb_bytes_array_t dynamically.
This makes the internal logic much simpler, and also keeps the datatypes
more similar between STATIC/POINTER cases. It will still be a bit cumbersome
to use because of variable length array member. Macros PB_BYTES_ARRAY_T(n) and
PB_BYTES_ARRAY_T_ALLOCSIZE(n) have been added to make life a bit easier.

This has the drawback that it is no longer as easy to use externally allocated
byte array as input for bytes field in pointer mode. However, this is still
easy to do using callbacks, so it shouldn't be a large issue.
2014-03-15 08:45:58 +02:00
Petteri Aimonen
842c960d5d Setting version to 0.2.7-dev 2014-02-15 17:15:54 +02:00
Petteri Aimonen
7f397b067f Publishing nanopb-0.2.6 2014-02-15 16:40:38 +02:00
Petteri Aimonen
542463dbaa Move descriptor.proto to google/protobuf directory where it belongs.
This fixes some interoperability problems when trying to compile
nanopb.proto for e.g. the Google's C++ library.

Update issue 104
Status: FixedInGit
2014-02-12 19:43:04 +02:00
Petteri Aimonen
bd22cf2777 Improve status/error reporting in generator.
Update issue 105
Status: FixedInGit
2014-02-12 18:51:48 +02:00
Petteri Aimonen
879860be19 Add coments to places where STATIC_ASSERT is used.
Update issue 96
Status: FixedInGit
2014-02-04 20:34:57 +02:00
Petteri Aimonen
a2f8112166 Add proper suffixes for integer default values.
Update issue 102
Status: FixedInGit
2014-02-04 20:24:44 +02:00
Petteri Aimonen
a46ed9f475 Fix problem with callback-type fields (issue #99). 2014-01-03 11:17:39 +02:00
Petteri Aimonen
843fc4b11a Setting version to 0.2.6-dev 2014-01-01 11:44:47 +02:00
Petteri Aimonen
906c8283b5 Publishing nanopb-0.2.5 2014-01-01 11:20:54 +02:00
Petteri Aimonen
125b49bf24 Fix spaces in paths on Windows also 2013-12-29 21:36:06 +02:00
Petteri Aimonen
7c9a8a132b Fix protoc-gen-nanopb when the path contains spaces 2013-12-29 20:48:30 +02:00
Petteri Aimonen
435ccbfdf7 Fixes for pyinstaller 2013-12-29 20:26:58 +02:00
Petteri Aimonen
dde71cb426 Make generator print errors to stderr.
Otherwise they won't be visible when run as a protoc plugin.
2013-12-29 20:26:58 +02:00
Petteri Aimonen
d7cadaa46f Windows build fixes 2013-12-29 20:26:57 +02:00
Petteri Aimonen
45c1a32e50 Rework the Makefiles to be compatible with binary packages. 2013-12-29 20:26:57 +02:00
Petteri Aimonen
ec517e2108 Add build script for windows package 2013-12-29 20:26:57 +02:00
Petteri Aimonen
8c2dda67a1 Add descriptor.proto to repository to avoid messing with protoc include path. 2013-12-29 20:26:57 +02:00
Petteri Aimonen
356535da9b Move the generator .proto files to a subdir, and get rid of precompiled versions. 2013-12-29 20:26:57 +02:00
Petteri Aimonen
25516b0591 Organize allocation logic in generator, add pb_bytes_ptr_t.
Allocation decision is now made before the field data type is decided.
This way the data type decisions can more cleanly account for the allocation
type, i.e. FT_DEFAULT logic etc.

Added pb_bytes_ptr_t for pointer-allocated bytes-fields. There is no point
generating separate structs for these, as they would all be of the same type.
2013-12-29 18:35:57 +02:00
Martin Donath
4ae3b2e566 Generating and encoding messages with dynamic allocaiton 2013-12-29 18:35:57 +02:00
Petteri Aimonen
4f37c083d5 Negative int32 values take 10 bytes now. 2013-12-22 23:24:02 +02:00
Petteri Aimonen
321ca6c1d5 Setting version to 0.2.5-dev 2013-11-07 16:47:14 +02:00