aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCDefines.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/basetypes/MCDefines.h')
-rw-r--r--src/core/basetypes/MCDefines.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/core/basetypes/MCDefines.h b/src/core/basetypes/MCDefines.h
new file mode 100644
index 00000000..5068618b
--- /dev/null
+++ b/src/core/basetypes/MCDefines.h
@@ -0,0 +1,21 @@
+#ifndef MCDEFINES_H_
+
+#define MCDEFINES_H_
+
+#ifdef _MSC_VER
+
+#pragma section(".CRT$XCU",read)
+#define INITIALIZE(name) \
+ static void __cdecl initialize_##name(void); \
+ __declspec(allocate(".CRT$XCU")) void (__cdecl*initialize_##name##_)(void) = initialize_##name; \
+ static void __cdecl initialize_##name(void)
+
+#else
+
+#define INITIALIZE(name) \
+ static void initialize(void) __attribute__((constructor)); \
+ static void initialize(void)
+
+#endif
+
+#endif