Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Eisel <julian@blender.org>2020-11-19 15:41:50 +0300
committerJulian Eisel <julian@blender.org>2020-11-19 15:41:50 +0300
commitad4b7741dba45a2be210942c18af6b6e4438f129 (patch)
treead7682ae65022145ab16c173f8ff7062df7a0192
parent1395ba70bf37bc0a21920416b0abbaac9af2b7e5 (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
-rw-r--r--source/blender/makesdna/DNA_armature_types.h8
-rw-r--r--source/blender/makesdna/DNA_boid_types.h8
-rw-r--r--source/blender/makesdna/DNA_brush_types.h8
-rw-r--r--source/blender/makesdna/DNA_cloth_types.h8
-rw-r--r--source/blender/makesdna/DNA_collection_types.h8
-rw-r--r--source/blender/makesdna/DNA_color_types.h8
-rw-r--r--source/blender/makesdna/DNA_constraint_types.h8
-rw-r--r--source/blender/makesdna/DNA_curve_types.h8
-rw-r--r--source/blender/makesdna/DNA_curveprofile_types.h8
-rw-r--r--source/blender/makesdna/DNA_dynamicpaint_types.h9
-rw-r--r--source/blender/makesdna/DNA_effect_types.h8
-rw-r--r--source/blender/makesdna/DNA_fileglobal_types.h8
-rw-r--r--source/blender/makesdna/DNA_fluid_types.h8
-rw-r--r--source/blender/makesdna/DNA_gpencil_modifier_types.h8
-rw-r--r--source/blender/makesdna/DNA_gpencil_types.h8
-rw-r--r--source/blender/makesdna/DNA_gpu_types.h8
-rw-r--r--source/blender/makesdna/DNA_hair_types.h8
-rw-r--r--source/blender/makesdna/DNA_image_types.h8
-rw-r--r--source/blender/makesdna/DNA_ipo_types.h8
-rw-r--r--source/blender/makesdna/DNA_key_types.h8
-rw-r--r--source/blender/makesdna/DNA_lattice_types.h8
-rw-r--r--source/blender/makesdna/DNA_light_types.h8
-rw-r--r--source/blender/makesdna/DNA_linestyle_types.h8
-rw-r--r--source/blender/makesdna/DNA_mask_types.h8
-rw-r--r--source/blender/makesdna/DNA_material_types.h8
-rw-r--r--source/blender/makesdna/DNA_meshdata_types.h8
-rw-r--r--source/blender/makesdna/DNA_meta_types.h8
-rw-r--r--source/blender/makesdna/DNA_nla_types.h8
-rw-r--r--source/blender/makesdna/DNA_node_types.h8
-rw-r--r--source/blender/makesdna/DNA_object_enums.h8
-rw-r--r--source/blender/makesdna/DNA_outliner_types.h8
-rw-r--r--source/blender/makesdna/DNA_packedFile_types.h8
-rw-r--r--source/blender/makesdna/DNA_particle_types.h8
-rw-r--r--source/blender/makesdna/DNA_pointcloud_types.h8
-rw-r--r--source/blender/makesdna/DNA_rigidbody_types.h8
-rw-r--r--source/blender/makesdna/DNA_screen_types.h8
-rw-r--r--source/blender/makesdna/DNA_sdna_types.h8
-rw-r--r--source/blender/makesdna/DNA_shader_fx_types.h8
-rw-r--r--source/blender/makesdna/DNA_simulation_types.h8
-rw-r--r--source/blender/makesdna/DNA_sound_types.h8
-rw-r--r--source/blender/makesdna/DNA_space_types.h8
-rw-r--r--source/blender/makesdna/DNA_speaker_types.h8
-rw-r--r--source/blender/makesdna/DNA_text_types.h8
-rw-r--r--source/blender/makesdna/DNA_tracking_types.h8
-rw-r--r--source/blender/makesdna/DNA_vec_types.h8
-rw-r--r--source/blender/makesdna/DNA_vfont_types.h8
-rw-r--r--source/blender/makesdna/DNA_view2d_types.h8
-rw-r--r--source/blender/makesdna/DNA_view3d_enums.h8
-rw-r--r--source/blender/makesdna/DNA_view3d_types.h8
-rw-r--r--source/blender/makesdna/DNA_volume_types.h8
-rw-r--r--source/blender/makesdna/DNA_windowmanager_types.h8
-rw-r--r--source/blender/makesdna/DNA_workspace_types.h8
-rw-r--r--source/blender/makesdna/DNA_world_types.h8
-rw-r--r--source/blender/makesdna/DNA_xr_types.h8
-rw-r--r--source/blender/makesdna/intern/dna_utils.h8
55 files changed, 441 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_armature_types.h b/source/blender/makesdna/DNA_armature_types.h
index 2e029d041ec..de2d56bb264 100644
--- a/source/blender/makesdna/DNA_armature_types.h
+++ b/source/blender/makesdna/DNA_armature_types.h
@@ -27,6 +27,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
/* this system works on different transformation space levels;
@@ -280,3 +284,7 @@ typedef enum eBone_BBoneHandleType {
} eBone_BBoneHandleType;
#define MAXBONENAME 64
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_boid_types.h b/source/blender/makesdna/DNA_boid_types.h
index d5aa87fc8ae..7e010f27ce6 100644
--- a/source/blender/makesdna/DNA_boid_types.h
+++ b/source/blender/makesdna/DNA_boid_types.h
@@ -25,6 +25,10 @@
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef enum eBoidRuleType {
eBoidRuleType_None = 0,
/** go to goal assigned object or loudest assigned signal source */
@@ -222,3 +226,7 @@ typedef struct BoidSettings {
//#define BOID_RULE_LAND (1 << 3) /* goal */
//#define BOID_RULE_WITH_BOIDS (1 << 4) /* avoid collision */
//#define BOID_RULE_WITH_DEFLECTORS (1 << 5) /* avoid collision */
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h
index 3524cb7e7b5..756f21321f4 100644
--- a/source/blender/makesdna/DNA_brush_types.h
+++ b/source/blender/makesdna/DNA_brush_types.h
@@ -27,6 +27,10 @@
#include "DNA_curve_types.h"
#include "DNA_texture_types.h" /* for MTex */
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct CurveMapping;
struct Image;
struct MTex;
@@ -980,3 +984,7 @@ enum {
#define MAX_BRUSH_PIXEL_RADIUS 500
#define GP_MAX_BRUSH_PIXEL_RADIUS 1000
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_cloth_types.h b/source/blender/makesdna/DNA_cloth_types.h
index 3d11b3cd7a3..11993d95c2c 100644
--- a/source/blender/makesdna/DNA_cloth_types.h
+++ b/source/blender/makesdna/DNA_cloth_types.h
@@ -25,6 +25,10 @@
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/**
* This struct contains all the global data required to run a simulation.
* At the time of this writing, this structure contains data appropriate
@@ -250,3 +254,7 @@ typedef enum {
CLOTH_COLLSETTINGS_FLAG_ENABLED = (1 << 1), /* enables cloth - object collisions */
CLOTH_COLLSETTINGS_FLAG_SELF = (1 << 2), /* enables selfcollisions */
} CLOTH_COLLISIONSETTINGS_FLAGS;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_collection_types.h b/source/blender/makesdna/DNA_collection_types.h
index e188426fdda..0a80e00d456 100644
--- a/source/blender/makesdna/DNA_collection_types.h
+++ b/source/blender/makesdna/DNA_collection_types.h
@@ -29,6 +29,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct Collection;
struct Object;
@@ -109,3 +113,7 @@ typedef enum CollectionColorTag {
COLLECTION_COLOR_TOT,
} CollectionColorTag;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_color_types.h b/source/blender/makesdna/DNA_color_types.h
index ff419e1794e..bcebbf32ebd 100644
--- a/source/blender/makesdna/DNA_color_types.h
+++ b/source/blender/makesdna/DNA_color_types.h
@@ -26,6 +26,10 @@
#include "DNA_defs.h"
#include "DNA_vec_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* general defines for kernel functions */
#define CM_RESOL 32
#define CM_TABLE 256
@@ -214,3 +218,7 @@ typedef struct ColorManagedColorspaceSettings {
enum {
COLORMANAGE_VIEW_USE_CURVES = (1 << 0),
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h
index 93a67602047..70d33d9ff94 100644
--- a/source/blender/makesdna/DNA_constraint_types.h
+++ b/source/blender/makesdna/DNA_constraint_types.h
@@ -28,6 +28,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct Action;
struct Ipo;
struct Text;
@@ -1172,3 +1176,7 @@ typedef enum eStretchTo_Flags {
#define CONSTRAINT_RB_CONETWIST 4
#define CONSTRAINT_RB_VEHICLE 11
#define CONSTRAINT_RB_GENERIC6DOF 12
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h
index 4eca81c27cc..372cfb225fa 100644
--- a/source/blender/makesdna/DNA_curve_types.h
+++ b/source/blender/makesdna/DNA_curve_types.h
@@ -28,6 +28,10 @@
#include "DNA_listBase.h"
#include "DNA_vec_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#define MAXTEXTBOX 256 /* used in readfile.c and editfont.c */
struct AnimData;
@@ -606,3 +610,7 @@ enum {
/* indicates point has been seen during surface duplication */
#define SURF_SEEN 4
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_curveprofile_types.h b/source/blender/makesdna/DNA_curveprofile_types.h
index 5b425741df2..450155a32e1 100644
--- a/source/blender/makesdna/DNA_curveprofile_types.h
+++ b/source/blender/makesdna/DNA_curveprofile_types.h
@@ -25,6 +25,10 @@
#include "DNA_vec_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/** Number of points in high resolution table is dynamic up to a maximum. */
#define PROF_TABLE_MAX 512
/** Number of table points per control point. */
@@ -98,3 +102,7 @@ typedef enum eCurveProfilePresets {
PROF_PRESET_CROWN = 3, /* Second molding example. */
PROF_PRESET_STEPS = 4, /* Dynamic number of steps defined by segments_len. */
} eCurveProfilePresets;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_dynamicpaint_types.h b/source/blender/makesdna/DNA_dynamicpaint_types.h
index 94f54a0d200..24dc90d6c21 100644
--- a/source/blender/makesdna/DNA_dynamicpaint_types.h
+++ b/source/blender/makesdna/DNA_dynamicpaint_types.h
@@ -21,6 +21,11 @@
#pragma once
#include "DNA_listBase.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct PaintSurfaceData;
/* surface format */
@@ -261,3 +266,7 @@ typedef struct DynamicPaintBrushSettings {
float wave_factor, wave_clamp;
float max_velocity, smudge_strength;
} DynamicPaintBrushSettings;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_effect_types.h b/source/blender/makesdna/DNA_effect_types.h
index c25e9d0dded..33f2e1b47c0 100644
--- a/source/blender/makesdna/DNA_effect_types.h
+++ b/source/blender/makesdna/DNA_effect_types.h
@@ -23,6 +23,10 @@
#pragma once
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* don't forget, new effects also in writefile.c for dna!!! */
#define PAF_MAXMULT 4
@@ -129,3 +133,7 @@ typedef struct WaveEff {
float timeoffs, lifetime;
} WaveEff;
+
+#ifdef __cplusplus
+}
+#endif
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
diff --git a/source/blender/makesdna/DNA_fluid_types.h b/source/blender/makesdna/DNA_fluid_types.h
index 2786d4df868..98007a2b0b1 100644
--- a/source/blender/makesdna/DNA_fluid_types.h
+++ b/source/blender/makesdna/DNA_fluid_types.h
@@ -25,6 +25,10 @@
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/**
* #FluidDomainSettings.flags
* Domain flags.
@@ -860,3 +864,7 @@ typedef struct FluidEffectorSettings {
short guide_mode;
char _pad2[2];
} FluidEffectorSettings;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_gpencil_modifier_types.h b/source/blender/makesdna/DNA_gpencil_modifier_types.h
index f84265eea1d..bd5afc457ac 100644
--- a/source/blender/makesdna/DNA_gpencil_modifier_types.h
+++ b/source/blender/makesdna/DNA_gpencil_modifier_types.h
@@ -23,6 +23,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct LatticeDeformData;
/* WARNING ALERT! TYPEDEF VALUES ARE WRITTEN IN FILES! SO DO NOT CHANGE!
@@ -801,3 +805,7 @@ typedef enum eTextureGpencil_Mode {
FILL = 1,
STROKE_AND_FILL = 2,
} eTextureGpencil_Mode;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 94b75642fd6..212f0bfa1c9 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -27,6 +27,10 @@
#include "DNA_brush_types.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
struct MDeformVert;
struct Curve;
@@ -835,3 +839,7 @@ typedef enum eGP_DrawMode {
#define GPENCIL_ANY_VERTEX_MASK(flag) \
((flag & (GP_VERTEX_MASK_SELECTMODE_POINT | GP_VERTEX_MASK_SELECTMODE_STROKE | \
GP_VERTEX_MASK_SELECTMODE_SEGMENT)))
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_gpu_types.h b/source/blender/makesdna/DNA_gpu_types.h
index b1ace1bda49..8cea1451525 100644
--- a/source/blender/makesdna/DNA_gpu_types.h
+++ b/source/blender/makesdna/DNA_gpu_types.h
@@ -23,6 +23,10 @@
#pragma once
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* Keep for 'Camera' versioning. */
/** Properties for dof effect. */
typedef struct GPUDOFSettings {
@@ -36,3 +40,7 @@ typedef struct GPUDOFSettings {
int num_blades;
int high_quality;
} GPUDOFSettings;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_hair_types.h b/source/blender/makesdna/DNA_hair_types.h
index 27799560395..2e819b32033 100644
--- a/source/blender/makesdna/DNA_hair_types.h
+++ b/source/blender/makesdna/DNA_hair_types.h
@@ -23,6 +23,10 @@
#include "DNA_ID.h"
#include "DNA_customdata_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct HairCurve {
/* Index of first point of hair curve. */
int firstpoint;
@@ -75,3 +79,7 @@ enum {
/* Only one material supported currently. */
#define HAIR_MATERIAL_NR 1
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h
index 6e0e3d6d6b7..4edf06f90f7 100644
--- a/source/blender/makesdna/DNA_image_types.h
+++ b/source/blender/makesdna/DNA_image_types.h
@@ -27,6 +27,10 @@
#include "DNA_color_types.h" /* for color management */
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct GPUTexture;
struct MovieCache;
struct PackedFile;
@@ -267,3 +271,7 @@ enum {
IMA_ALPHA_CHANNEL_PACKED = 2,
IMA_ALPHA_IGNORE = 3,
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_ipo_types.h b/source/blender/makesdna/DNA_ipo_types.h
index dfd06702b72..8bb94976414 100644
--- a/source/blender/makesdna/DNA_ipo_types.h
+++ b/source/blender/makesdna/DNA_ipo_types.h
@@ -36,6 +36,10 @@
#include "BLI_compiler_attrs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* -------------------------- Type Defines --------------------------- */
/* --- IPO Curve Driver --- */
@@ -516,3 +520,7 @@ typedef struct Ipo {
/* driver->flag */
/* invalid flag: currently only used for buggy pydriver expressions */
#define IPO_DRIVER_FLAG_INVALID (1 << 0)
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_key_types.h b/source/blender/makesdna/DNA_key_types.h
index 3a613d92e4f..9789d0d3520 100644
--- a/source/blender/makesdna/DNA_key_types.h
+++ b/source/blender/makesdna/DNA_key_types.h
@@ -30,6 +30,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
struct Ipo;
@@ -158,3 +162,7 @@ enum {
#define KEYELEM_ELEM_LEN_BEZTRIPLE 4
#define KEYELEM_FLOAT_LEN_BEZTRIPLE (KEYELEM_ELEM_LEN_BEZTRIPLE * KEYELEM_ELEM_SIZE_CURVE)
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_lattice_types.h b/source/blender/makesdna/DNA_lattice_types.h
index 797df3bd738..48eb8d90702 100644
--- a/source/blender/makesdna/DNA_lattice_types.h
+++ b/source/blender/makesdna/DNA_lattice_types.h
@@ -26,6 +26,10 @@
#include "DNA_ID.h"
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
struct BPoint;
struct Ipo;
@@ -82,3 +86,7 @@ typedef struct Lattice {
#define LT_DS_EXPAND 4
#define LT_ACTBP_NONE -1
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_light_types.h b/source/blender/makesdna/DNA_light_types.h
index 1616cf949bd..9ca75347d23 100644
--- a/source/blender/makesdna/DNA_light_types.h
+++ b/source/blender/makesdna/DNA_light_types.h
@@ -26,6 +26,10 @@
#include "DNA_ID.h"
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef MAX_MTEX
# define MAX_MTEX 18
#endif
@@ -154,3 +158,7 @@ typedef struct Light {
/* #define LA_AREA_BOX 3 */ /* UNUSED */
#define LA_AREA_DISK 4
#define LA_AREA_ELLIPSE 5
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_linestyle_types.h b/source/blender/makesdna/DNA_linestyle_types.h
index 422b99f00a0..b154de4507e 100644
--- a/source/blender/makesdna/DNA_linestyle_types.h
+++ b/source/blender/makesdna/DNA_linestyle_types.h
@@ -26,6 +26,10 @@
#include "DNA_ID.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef MAX_MTEX
# define MAX_MTEX 18
#endif
@@ -575,3 +579,7 @@ typedef struct FreestyleLineStyle {
ListBase thickness_modifiers;
ListBase geometry_modifiers;
} FreestyleLineStyle;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_mask_types.h b/source/blender/makesdna/DNA_mask_types.h
index f877b8f0c51..296f5bceb81 100644
--- a/source/blender/makesdna/DNA_mask_types.h
+++ b/source/blender/makesdna/DNA_mask_types.h
@@ -31,6 +31,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct Mask {
ID id;
struct AnimData *adt;
@@ -263,3 +267,7 @@ enum {
enum {
MASK_ANIMF_EXPAND = (1 << 4),
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_material_types.h b/source/blender/makesdna/DNA_material_types.h
index 1d31b876068..919bd18be80 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -27,6 +27,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#ifndef MAX_MTEX
# define MAX_MTEX 18
#endif
@@ -359,3 +363,7 @@ enum {
GP_MATERIAL_FOLLOW_OBJ = 1,
GP_MATERIAL_FOLLOW_FIXED = 2,
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_meshdata_types.h b/source/blender/makesdna/DNA_meshdata_types.h
index 7cc94a2ad0b..b2f8d845815 100644
--- a/source/blender/makesdna/DNA_meshdata_types.h
+++ b/source/blender/makesdna/DNA_meshdata_types.h
@@ -26,6 +26,10 @@
#include "DNA_customdata_types.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* -------------------------------------------------------------------- */
/** \name Geometry Elements
* \{ */
@@ -519,3 +523,7 @@ typedef struct MRecast {
} MRecast;
/** \} */
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_meta_types.h b/source/blender/makesdna/DNA_meta_types.h
index de7427bc4dd..a827003a9a0 100644
--- a/source/blender/makesdna/DNA_meta_types.h
+++ b/source/blender/makesdna/DNA_meta_types.h
@@ -27,6 +27,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
struct BoundBox;
struct Ipo;
@@ -138,3 +142,7 @@ typedef struct MetaBall {
#define MB_NEGATIVE 2
#define MB_HIDE 8
#define MB_SCALE_RAD 16
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_nla_types.h b/source/blender/makesdna/DNA_nla_types.h
index 1cf93464f6a..7808dd68384 100644
--- a/source/blender/makesdna/DNA_nla_types.h
+++ b/source/blender/makesdna/DNA_nla_types.h
@@ -25,6 +25,10 @@
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct Ipo;
struct Object;
struct bAction;
@@ -105,3 +109,7 @@ typedef enum eActStrip_Flag {
ACTSTRIP_REVERSE = (1 << 7),
ACTSTRIP_AUTO_BLENDS = (1 << 11),
} eActStrip_Flag;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index 6f6c9029d07..a5869a74ffc 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -29,6 +29,10 @@
#include "DNA_texture_types.h"
#include "DNA_vec_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
struct ID;
struct Image;
@@ -1443,3 +1447,7 @@ typedef enum NodeSimInputTimeType {
NODE_SIM_INPUT_SIMULATION_TIME = 0,
NODE_SIM_INPUT_SCENE_TIME = 1,
} NodeSimInputTimeType;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_object_enums.h b/source/blender/makesdna/DNA_object_enums.h
index c230cc3c872..ee30be934ca 100644
--- a/source/blender/makesdna/DNA_object_enums.h
+++ b/source/blender/makesdna/DNA_object_enums.h
@@ -22,6 +22,10 @@
#pragma once
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/** #Object.mode */
typedef enum eObjectMode {
OB_MODE_OBJECT = 0,
@@ -71,3 +75,7 @@ typedef enum eDrawType {
(OB_MODE_EDIT | OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_SCULPT | OB_MODE_POSE | \
OB_MODE_PAINT_GPENCIL | OB_MODE_EDIT_GPENCIL | OB_MODE_SCULPT_GPENCIL | \
OB_MODE_WEIGHT_GPENCIL | OB_MODE_VERTEX_GPENCIL)
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_outliner_types.h b/source/blender/makesdna/DNA_outliner_types.h
index 52d466fdbdd..cc376c0cebf 100644
--- a/source/blender/makesdna/DNA_outliner_types.h
+++ b/source/blender/makesdna/DNA_outliner_types.h
@@ -25,6 +25,10 @@
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct ID;
typedef struct TreeStoreElem {
@@ -128,3 +132,7 @@ enum {
TSE_KEYMAP_ITEM, \
TSE_ID_BASE, \
TSE_GP_LAYER))
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_packedFile_types.h b/source/blender/makesdna/DNA_packedFile_types.h
index b74368f767b..91c7de6bf3e 100644
--- a/source/blender/makesdna/DNA_packedFile_types.h
+++ b/source/blender/makesdna/DNA_packedFile_types.h
@@ -23,8 +23,16 @@
#pragma once
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct PackedFile {
int size;
int seek;
void *data;
} PackedFile;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_particle_types.h b/source/blender/makesdna/DNA_particle_types.h
index bd19498eba7..d48144f90e8 100644
--- a/source/blender/makesdna/DNA_particle_types.h
+++ b/source/blender/makesdna/DNA_particle_types.h
@@ -27,6 +27,10 @@
#include "DNA_boid_types.h"
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
typedef struct HairKey {
@@ -690,3 +694,7 @@ typedef enum eParticleTextureInfluence {
PAMAP_CHILD = (PAMAP_CLUMP | PAMAP_KINK_FREQ | PAMAP_KINK_AMP | PAMAP_ROUGH | PAMAP_LENGTH |
PAMAP_TWIST),
} eParticleTextureInfluence;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_pointcloud_types.h b/source/blender/makesdna/DNA_pointcloud_types.h
index 86cff098096..26f1db3324b 100644
--- a/source/blender/makesdna/DNA_pointcloud_types.h
+++ b/source/blender/makesdna/DNA_pointcloud_types.h
@@ -23,6 +23,10 @@
#include "DNA_ID.h"
#include "DNA_customdata_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct PointCloud {
ID id;
struct AnimData *adt; /* animation data (must be immediately after id) */
@@ -57,3 +61,7 @@ enum {
/* Only one material supported currently. */
#define POINTCLOUD_MATERIAL_NR 1
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_rigidbody_types.h b/source/blender/makesdna/DNA_rigidbody_types.h
index cd11c18578a..48f183e1e28 100644
--- a/source/blender/makesdna/DNA_rigidbody_types.h
+++ b/source/blender/makesdna/DNA_rigidbody_types.h
@@ -27,6 +27,10 @@
#include "DNA_listBase.h"
#include "DNA_object_force_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct Collection;
struct EffectorWeights;
@@ -368,3 +372,7 @@ typedef enum eRigidBodyCon_Flag {
} eRigidBodyCon_Flag;
/* ******************************** */
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_screen_types.h b/source/blender/makesdna/DNA_screen_types.h
index e42ff2a6e58..3a99a6f4ee8 100644
--- a/source/blender/makesdna/DNA_screen_types.h
+++ b/source/blender/makesdna/DNA_screen_types.h
@@ -30,6 +30,10 @@
#include "DNA_ID.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct ARegion;
struct ARegionType;
struct PanelType;
@@ -723,3 +727,7 @@ enum {
/* Only editor overlays (currently gizmos only!) should be redrawn. */
RGN_DRAW_EDITOR_OVERLAYS = 32,
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_sdna_types.h b/source/blender/makesdna/DNA_sdna_types.h
index 4505eed3208..39ec8fcecb6 100644
--- a/source/blender/makesdna/DNA_sdna_types.h
+++ b/source/blender/makesdna/DNA_sdna_types.h
@@ -22,6 +22,10 @@
#pragma once
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct MemArena;
#
@@ -118,3 +122,7 @@ typedef struct BHead8 {
uint64_t old;
int SDNAnr, nr;
} BHead8;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_shader_fx_types.h b/source/blender/makesdna/DNA_shader_fx_types.h
index 07ccac5ba29..84b80310918 100644
--- a/source/blender/makesdna/DNA_shader_fx_types.h
+++ b/source/blender/makesdna/DNA_shader_fx_types.h
@@ -23,6 +23,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct DRWShadingGroup;
/* WARNING ALERT! TYPEDEF VALUES ARE WRITTEN IN FILES! SO DO NOT CHANGE!
@@ -251,3 +255,7 @@ typedef struct WaveShaderFxData {
char _pad[4];
ShaderFxData_Runtime runtime;
} WaveShaderFxData;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_simulation_types.h b/source/blender/makesdna/DNA_simulation_types.h
index 4ff694b29cc..a700c9fe2f8 100644
--- a/source/blender/makesdna/DNA_simulation_types.h
+++ b/source/blender/makesdna/DNA_simulation_types.h
@@ -23,6 +23,10 @@
#include "DNA_ID.h"
#include "DNA_customdata_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct Simulation {
ID id;
struct AnimData *adt; /* animation data (must be immediately after id) */
@@ -38,3 +42,7 @@ typedef struct Simulation {
enum {
SIM_DS_EXPAND = (1 << 0),
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_sound_types.h b/source/blender/makesdna/DNA_sound_types.h
index 39e1c730f10..b2bb50c56a2 100644
--- a/source/blender/makesdna/DNA_sound_types.h
+++ b/source/blender/makesdna/DNA_sound_types.h
@@ -25,6 +25,10 @@
#include "DNA_ID.h"
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct Ipo;
struct PackedFile;
@@ -116,3 +120,7 @@ enum {
SOUND_TAGS_WAVEFORM_NO_RELOAD = 1 << 0,
SOUND_TAGS_WAVEFORM_LOADING = (1 << 6),
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h
index a3aa79d29e8..3b805c6edec 100644
--- a/source/blender/makesdna/DNA_space_types.h
+++ b/source/blender/makesdna/DNA_space_types.h
@@ -36,6 +36,10 @@
/* Hum ... Not really nice... but needed for spacebuts. */
#include "DNA_view2d_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct BLI_mempool;
struct FileLayout;
struct FileList;
@@ -1761,3 +1765,7 @@ typedef enum eSpace_Type {
#define IMG_SIZE_FALLBACK 256
/** \} */
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_speaker_types.h b/source/blender/makesdna/DNA_speaker_types.h
index 82693689d68..29cccd1ef3a 100644
--- a/source/blender/makesdna/DNA_speaker_types.h
+++ b/source/blender/makesdna/DNA_speaker_types.h
@@ -22,6 +22,10 @@
#include "DNA_ID.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
struct bSound;
@@ -57,3 +61,7 @@ typedef struct Speaker {
#define SPK_DS_EXPAND (1 << 0)
#define SPK_MUTED (1 << 1)
// #define SPK_RELATIVE (1 << 2) /* UNUSED */
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_text_types.h b/source/blender/makesdna/DNA_text_types.h
index 2dcb19d19b8..f63389bccf9 100644
--- a/source/blender/makesdna/DNA_text_types.h
+++ b/source/blender/makesdna/DNA_text_types.h
@@ -28,6 +28,10 @@
#include "DNA_ID.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct TextLine {
struct TextLine *next, *prev;
@@ -84,3 +88,7 @@ enum {
/** Use space instead of tabs. */
TXT_TABSTOSPACES = 1 << 10,
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_tracking_types.h b/source/blender/makesdna/DNA_tracking_types.h
index 0bbeabf130f..5db523dfad1 100644
--- a/source/blender/makesdna/DNA_tracking_types.h
+++ b/source/blender/makesdna/DNA_tracking_types.h
@@ -28,6 +28,10 @@
#include "DNA_defs.h"
#include "DNA_listBase.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* match-moving data */
struct Image;
@@ -624,3 +628,7 @@ enum {
PLANE_TRACK_LOCKED = (1 << 2),
PLANE_TRACK_AUTOKEY = (1 << 3),
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_vec_types.h b/source/blender/makesdna/DNA_vec_types.h
index b8cbf85b683..0e3117c7f58 100644
--- a/source/blender/makesdna/DNA_vec_types.h
+++ b/source/blender/makesdna/DNA_vec_types.h
@@ -23,6 +23,10 @@
#pragma once
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* types */
/** vector of two shorts. */
@@ -90,3 +94,7 @@ typedef struct DualQuat {
float scale[4][4];
float scale_weight;
} DualQuat;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_vfont_types.h b/source/blender/makesdna/DNA_vfont_types.h
index 4e2a6eba1f5..6f0820ff62c 100644
--- a/source/blender/makesdna/DNA_vfont_types.h
+++ b/source/blender/makesdna/DNA_vfont_types.h
@@ -28,6 +28,10 @@
#include "DNA_ID.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct PackedFile;
struct VFontData;
@@ -59,3 +63,7 @@ typedef struct VFont {
#define FO_CURS_IS_MOTION(mode) (ELEM(mode, FO_CURSUP, FO_CURSDOWN, FO_PAGEUP, FO_PAGEDOWN))
#define FO_BUILTIN_NAME "<builtin>"
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_view2d_types.h b/source/blender/makesdna/DNA_view2d_types.h
index 085f463a1cc..131772d49b4 100644
--- a/source/blender/makesdna/DNA_view2d_types.h
+++ b/source/blender/makesdna/DNA_view2d_types.h
@@ -25,6 +25,10 @@
#include "DNA_vec_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* ---------------------------------- */
/* View 2D data - stored per region */
@@ -173,3 +177,7 @@ enum {
V2D_ALIGN_NO_POS_Y = (1 << 2),
V2D_ALIGN_NO_NEG_Y = (1 << 3),
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_view3d_enums.h b/source/blender/makesdna/DNA_view3d_enums.h
index fdeebf20808..3de430e1177 100644
--- a/source/blender/makesdna/DNA_view3d_enums.h
+++ b/source/blender/makesdna/DNA_view3d_enums.h
@@ -20,6 +20,10 @@
#pragma once
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/** Settings for offscreen rendering */
typedef enum eV3DOffscreenDrawFlag {
V3D_OFSDRAW_NONE = (0),
@@ -51,3 +55,7 @@ typedef enum eV3DShadingBackgroundType {
V3D_SHADING_BACKGROUND_WORLD = 1,
V3D_SHADING_BACKGROUND_VIEWPORT = 2,
} eV3DShadingBackgroundType;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_view3d_types.h b/source/blender/makesdna/DNA_view3d_types.h
index 7e80fc1bd6d..9a233878840 100644
--- a/source/blender/makesdna/DNA_view3d_types.h
+++ b/source/blender/makesdna/DNA_view3d_types.h
@@ -39,6 +39,10 @@ struct wmTimer;
#include "DNA_object_types.h"
#include "DNA_view3d_enums.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct RegionView3D {
/** GL_PROJECTION matrix. */
@@ -635,3 +639,7 @@ enum {
/** #BKE_screen_view3d_zoom_to_fac() values above */
#define RV3D_CAMZOOM_MIN_FACTOR 0.1657359312880714853f
#define RV3D_CAMZOOM_MAX_FACTOR 44.9852813742385702928f
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_volume_types.h b/source/blender/makesdna/DNA_volume_types.h
index d6a3cdf04bf..1344f295ea9 100644
--- a/source/blender/makesdna/DNA_volume_types.h
+++ b/source/blender/makesdna/DNA_volume_types.h
@@ -22,6 +22,10 @@
#include "DNA_ID.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct PackedFile;
struct VolumeGridVector;
@@ -148,3 +152,7 @@ typedef enum SliceAxis {
/* Only one material supported currently. */
#define VOLUME_MATERIAL_NR 1
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_windowmanager_types.h b/source/blender/makesdna/DNA_windowmanager_types.h
index 4b4e17b38bd..a7ad18d7cf3 100644
--- a/source/blender/makesdna/DNA_windowmanager_types.h
+++ b/source/blender/makesdna/DNA_windowmanager_types.h
@@ -31,6 +31,10 @@
#include "DNA_ID.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
/* defined here: */
struct wmWindow;
struct wmWindowManager;
@@ -569,3 +573,7 @@ enum {
* (the regiontype is maintained to prevent errors) */
OP_IS_MODAL_CURSOR_REGION = (1 << 3),
};
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_workspace_types.h b/source/blender/makesdna/DNA_workspace_types.h
index b9ca2598ff3..edca887639e 100644
--- a/source/blender/makesdna/DNA_workspace_types.h
+++ b/source/blender/makesdna/DNA_workspace_types.h
@@ -24,6 +24,10 @@
#include "DNA_scene_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#
#
typedef struct bToolRef_Runtime {
@@ -188,3 +192,7 @@ typedef struct WorkSpaceInstanceHook {
typedef enum eWorkSpaceFlags {
WORKSPACE_USE_FILTER_BY_ORIGIN = (1 << 1),
} eWorkSpaceFlags;
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_world_types.h b/source/blender/makesdna/DNA_world_types.h
index b1ecf4abf85..d1132efc7a9 100644
--- a/source/blender/makesdna/DNA_world_types.h
+++ b/source/blender/makesdna/DNA_world_types.h
@@ -26,6 +26,10 @@
#include "DNA_ID.h"
#include "DNA_defs.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct AnimData;
struct Ipo;
struct bNodeTree;
@@ -110,3 +114,7 @@ enum {
* otherwise anim-editors will not read correctly
*/
#define WO_DS_SHOW_TEXS (1 << 2)
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/source/blender/makesdna/DNA_xr_types.h b/source/blender/makesdna/DNA_xr_types.h
index caa5232788a..2ce32a723a7 100644
--- a/source/blender/makesdna/DNA_xr_types.h
+++ b/source/blender/makesdna/DNA_xr_types.h
@@ -22,6 +22,10 @@
#include "DNA_view3d_types.h"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct XrSessionSettings {
/** Shading settings, struct shared with 3D-View so settings are the same. */
struct View3DShading shading;
@@ -53,3 +57,7 @@ typedef enum eXRSessionBasePoseType {
XR_BASE_POSE_OBJECT = 1,
XR_BASE_POSE_CUSTOM = 2,
} eXRSessionBasePoseType;
+
+#ifdef __cplusplus
+}
+#endif
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