Don't include headers under extern "C" unless we have to.

libxml headers include ICU headers and ICU has C++ code. If it detects
__cplusplus, it will start declaring C++ templates and whatnot, which
aren't allowed under extern "C".

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Thiago Macieira 2013-10-05 12:11:46 -07:00 committed by Dirk Hohndel
parent 3e0ecb5ff6
commit 5a139c934d
3 changed files with 18 additions and 6 deletions

View file

@ -215,8 +215,12 @@ ui_%.h: %.ui .uic
@mkdir -p .uic/qt-ui
$(COMPILE_PREFIX)$(UIC) $< -o .uic/$@
.uic:
$(COMPILE_PREFIX)mkdir $@
# This forces the creation of ui headers with the wrong path
# This is required because the -MG option to the compiler outputs
# unknown files with no path prefix
ui_%.h: qt-ui/%.ui
@$(PRETTYECHO) ' UIC' $<
$(COMPILE_PREFIX)$(UIC) $< -o qt-ui/$@
share/locale/%.UTF-8/LC_MESSAGES/$(NAME).mo: po/%.po po/%.aliases
@$(PRETTYECHO) ' MSGFMT' $*.po

View file

@ -2,10 +2,6 @@
#define LIBDIVECOMPUTER_H
#ifdef __cplusplus
extern "C" {
#endif
/* libdivecomputer */
#include <libdivecomputer/version.h>
#include <libdivecomputer/device.h>
@ -14,6 +10,10 @@ extern "C" {
/* handling uemis Zurich SDA files */
#include "uemis.h"
#ifdef __cplusplus
extern "C" {
#endif
/* don't forget to include the UI toolkit specific display-XXX.h first
to get the definition of progressbar_t */
typedef struct device_data_t {

View file

@ -8,6 +8,10 @@
#include <stdint.h>
#include "dive.h"
#ifdef __cplusplus
extern "C" {
#endif
void uemis_parse_divelog_binary(char *base64, void *divep);
int uemis_get_weight_unit(int diveid);
void uemis_mark_divelocation(int diveid, int divespot, char **location, degrees_t *longitude, degrees_t *latitude);
@ -41,4 +45,8 @@ typedef struct {
uint8_t flags[8];
} __attribute((packed)) uemis_sample_t;
#ifdef __cplusplus
}
#endif
#endif /* UEMIS_H */