123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- /****************************************************************************
- Copyright (c) 2010-2012 cocos2d-x.org
- Copyright (c) 2013-2017 Chukong Technologies
- Copyright (c) 2017-2018 Xiamen Yaji Software Co., Ltd.
- http://www.cocos2d-x.org
- 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.
- ****************************************************************************/
- #ifndef __BASE_CC_PLATFORM_CONFIG_H__
- #define __BASE_CC_PLATFORM_CONFIG_H__
- /// @cond DO_NOT_SHOW
- /**
- Config of cocos2d-x project, per target platform.
- THIS FILE MUST NOT INCLUDE ANY OTHER FILE
- */
- //////////////////////////////////////////////////////////////////////////
- // pre configure
- //////////////////////////////////////////////////////////////////////////
- // define supported target platform macro which CC uses.
- #define CC_PLATFORM_UNKNOWN 0
- #define CC_PLATFORM_IOS 1
- #define CC_PLATFORM_ANDROID 2
- #define CC_PLATFORM_WIN32 3
- #define CC_PLATFORM_MARMALADE 4
- #define CC_PLATFORM_LINUX 5
- #define CC_PLATFORM_BADA 6
- #define CC_PLATFORM_BLACKBERRY 7
- #define CC_PLATFORM_MAC 8
- #define CC_PLATFORM_NACL 9
- #define CC_PLATFORM_EMSCRIPTEN 10
- #define CC_PLATFORM_TIZEN 11
- #define CC_PLATFORM_QT5 12
- #define CC_PLATFORM_WINRT 13
- // Determine target platform by compile environment macro.
- #define CC_TARGET_PLATFORM CC_PLATFORM_UNKNOWN
- // Apple: Mac and iOS
- #if defined(__APPLE__) && !defined(ANDROID) // exclude android for binding generator.
- #include <TargetConditionals.h>
- #if TARGET_OS_IPHONE // TARGET_OS_IPHONE includes TARGET_OS_IOS TARGET_OS_TV and TARGET_OS_WATCH. see TargetConditionals.h
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_IOS
- #elif TARGET_OS_MAC
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_MAC
- #endif
- #endif
- // android
- #if defined(ANDROID)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_ANDROID
- #endif
- // win32
- #if defined(_WIN32) && defined(_WINDOWS)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_WIN32
- #endif
- // linux
- #if defined(LINUX) && !defined(__APPLE__)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_LINUX
- #endif
- // marmalade
- #if defined(MARMALADE)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_MARMALADE
- #endif
- // bada
- #if defined(SHP)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_BADA
- #endif
- // qnx
- #if defined(__QNX__)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_BLACKBERRY
- #endif
- // native client
- #if defined(__native_client__)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_NACL
- #endif
- // Emscripten
- #if defined(EMSCRIPTEN)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_EMSCRIPTEN
- #endif
- // tizen
- #if defined(TIZEN)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_TIZEN
- #endif
- // qt5
- #if defined(CC_TARGET_QT5)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_QT5
- #endif
- // WinRT (Windows 8.1 Store/Phone App)
- #if defined(WINRT)
- #undef CC_TARGET_PLATFORM
- #define CC_TARGET_PLATFORM CC_PLATFORM_WINRT
- #endif
- //////////////////////////////////////////////////////////////////////////
- // post configure
- //////////////////////////////////////////////////////////////////////////
- // check user set platform
- #if ! CC_TARGET_PLATFORM
- #error "Cannot recognize the target platform; are you targeting an unsupported platform?"
- #endif
- #if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32)
- #ifndef __MINGW32__
- #pragma warning (disable:4127)
- #endif
- #endif // CC_PLATFORM_WIN32
- #if ((CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) || (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) || (CC_TARGET_PLATFORM == CC_PLATFORM_TIZEN))
- #define CC_PLATFORM_MOBILE
- #else
- #define CC_PLATFORM_PC
- #endif
- /// @endcond
- #endif // __BASE_CC_PLATFORM_CONFIG_H__
|