Add extern "C" to header files.

Update issue 35
Status: FixedInGit
This commit is contained in:
Petteri Aimonen
2012-10-29 19:03:19 +02:00
parent db1eefc24b
commit 3aaa4ad8c2
3 changed files with 23 additions and 1 deletions

View File

@@ -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'

View File

@@ -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

View File

@@ -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