diff options
author | Julian Eisel <julian@blender.org> | 2020-11-19 15:41:50 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2020-11-19 15:41:50 +0300 |
commit | ad4b7741dba45a2be210942c18af6b6e4438f129 (patch) | |
tree | ad7682ae65022145ab16c173f8ff7062df7a0192 /source/blender/makesdna/intern | |
parent | 1395ba70bf37bc0a21920416b0abbaac9af2b7e5 (diff) |
Build-system: Force C linkage for all DNA type headers
Some DNA headers already did this, most did not. Even though many of them would
be included in C++ files and thus compiled as C++. This would be confusing and
developers may think they have to add `extern "C"` too a whole lot of
(indirect) includes to be able to use a C header in C++.
However, this is a misconception.
`extern "C"` does not cause code to be compiled with C rather than C++! It only
causes the linker to not use C++ function name mangling. See
https://stackoverflow.com/a/1041880.
Because extern DNA headers don't have function declarations, using `extern "C"`
actually should not have any effect. On the other hand, adding it causes no
harm and avoids confusion. So let's just have it consistently in C header
files.
Differential Revision: https://developer.blender.org/D9578
Reviewed by: Bastien Montagne, Sybren Stüvel
Diffstat (limited to 'source/blender/makesdna/intern')
-rw-r--r-- | source/blender/makesdna/intern/dna_utils.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/makesdna/intern/dna_utils.h b/source/blender/makesdna/intern/dna_utils.h index a5c9d2a79a0..f711056c575 100644 --- a/source/blender/makesdna/intern/dna_utils.h +++ b/source/blender/makesdna/intern/dna_utils.h @@ -20,6 +20,10 @@ #pragma once +#ifdef __cplusplus +extern "C" { +#endif + struct GHash; struct MemArena; @@ -53,3 +57,7 @@ void DNA_alias_maps(enum eDNA_RenameDir version_dir, const char *DNA_struct_rename_legacy_hack_alias_from_static(const char *name); const char *DNA_struct_rename_legacy_hack_static_from_alias(const char *name); + +#ifdef __cplusplus +} +#endif |