Loading...
Searching...
No Matches
 
 
 
 
    6#ifndef ACTIONENGINE_UTIL_PLATFORM_H_ 
    7#define ACTIONENGINE_UTIL_PLATFORM_H_ 
   16#define PLATFORM_LINUX 1 
   17#if defined(__ANDROID__) 
   18#define PLATFORM_ANDROID 1 
   21#define PLATFORM_WINDOWS 1 
   22#if defined(WINAPI_FAMILY) 
   23#include <winapifamily.h> 
   24#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP) 
   25#define PLATFORM_WINDOWS_PHONE 1 
   28#elif defined(__APPLE__) 
   32#elif defined(__MACH__) 
   35#elif defined(__EMSCRIPTEN__) 
   36#define PLATFORM_EMSCRIPTEN 1 
   37#elif defined(__FreeBSD__) 
   38#define PLATFORM_FREEBSD 1 
   40#error "Unable to determine operating system" 
   46#if defined(__clang__) || defined(__llvm__) 
   47#define PLATFORM_CLANG 1 
   48#define PLATFORM_GCC_COMPATIBLE 1 
   49#if defined(__i386__) || defined(__x86_64__) 
   51#define PLATFORM_CLANG_X86 1 
   52#define PLATFORM_GCC_COMPATIBLE_X86 1 
   53#elif defined(__arm__) || defined(__arm64__) || defined(__aarch64__) 
   55#define PLATFORM_CLANG_ARM 1 
   56#define PLATFORM_GCC_COMPATIBLE_ARM 1 
   57#elif defined(__mips__) 
   58#define PLATFORM_MIPS 1 
   59#define PLATFORM_CLANG_MIPS 1 
   60#define PLATFORM_GCC_COMPATIBLE_MIPS 1 
   61#elif defined(__asmjs__) 
   62#define PLATFORM_ASMJS 1 
   63#define PLATFORM_CLANG_ASMJS 1 
   64#define PLATFORM_GCC_COMPATIBLE_ASMJS 1 
   66#elif defined(__GNUC__) 
   68#define PLATFORM_GCC_COMPATIBLE 1 
   69#if defined(__i386__) || defined(__x86_64__) 
   71#define PLATFORM_GCC_X86 1 
   72#define PLATFORM_GCC_COMPATIBLE_X86 1 
   73#elif defined(__arm__) || defined(__arm64__) || defined(__aarch64__) 
   75#define PLATFORM_GCC_ARM 1 
   76#define PLATFORM_GCC_COMPATIBLE_ARM 1 
   77#elif defined(__mips__) 
   78#define PLATFORM_MIPS 1 
   79#define PLATFORM_GCC_MIPS 1 
   80#define PLATFORM_GCC_COMPATIBLE_MIPS 1 
   82#elif defined(_MSC_VER) 
   83#define PLATFORM_MSVC 1 
   84#if defined(_M_IX86) || defined(_M_X64) 
   86#define PLATFORM_MSVC_X86 1 
   87#elif defined(_M_ARM) || defined(_M_ARMT) 
   89#define PLATFORM_MSVC_ARM 1 
   92#error "Unable to determine compiler" 
   96#if defined(PLATFORM_GCC_COMPATIBLE) 
  101#define PLATFORM_SSE 1 
  104#define PLATFORM_SSE2 1 
  107#define PLATFORM_SSE3 1 
  109#if defined(__SSSE3__) 
  110#define PLATFORM_SSSE3 1 
  112#if defined(__SSE4_1__) 
  113#define PLATFORM_SSE41 1 
  115#if defined(__SSE4_2__) 
  116#define PLATFORM_SSE42 1 
  118#if defined(__PCLMUL__) 
  119#define PLATFORM_PCLMUL 1 
  122#define PLATFORM_AVX 1 
  125#define PLATFORM_AVX2 1 
  127#if defined(__ARM_NEON__) || defined(__ARM_NEON) 
  128#define PLATFORM_NEON 1 
  132#elif defined(PLATFORM_WINDOWS_PHONE) 
  133#if defined(PLATFORM_MSVC_ARM) 
  135#if (_MSC_VER >= 1700) 
  136#define PLATFORM_NEON 1 
  139#elif defined(PLATFORM_MSVC_X86) 
  141#if (_MSC_VER >= 1310) 
  142#define PLATFORM_MMX 1 
  143#define PLATFORM_SSE 1 
  144#define PLATFORM_SSE2 1 
  147#if (_MSC_VER >= 1400) 
  148#define PLATFORM_SSE3 1 
  151#if (_MSC_VER >= 1500) 
  152#define PLATFORM_SSSE3 1 
  153#define PLATFORM_SSE41 1 
  154#define PLATFORM_SSE42 1 
  155#define PLATFORM_PCLMUL 1 
  158#if (_MSC_VER >= 1700) 
  159#define PLATFORM_AVX 1 
  160#define PLATFORM_AVX2 1