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/DNA_fileglobal_types.h | |
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/DNA_fileglobal_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_fileglobal_types.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_fileglobal_types.h b/source/blender/makesdna/DNA_fileglobal_types.h index bb660fb8eaa..dc43524a325 100644 --- a/source/blender/makesdna/DNA_fileglobal_types.h +++ b/source/blender/makesdna/DNA_fileglobal_types.h @@ -23,6 +23,10 @@ #pragma once +#ifdef __cplusplus +extern "C" { +#endif + /** * FileGlobal stores a part of the current user-interface settings at * the moment of saving, and the file-specific settings. @@ -53,3 +57,7 @@ typedef struct FileGlobal { /* example: if in 2.43 the meshes lose mesh data, minversion is 2.43 then too */ /* or: in 2.42, subversion 1, same as above, minversion then is 2.42, min subversion 1 */ /* (defines for version are in the BKE_blender_version.h file, for historic reasons) */ + +#ifdef __cplusplus +} +#endif |