29#ifndef NOMLIB_SUPPORTED_PLATFORMS_HPP
30#define NOMLIB_SUPPORTED_PLATFORMS_HPP
38#if defined(_WIN32) || defined(__WIN32__)
39 #define NOM_PLATFORM_WINDOWS
42#elif defined(__linux__) || defined(linux) || defined(__linux)
43 #define NOM_PLATFORM_LINUX
44 #define NOM_PLATFORM_POSIX
45#elif defined(__APPLE__) || defined(__MAC__) || defined(MACOSX) || defined(macintosh) || defined(Macintosh)
46 #define NOM_PLATFORM_OSX
47 #define NOM_PLATFORM_POSIX
48#elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || \
49 defined(__bsdi__) || defined(__DragonFly__)
50 #define NOM_PLATFORM_BSD
51 #define NOM_PLATFORM_POSIX
59#if defined( __i386__ ) || defined( _M_IX86 )
60 #define NOM_PLATFORM_ARCH_X86
61#elif defined( __x86_64__ ) || defined( _M_AMD64 )
62 #define NOM_PLATFORM_ARCH_X86_64
69 #define NOM_COMPILER_MSVCPP
70 #define NOM_COMPILER_FEATURE_NULLPTR
72 #define NOM_COMPILER_CLANG
73 #define NOM_COMPILER_FEATURE_NULLPTR
77#if defined ( NOM_COMPILER_MSVCPP )
79 #define NOM_FUNC __FUNCTION__
81 #define NOM_FUNC __PRETTY_FUNCTION__
108#if defined(NOM_PLATFORM_WINDOWS) && defined(NOM_COMPILER_MSVCPP)
110 #define NOM_RDTSC() __rdtsc();
112 #define NOM_RDTSC() nom::rdtsc()
119 PLATFORM_UNKNOWN = 0,
133 Platform
env = PLATFORM_UNKNOWN;