+
+//
+// TARGET SPECIFIC BUILD SETTINGS
+//
+#if defined(WIN32) || defined(WIN64)
+ #include <io.h>
+ #include <fcntl.h>
+ #include "dirent_lose.h"
+ // Release platform - windows
+ #define PLATFORM "Win32"
+ #define _OPEN_FLAGS _O_TRUNC|_O_CREAT|_O_BINARY|_O_RDWR
+ #define _OPEN_INC _O_RDONLY|_O_BINARY
+ #define _PERM_MODE _S_IREAD|_S_IWRITE
+ #define PATH_SEPS ";"
+ #define realpath(_fn, _abs) _fullpath((_abs), (_fn), _MAX_PATH)
+
+ #ifdef _MSC_VER
+ #if _MSC_VER > 1000
+ #pragma warning(disable:4996)
+ #endif
+
+ // Makes warnings double clickable on visual studio (ggn)
+ #define STRINGIZE_HELPER(x) #x
+ #define STRINGIZE(x) STRINGIZE_HELPER(x)
+ #define WARNING(desc) __pragma(message(__FILE__ "(" STRINGIZE(__LINE__) ") : Warning: " #desc))
+ #define inline __inline
+ // usage:
+ // WARNING(FIXME: Code removed because...)
+
+ #else
+ // If we're not compiling for Visual Studio let's assume that we're using
+ // some flavour of gcc instead. So let's use the gcc compliant macro
+ // instead. If some weirdo uses something else (I dunno, Intel compiler or
+ // something?) this is probably going to explode spectacularly. Let's wait
+ // for the fireworks!
+ #define DO_PRAGMA(x) _Pragma (#x)
+ #define WARNING(desc) DO_PRAGMA(message (#desc))
+
+ #endif
+
+ // Ever since Visual Studio... 2017? 2019? the following constants come
+ // defined in the platform SDK, which leads to endless warnings from the
+ // compiler. So let's just put the pacifier on and undef them, sheesh! (No,
+ // we won't rename the defines, we've been here since 1986, Visual Studio
+ // wasn't even a glimpse in the milkman's eyes, if you catch my drift)
+ #undef CONST
+ #undef ERROR
+ #undef TEXT
+