mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-02-03 03:30:06 +00:00
185 lines
5.2 KiB
C
185 lines
5.2 KiB
C
/*
|
|
==============================================================================
|
|
|
|
This file is part of the JUCE library - "Jules' Utility Class Extensions"
|
|
Copyright 2004-10 by Raw Material Software Ltd.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
JUCE can be redistributed and/or modified under the terms of the GNU General
|
|
Public License (Version 2), as published by the Free Software Foundation.
|
|
A copy of the license is included in the JUCE distribution, or can be found
|
|
online at www.gnu.org/licenses.
|
|
|
|
JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
|
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
------------------------------------------------------------------------------
|
|
|
|
To release a closed-source product which uses JUCE, commercial licenses are
|
|
available: visit www.rawmaterialsoftware.com/juce for more information.
|
|
|
|
==============================================================================
|
|
*/
|
|
|
|
#ifndef __JUCE_TARGETPLATFORM_JUCEHEADER__
|
|
#define __JUCE_TARGETPLATFORM_JUCEHEADER__
|
|
|
|
//==============================================================================
|
|
/* This file figures out which platform is being built, and defines some macros
|
|
that the rest of the code can use for OS-specific compilation.
|
|
|
|
Macros that will be set here are:
|
|
|
|
- One of JUCE_WINDOWS, JUCE_MAC JUCE_LINUX, JUCE_IOS, JUCE_ANDROID, etc.
|
|
- Either JUCE_32BIT or JUCE_64BIT, depending on the architecture.
|
|
- Either JUCE_LITTLE_ENDIAN or JUCE_BIG_ENDIAN.
|
|
- Either JUCE_INTEL or JUCE_PPC
|
|
- Either JUCE_GCC or JUCE_MSVC
|
|
*/
|
|
|
|
//==============================================================================
|
|
#if (defined (_WIN32) || defined (_WIN64))
|
|
#define JUCE_WIN32 1
|
|
#define JUCE_WINDOWS 1
|
|
#elif defined (JUCE_ANDROID)
|
|
#undef JUCE_ANDROID
|
|
#define JUCE_ANDROID 1
|
|
#elif defined (LINUX) || defined (__linux__)
|
|
#define JUCE_LINUX 1
|
|
#elif defined (__APPLE_CPP__) || defined(__APPLE_CC__)
|
|
#include <CoreFoundation/CoreFoundation.h> // (needed to find out what platform we're using)
|
|
|
|
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
|
|
#define JUCE_IPHONE 1
|
|
#define JUCE_IOS 1
|
|
#else
|
|
#define JUCE_MAC 1
|
|
#endif
|
|
#else
|
|
#error "Unknown platform!"
|
|
#endif
|
|
|
|
//==============================================================================
|
|
#if JUCE_WINDOWS
|
|
#ifdef _MSC_VER
|
|
#ifdef _WIN64
|
|
#define JUCE_64BIT 1
|
|
#else
|
|
#define JUCE_32BIT 1
|
|
#endif
|
|
#endif
|
|
|
|
#ifdef _DEBUG
|
|
#define JUCE_DEBUG 1
|
|
#endif
|
|
|
|
#ifdef __MINGW32__
|
|
#define JUCE_MINGW 1
|
|
#endif
|
|
|
|
/** If defined, this indicates that the processor is little-endian. */
|
|
#define JUCE_LITTLE_ENDIAN 1
|
|
|
|
#define JUCE_INTEL 1
|
|
#endif
|
|
|
|
//==============================================================================
|
|
#if JUCE_MAC || JUCE_IOS
|
|
|
|
#if defined (DEBUG) || defined (_DEBUG) || ! (defined (NDEBUG) || defined (_NDEBUG))
|
|
#define JUCE_DEBUG 1
|
|
#endif
|
|
|
|
#if ! (defined (DEBUG) || defined (_DEBUG) || defined (NDEBUG) || defined (_NDEBUG))
|
|
#warning "Neither NDEBUG or DEBUG has been defined - you should set one of these to make it clear whether this is a release build,"
|
|
#endif
|
|
|
|
#ifdef __LITTLE_ENDIAN__
|
|
#define JUCE_LITTLE_ENDIAN 1
|
|
#else
|
|
#define JUCE_BIG_ENDIAN 1
|
|
#endif
|
|
#endif
|
|
|
|
#if JUCE_MAC
|
|
|
|
#if defined (__ppc__) || defined (__ppc64__)
|
|
#define JUCE_PPC 1
|
|
#else
|
|
#define JUCE_INTEL 1
|
|
#endif
|
|
|
|
#ifdef __LP64__
|
|
#define JUCE_64BIT 1
|
|
#else
|
|
#define JUCE_32BIT 1
|
|
#endif
|
|
|
|
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_4
|
|
#error "Building for OSX 10.3 is no longer supported!"
|
|
#endif
|
|
|
|
#ifndef MAC_OS_X_VERSION_10_5
|
|
#error "To build with 10.4 compatibility, use a 10.5 or 10.6 SDK and set the deployment target to 10.4"
|
|
#endif
|
|
|
|
#endif
|
|
|
|
//==============================================================================
|
|
#if JUCE_LINUX || JUCE_ANDROID
|
|
|
|
#ifdef _DEBUG
|
|
#define JUCE_DEBUG 1
|
|
#endif
|
|
|
|
// Allow override for big-endian Linux platforms
|
|
#if defined (__LITTLE_ENDIAN__) || ! defined (JUCE_BIG_ENDIAN)
|
|
#define JUCE_LITTLE_ENDIAN 1
|
|
#undef JUCE_BIG_ENDIAN
|
|
#else
|
|
#undef JUCE_LITTLE_ENDIAN
|
|
#define JUCE_BIG_ENDIAN 1
|
|
#endif
|
|
|
|
#if defined (__LP64__) || defined (_LP64)
|
|
#define JUCE_64BIT 1
|
|
#else
|
|
#define JUCE_32BIT 1
|
|
#endif
|
|
|
|
#if __MMX__ || __SSE__ || __amd64__
|
|
#define JUCE_INTEL 1
|
|
#endif
|
|
#endif
|
|
|
|
//==============================================================================
|
|
// Compiler type macros.
|
|
|
|
#ifdef __GNUC__
|
|
#define JUCE_GCC 1
|
|
#elif defined (_MSC_VER)
|
|
#define JUCE_MSVC 1
|
|
|
|
#if _MSC_VER < 1500
|
|
#define JUCE_VC8_OR_EARLIER 1
|
|
|
|
#if _MSC_VER < 1400
|
|
#define JUCE_VC7_OR_EARLIER 1
|
|
|
|
#if _MSC_VER < 1300
|
|
#define JUCE_VC6 1
|
|
#endif
|
|
#endif
|
|
#endif
|
|
|
|
#if ! JUCE_VC7_OR_EARLIER && ! defined (__INTEL_COMPILER)
|
|
#define JUCE_USE_INTRINSICS 1
|
|
#endif
|
|
#else
|
|
#error unknown compiler
|
|
#endif
|
|
|
|
|
|
#endif // __JUCE_TARGETPLATFORM_JUCEHEADER__
|