diff options
author | Thiago Macieira <thiago@macieira.org> | 2013-10-05 12:11:46 -0700 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-10-05 13:59:59 -0700 |
commit | 5a139c934dcd5ee3514c04ac9dc3e1dcb0a13ff7 (patch) | |
tree | 180f6c14f05eb6fe7400caf2a1f534c6b6860373 | |
parent | 3e0ecb5ff6a95e1be8f22359048e4dfa85d165bc (diff) | |
download | subsurface-5a139c934dcd5ee3514c04ac9dc3e1dcb0a13ff7.tar.gz |
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>
-rw-r--r-- | Rules.mk | 8 | ||||
-rw-r--r-- | libdivecomputer.h | 8 | ||||
-rw-r--r-- | uemis.h | 8 |
3 files changed, 18 insertions, 6 deletions
@@ -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 diff --git a/libdivecomputer.h b/libdivecomputer.h index 4bb0239e9..07d965ef6 100644 --- a/libdivecomputer.h +++ b/libdivecomputer.h @@ -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 { @@ -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 */ |