SkPreConfig.h revision 363a4c22af71b8afedc00050ee5cc97fe4bd6f76
1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 28a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com/* 3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2006 The Android Open Source Project 48a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com * 5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be 6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file. 78a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com */ 88a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 9ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com 108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#ifndef SkPreConfig_DEFINED 118a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#define SkPreConfig_DEFINED 128a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 13f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com#ifdef WEBKIT_VERSION_MIN_REQUIRED 14f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com #include "config.h" 15f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com#endif 16f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com 178a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com////////////////////////////////////////////////////////////////////// 188a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1958629291bc145edca8fb303e465c8537bed65314djsollen@google.com#if !defined(SK_BUILD_FOR_ANDROID) && !defined(SK_BUILD_FOR_ANDROID_NDK) && !defined(SK_BUILD_FOR_IOS) && !defined(SK_BUILD_FOR_PALM) && !defined(SK_BUILD_FOR_WINCE) && !defined(SK_BUILD_FOR_WIN32) && !defined(SK_BUILD_FOR_SYMBIAN) && !defined(SK_BUILD_FOR_UNIX) && !defined(SK_BUILD_FOR_MAC) && !defined(SK_BUILD_FOR_SDL) && !defined(SK_BUILD_FOR_BREW) 20f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com 21f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com #ifdef __APPLE__ 22f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com #include "TargetConditionals.h" 23f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com #endif 248a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 258a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #if defined(PALMOS_SDK_VERSION) 268a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_BUILD_FOR_PALM 278a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #elif defined(UNDER_CE) 288a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_BUILD_FOR_WINCE 298a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #elif defined(WIN32) 308a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_BUILD_FOR_WIN32 318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #elif defined(__SYMBIAN32__) 328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_BUILD_FOR_WIN32 3360abb078e5597c9c6ceaba1ef495c4916ff4df0ddjsollen@google.com #elif defined(ANDROID_NDK) 3460abb078e5597c9c6ceaba1ef495c4916ff4df0ddjsollen@google.com #define SK_BUILD_FOR_ANDROID_NDK 3560abb078e5597c9c6ceaba1ef495c4916ff4df0ddjsollen@google.com #elif defined(ANDROID) 3660abb078e5597c9c6ceaba1ef495c4916ff4df0ddjsollen@google.com #define SK_BUILD_FOR_ANDROID 37ea6805d2224eaccfcd95f4a019cfcc57ac89afcereed@google.com #elif defined(linux) || defined(__FreeBSD__) || defined(__OpenBSD__) || \ 383138d36f9843e62c18a0c57c553a830d74bae1a2reed@google.com defined(__sun) || defined(__NetBSD__) || defined(__DragonFly__) 398a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_BUILD_FOR_UNIX 40f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com #elif TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR 41f2b98d67dcb6fcb3120feede9c72016fc7b3ead8reed@android.com #define SK_BUILD_FOR_IOS 428a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #else 438a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_BUILD_FOR_MAC 448a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #endif 458a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 468a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 478a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 4858629291bc145edca8fb303e465c8537bed65314djsollen@google.com/* Even if the user only defined the NDK variant we still need to build 4958629291bc145edca8fb303e465c8537bed65314djsollen@google.com * the default Android code. Therefore, when attempting to include/exclude 5058629291bc145edca8fb303e465c8537bed65314djsollen@google.com * something from the NDK variant check first that we are building for 5158629291bc145edca8fb303e465c8537bed65314djsollen@google.com * Android then check the status of the NDK define. 5258629291bc145edca8fb303e465c8537bed65314djsollen@google.com */ 5358629291bc145edca8fb303e465c8537bed65314djsollen@google.com#if defined(SK_BUILD_FOR_ANDROID_NDK) && !defined(SK_BUILD_FOR_ANDROID) 5458629291bc145edca8fb303e465c8537bed65314djsollen@google.com #define SK_BUILD_FOR_ANDROID 5558629291bc145edca8fb303e465c8537bed65314djsollen@google.com#endif 5658629291bc145edca8fb303e465c8537bed65314djsollen@google.com 578a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com////////////////////////////////////////////////////////////////////// 588a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 598a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if !defined(SK_DEBUG) && !defined(SK_RELEASE) 608a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #ifdef NDEBUG 618a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_RELEASE 628a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #else 638a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_DEBUG 648a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #endif 658a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 668a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 6763debae4c1020fa1e0ccd92ef3cbfdc8735acf8ereed@android.com#ifdef SK_BUILD_FOR_WIN32 68333d6cb2448d0febcbeb7c8c7310c0ff2d1a6104tomhudson@google.com #if !defined(SK_RESTRICT) 69333d6cb2448d0febcbeb7c8c7310c0ff2d1a6104tomhudson@google.com #define SK_RESTRICT __restrict 70333d6cb2448d0febcbeb7c8c7310c0ff2d1a6104tomhudson@google.com #endif 71363a4c22af71b8afedc00050ee5cc97fe4bd6f76bungeman@google.com #if !defined(SK_WARN_UNUSED_RESULT) 72363a4c22af71b8afedc00050ee5cc97fe4bd6f76bungeman@google.com #define SK_WARN_UNUSED_RESULT 73363a4c22af71b8afedc00050ee5cc97fe4bd6f76bungeman@google.com #endif 7463debae4c1020fa1e0ccd92ef3cbfdc8735acf8ereed@android.com #include "sk_stdint.h" 7563debae4c1020fa1e0ccd92ef3cbfdc8735acf8ereed@android.com#endif 7663debae4c1020fa1e0ccd92ef3cbfdc8735acf8ereed@android.com 778a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com////////////////////////////////////////////////////////////////////// 788a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 795c80ea17d4e4a795bfaeb260fc27e952ba471f1dreed@android.com#if !defined(SK_RESTRICT) 805c80ea17d4e4a795bfaeb260fc27e952ba471f1dreed@android.com #define SK_RESTRICT __restrict__ 815c80ea17d4e4a795bfaeb260fc27e952ba471f1dreed@android.com#endif 828a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 83363a4c22af71b8afedc00050ee5cc97fe4bd6f76bungeman@google.com#if !defined(SK_WARN_UNUSED_RESULT) 84363a4c22af71b8afedc00050ee5cc97fe4bd6f76bungeman@google.com #define SK_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) 85363a4c22af71b8afedc00050ee5cc97fe4bd6f76bungeman@google.com#endif 86363a4c22af71b8afedc00050ee5cc97fe4bd6f76bungeman@google.com 878a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com////////////////////////////////////////////////////////////////////// 888a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 895c80ea17d4e4a795bfaeb260fc27e952ba471f1dreed@android.com#if !defined(SK_SCALAR_IS_FLOAT) && !defined(SK_SCALAR_IS_FIXED) 905c80ea17d4e4a795bfaeb260fc27e952ba471f1dreed@android.com #define SK_SCALAR_IS_FLOAT 915c80ea17d4e4a795bfaeb260fc27e952ba471f1dreed@android.com #define SK_CAN_USE_FLOAT 928a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 938a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 948a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com////////////////////////////////////////////////////////////////////// 958a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 968a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN) 978a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #if defined (__ppc__) || defined(__ppc64__) 988a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_CPU_BENDIAN 998a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #else 1008a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_CPU_LENDIAN 1018a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #endif 1028a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1038a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1048a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com////////////////////////////////////////////////////////////////////// 1058a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 106ec10d21eb9a17639688188b0defce6d757331eb4reed@android.com#if (defined(__arm__) && !defined(__thumb__)) || defined(SK_BUILD_FOR_WINCE) || (defined(SK_BUILD_FOR_SYMBIAN) && !defined(__MARM_THUMB__)) 1078a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com /* e.g. the ARM instructions have conditional execution, making tiny branches cheap */ 1088a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com #define SK_CPU_HAS_CONDITIONAL_INSTR 1098a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1108a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 1117ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org////////////////////////////////////////////////////////////////////// 1127ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org 1137ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org#if !defined(SKIA_IMPLEMENTATION) 1147ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org #define SKIA_IMPLEMENTATION 0 1157ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org#endif 116c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com 117c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com#if defined(SKIA_DLL) 118c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com #if defined(WIN32) 119c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com #if SKIA_IMPLEMENTATION 120c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com #define SK_API __declspec(dllexport) 121c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com #else 122c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com #define SK_API __declspec(dllimport) 123c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com #endif 1247ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org #else 125c0091114461339c7e6a78a0f1669cecad1e22146reed@google.com #define SK_API __attribute__((visibility("default"))) 1267ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org #endif 1277ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org#else 1287ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org #define SK_API 1297ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org#endif 1307ffb1b21abcc7bbed5a0fc711f6dd7b9dbb4f577ctguil@chromium.org 1318a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com#endif 1328a1c16ff38322f0210116fa7293eb8817c7e477ereed@android.com 133