summaryrefslogtreecommitdiff
path: root/src/mesh/assimp-master/include/assimp/Compiler/pushpack1.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesh/assimp-master/include/assimp/Compiler/pushpack1.h')
-rw-r--r--src/mesh/assimp-master/include/assimp/Compiler/pushpack1.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/mesh/assimp-master/include/assimp/Compiler/pushpack1.h b/src/mesh/assimp-master/include/assimp/Compiler/pushpack1.h
new file mode 100644
index 0000000..b32ed17
--- /dev/null
+++ b/src/mesh/assimp-master/include/assimp/Compiler/pushpack1.h
@@ -0,0 +1,43 @@
+
+
+// ===============================================================================
+// May be included multiple times - sets structure packing to 1
+// for all supported compilers. #include <poppack1.h> reverts the changes.
+//
+// Currently this works on the following compilers:
+// MSVC 7,8,9
+// GCC
+// BORLAND (complains about 'pack state changed but not reverted', but works)
+// Clang
+//
+//
+// USAGE:
+//
+// struct StructToBePacked {
+// } PACK_STRUCT;
+//
+// ===============================================================================
+
+#ifdef AI_PUSHPACK_IS_DEFINED
+# error poppack1.h must be included after pushpack1.h
+#endif
+
+#if (defined(_MSC_VER) && !defined(__clang__)) || defined(__BORLANDC__) || defined (__BCPLUSPLUS__)
+# pragma pack(push,1)
+# define PACK_STRUCT
+#elif defined( __GNUC__ ) || defined(__clang__)
+# if !defined(HOST_MINGW)
+# define PACK_STRUCT __attribute__((__packed__))
+# else
+# define PACK_STRUCT __attribute__((gcc_struct, __packed__))
+# endif
+#else
+# error Compiler not supported
+#endif
+
+#if defined(_MSC_VER)
+// C4103: Packing was changed after the inclusion of the header, probably missing #pragma pop
+# pragma warning (disable : 4103)
+#endif
+
+#define AI_PUSHPACK_IS_DEFINED