diff options
-rw-r--r-- | generator/nanopb_generator.py | 9 | ||||
-rw-r--r-- | pb_decode.h | 8 | ||||
-rw-r--r-- | pb_encode.h | 7 |
3 files changed, 23 insertions, 1 deletions
diff --git a/generator/nanopb_generator.py b/generator/nanopb_generator.py index 2267238c..bd164e03 100644 --- a/generator/nanopb_generator.py +++ b/generator/nanopb_generator.py @@ -438,7 +438,10 @@ def generate_header(dependencies, headername, enums, messages): for dependency in dependencies: noext = os.path.splitext(dependency)[0] yield '#include "%s.pb.h"\n' % noext - yield '\n' + + yield '#ifdef __cplusplus\n' + yield 'extern "C" {\n' + yield '#endif\n\n' yield '/* Enum definitions */\n' for enum in enums: @@ -502,6 +505,10 @@ def generate_header(dependencies, headername, enums, messages): yield 'STATIC_ASSERT((%s), YOU_MUST_DEFINE_PB_FIELD_32BIT)\n' % assertion yield '#endif\n' + yield '\n#ifdef __cplusplus\n' + yield '} /* extern "C" */\n' + yield '#endif\n' + # End of header yield '\n#endif\n' diff --git a/pb_decode.h b/pb_decode.h index 2be92050..e9f8ced8 100644 --- a/pb_decode.h +++ b/pb_decode.h @@ -12,6 +12,10 @@ #include <stdbool.h> #include "pb.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Lightweight input stream. * You can provide a callback function for reading or use * pb_istream_from_buffer. @@ -102,4 +106,8 @@ bool pb_skip_varint(pb_istream_t *stream); bool pb_skip_string(pb_istream_t *stream); #endif +#ifdef __cplusplus +} /* extern "C" */ +#endif + #endif diff --git a/pb_encode.h b/pb_encode.h index af6cc3c5..85a82973 100644 --- a/pb_encode.h +++ b/pb_encode.h @@ -9,6 +9,10 @@ #include <stdbool.h> #include "pb.h" +#ifdef __cplusplus +extern "C" { +#endif + /* Lightweight output stream. * You can provide callback for writing or use pb_ostream_from_buffer. * @@ -99,5 +103,8 @@ bool pb_enc_string(pb_ostream_t *stream, const pb_field_t *field, const void *sr * instead, it has the same functionality with a less confusing interface. */ bool pb_enc_submessage(pb_ostream_t *stream, const pb_field_t *field, const void *src); +#ifdef __cplusplus +} /* extern "C" */ +#endif #endif |