diff options
author | sanine <sanine.not@pm.me> | 2022-08-27 23:52:56 -0500 |
---|---|---|
committer | sanine <sanine.not@pm.me> | 2022-08-27 23:52:56 -0500 |
commit | a4dd0ad63c00f4dee3b86dfd3075d1d61b2b3180 (patch) | |
tree | 13bd5bfa15e6fea2a12f176bae79adf9c6fd0933 /3rdparty/plibsys/src/pmacrosos.h | |
parent | bde3e4f1bb7b8f8abca0884a7d994ee1c17a66b1 (diff) |
add plibsys
Diffstat (limited to '3rdparty/plibsys/src/pmacrosos.h')
-rw-r--r-- | 3rdparty/plibsys/src/pmacrosos.h | 500 |
1 files changed, 500 insertions, 0 deletions
diff --git a/3rdparty/plibsys/src/pmacrosos.h b/3rdparty/plibsys/src/pmacrosos.h new file mode 100644 index 0000000..c14a27a --- /dev/null +++ b/3rdparty/plibsys/src/pmacrosos.h @@ -0,0 +1,500 @@ +/* + * The MIT License + * + * Copyright (C) 2017-2018 Alexander Saprykin <saprykin.spb@gmail.com> + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * 'Software'), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +/** + * @file pmacrosos.h + * @brief OS detection macros + * @author Alexander Saprykin + * + * All the macros are completely independent of any other platform-specific + * headers, thus gurantee to work with any compiler under any operating system + * in the same way as they are used within the library. + * + * This family of macros provides OS detection and defines one or several of + * P_OS_x macros. + */ + +#if !defined (PLIBSYS_H_INSIDE) && !defined (PLIBSYS_COMPILATION) +# error "Header files shouldn't be included directly, consider using <plibsys.h> instead." +#endif + +#ifndef PLIBSYS_HEADER_PMACROSOS_H +#define PLIBSYS_HEADER_PMACROSOS_H + +/* + * List of supported operating systems (P_OS_x): + * + * DARWIN - Any Darwin based system + * DARWIN32 - Any 32-bit Darwin based system + * DARWIN64 - Any 64-bit Darwin based system + * BSD4 - Any BSD 4.x based system + * FREEBSD - FreeBSD + * DRAGONFLY - DragonFlyBSD + * NETBSD - NetBSD + * OPENBSD - OpenBSD + * AIX - IBM AIX + * HPUX - HP-UX + * TRU64 - Tru64 + * SOLARIS - Sun (Oracle) Solaris + * QNX - QNX 4.x + * QNX6 - QNX Neutrino 6.x + * BB10 - BlackBerry 10 + * SCO - SCO OpenServer 5/6 + * UNIXWARE - UnixWare 7 + * IRIX - SGI IRIX + * HAIKU - Haiku + * SYLLABLE - Syllable + * BEOS - BeOS + * OS2 - OS/2 + * VMS - OpenVMS + * AMIGA - AmigaOS + * UNIX - Any UNIX BSD/SYSV based system + * LINUX - Linux + * MAC9 - Mac OS 9 (Classic) + * MAC - Any macOS + * MAC32 - 32-bit macOS + * MAC64 - 64-bit macOS + * CYGWIN - Cygwin + * MSYS - MSYS + * WIN - 32-bit Windows + * WIN64 - 64-bit Windows + * ANDROID - Android + */ + +/** + * @def P_OS_DARWIN + * @brief Darwin based operating system (i.e. macOS). + * @since 0.0.1 + */ + +/** + * @def P_OS_DARWIN32 + * @brief Darwin based 32-bit operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_DARWIN64 + * @brief Darwin based 64-bit operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_BSD4 + * @brief BSD 4.x based operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_FREEBSD + * @brief FreeBSD operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_DRAGONFLY + * @brief DragonFlyBSD operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_NETBSD + * @brief NetBSD operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_OPENBSD + * @brief OpenBSD operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_AIX + * @brief IBM AIX operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_HPUX + * @brief HP-UX operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_TRU64 + * @brief Tru64 operating system. + * @since 0.0.2 + */ + +/** + * @def P_OS_SOLARIS + * @brief Sun (Oracle) Solaris operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_QNX + * @brief QNX 4.x operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_QNX6 + * @brief QNX Neutrino 6.x operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_BB10 + * @brief BlackBerry 10 operating system. + * @since 0.0.4 + */ + +/** + * @def P_OS_SCO + * @brief SCO OpenServer operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_UNIXWARE + * @brief UnixWare 7 operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_IRIX + * @brief SGI's IRIX operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_HAIKU + * @brief Haiku operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_SYLLABLE + * @brief Syllable operating system. + * @since 0.0.2 + */ + +/** + * @def P_OS_BEOS + * @brief BeOS operating system. + * @since 0.0.3 + */ + +/** + * @def P_OS_OS2 + * @brief OS/2 operating system. + * @since 0.0.3 + */ + +/** + * @def P_OS_VMS + * @brief OpenVMS operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_AMIGA + * @brief AmigaOS operating system. + * @since 0.0.4 + */ + +/** + * @def P_OS_UNIX + * @brief UNIX based operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_LINUX + * @brief Linux based operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_MAC9 + * @brief Apple's Mac OS 9 operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_MAC + * @brief Apple's macOS operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_MAC32 + * @brief Apple's macOS 32-bit operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_MAC64 + * @brief Apple's macOS 64-bit operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_CYGWIN + * @brief Microsoft Windows POSIX runtime environment. + * @since 0.0.1 + */ + +/** + * @def P_OS_MSYS + * @brief Microsoft Windows POSIX development environment. + * @since 0.0.1 + */ + +/** + * @def P_OS_WIN + * @brief Microsoft Windows 32-bit operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_WIN64 + * @brief Microsoft Windows 64-bit operating system. + * @since 0.0.1 + */ + +/** + * @def P_OS_ANDROID + * @brief Google Android + * @since 0.0.4 + */ + +#if defined(__APPLE__) && (defined(__GNUC__) || defined(__xlC__) || defined(__xlc__)) +# define P_OS_DARWIN +# define P_OS_BSD4 +# ifdef __LP64__ +# define P_OS_DARWIN64 +# else +# define P_OS_DARWIN32 +# endif +# elif defined(Macintosh) || defined(macintosh) +# define P_OS_MAC9 +#elif defined(__MSYS__) +# define P_OS_MSYS +#elif defined(__CYGWIN__) +# define P_OS_CYGWIN +#elif defined(_WIN64) || defined(_M_X64) || defined(_M_AMD64) +# define P_OS_WIN64 +#elif defined(__WIN32__) || defined(_WIN32) || defined(WIN32) +# define P_OS_WIN +#elif defined(__ANDROID__) +# define P_OS_ANDROID +# define P_OS_LINUX +#elif defined(__linux) || defined(__linux__) +# define P_OS_LINUX +#elif defined(__FreeBSD__) +# define P_OS_FREEBSD +# define P_OS_BSD4 +#elif defined(__DragonFly__) +# define P_OS_DRAGONFLY +# define P_OS_BSD4 +#elif defined(__NetBSD__) +# define P_OS_NETBSD +# define P_OS_BSD4 +#elif defined(__OpenBSD__) +# define P_OS_OPENBSD +# define P_OS_BSD4 +#elif defined(_AIX) +# define P_OS_AIX +#elif defined(hpux) || defined(__hpux) +# define P_OS_HPUX +#elif defined(__osf__) || defined(__osf) +# define P_OS_TRU64 +#elif defined(__sun) || defined(sun) +# define P_OS_SOLARIS +#elif defined(__QNXNTO__) +# ifdef __BLACKBERRY10__ +# define P_OS_BB10 +# else +# define P_OS_QNX6 +# endif +#elif defined(__QNX__) +# define P_OS_QNX +#elif defined(_SCO_DS) +# define P_OS_SCO +#elif defined(__USLC__) || defined(__UNIXWARE__) +# define P_OS_UNIXWARE +#elif defined(__svr4__) && defined(i386) +# define P_OS_UNIXWARE +#elif defined(__sgi) || defined(sgi) +# define P_OS_IRIX +#elif defined(__HAIKU__) +# define P_OS_HAIKU +#elif defined(__SYLLABLE__) +# define P_OS_SYLLABLE +#elif defined(__BEOS__) +# define P_OS_BEOS +#elif defined(__OS2__) +# define P_OS_OS2 +#elif defined(VMS) || defined(__VMS) +# define P_OS_VMS +#elif defined(AMIGA) || defined(__amigaos__) +# define P_OS_AMIGA +#endif + +#ifdef P_OS_WIN64 +# define P_OS_WIN +#endif + +#if defined(P_OS_DARWIN) +# define P_OS_MAC +# if defined(P_OS_DARWIN64) +# define P_OS_MAC64 +# elif defined(P_OS_DARWIN32) +# define P_OS_MAC32 +# endif +#endif + +#if defined(P_OS_WIN) || defined(P_OS_MAC9) || defined(P_OS_HAIKU) || \ + defined(P_OS_BEOS) || defined(P_OS_OS2) || defined(P_OS_VMS) || \ + defined(P_OS_AMIGA) +# undef P_OS_UNIX +#elif !defined(P_OS_UNIX) +# define P_OS_UNIX +#endif + +/* We need this to generate full Doxygen documentation */ + +#ifdef DOXYGEN +# ifndef P_OS_DARWIN +# define P_OS_DARWIN +# endif +# ifndef P_OS_DARWIN32 +# define P_OS_DARWIN32 +# endif +# ifndef P_OS_DARWIN64 +# define P_OS_DARWIN64 +# endif +# ifndef P_OS_BSD4 +# define P_OS_BSD4 +# endif +# ifndef P_OS_FREEBSD +# define P_OS_FREEBSD +# endif +# ifndef P_OS_DRAGONFLY +# define P_OS_DRAGONFLY +# endif +# ifndef P_OS_NETBSD +# define P_OS_NETBSD +# endif +# ifndef P_OS_OPENBSD +# define P_OS_OPENBSD +# endif +# ifndef P_OS_AIX +# define P_OS_AIX +# endif +# ifndef P_OS_HPUX +# define P_OS_HPUX +# endif +# ifndef P_OS_TRU64 +# define P_OS_TRU64 +# endif +# ifndef P_OS_SOLARIS +# define P_OS_SOLARIS +# endif +# ifndef P_OS_QNX +# define P_OS_QNX +# endif +# ifndef P_OS_QNX6 +# define P_OS_QNX6 +# endif +# ifndef P_OS_BB10 +# define P_OS_BB10 +# endif +# ifndef P_OS_SCO +# define P_OS_SCO +# endif +# ifndef P_OS_UNIXWARE +# define P_OS_UNIXWARE +# endif +# ifndef P_OS_IRIX +# define P_OS_IRIX +# endif +# ifndef P_OS_HAIKU +# define P_OS_HAIKU +# endif +# ifndef P_OS_SYLLABLE +# define P_OS_SYLLABLE +# endif +# ifndef P_OS_BEOS +# define P_OS_BEOS +# endif +# ifndef P_OS_OS2 +# define P_OS_OS2 +# endif +# ifndef P_OS_VMS +# define P_OS_VMS +# endif +# ifndef P_OS_AMIGA +# define P_OS_AMIGA +# endif +# ifndef P_OS_UNIX +# define P_OS_UNIX +# endif +# ifndef P_OS_LINUX +# define P_OS_LINUX +# endif +# ifndef P_OS_MAC9 +# define P_OS_MAC9 +# endif +# ifndef P_OS_MAC +# define P_OS_MAC +# endif +# ifndef P_OS_MAC32 +# define P_OS_MAC32 +# endif +# ifndef P_OS_MAC64 +# define P_OS_MAC64 +# endif +# ifndef P_OS_CYGWIN +# define P_OS_CYGWIN +# endif +# ifndef P_OS_MSYS +# define P_OS_MSYS +# endif +# ifndef P_OS_WIN +# define P_OS_WIN +# endif +# ifndef P_OS_WIN64 +# define P_OS_WIN64 +# endif +# ifndef P_OS_ANDROID +# define P_OS_ANDROID +# endif +#endif + +#endif /* PLIBSYS_HEADER_PMACROSOS_H */ |