10a39d0a697ff3603e8c100300fda363658e10b23James Zern// Copyright 2015, Google Inc.
20a39d0a697ff3603e8c100300fda363658e10b23James Zern// All rights reserved.
30a39d0a697ff3603e8c100300fda363658e10b23James Zern//
40a39d0a697ff3603e8c100300fda363658e10b23James Zern// Redistribution and use in source and binary forms, with or without
50a39d0a697ff3603e8c100300fda363658e10b23James Zern// modification, are permitted provided that the following conditions are
60a39d0a697ff3603e8c100300fda363658e10b23James Zern// met:
70a39d0a697ff3603e8c100300fda363658e10b23James Zern//
80a39d0a697ff3603e8c100300fda363658e10b23James Zern//     * Redistributions of source code must retain the above copyright
90a39d0a697ff3603e8c100300fda363658e10b23James Zern// notice, this list of conditions and the following disclaimer.
100a39d0a697ff3603e8c100300fda363658e10b23James Zern//     * Redistributions in binary form must reproduce the above
110a39d0a697ff3603e8c100300fda363658e10b23James Zern// copyright notice, this list of conditions and the following disclaimer
120a39d0a697ff3603e8c100300fda363658e10b23James Zern// in the documentation and/or other materials provided with the
130a39d0a697ff3603e8c100300fda363658e10b23James Zern// distribution.
140a39d0a697ff3603e8c100300fda363658e10b23James Zern//     * Neither the name of Google Inc. nor the names of its
150a39d0a697ff3603e8c100300fda363658e10b23James Zern// contributors may be used to endorse or promote products derived from
160a39d0a697ff3603e8c100300fda363658e10b23James Zern// this software without specific prior written permission.
170a39d0a697ff3603e8c100300fda363658e10b23James Zern//
180a39d0a697ff3603e8c100300fda363658e10b23James Zern// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
190a39d0a697ff3603e8c100300fda363658e10b23James Zern// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
200a39d0a697ff3603e8c100300fda363658e10b23James Zern// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
210a39d0a697ff3603e8c100300fda363658e10b23James Zern// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
220a39d0a697ff3603e8c100300fda363658e10b23James Zern// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
230a39d0a697ff3603e8c100300fda363658e10b23James Zern// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
240a39d0a697ff3603e8c100300fda363658e10b23James Zern// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
250a39d0a697ff3603e8c100300fda363658e10b23James Zern// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
260a39d0a697ff3603e8c100300fda363658e10b23James Zern// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
270a39d0a697ff3603e8c100300fda363658e10b23James Zern// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
280a39d0a697ff3603e8c100300fda363658e10b23James Zern// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
290a39d0a697ff3603e8c100300fda363658e10b23James Zern//
300a39d0a697ff3603e8c100300fda363658e10b23James Zern// The Google C++ Testing Framework (Google Test)
310a39d0a697ff3603e8c100300fda363658e10b23James Zern//
320a39d0a697ff3603e8c100300fda363658e10b23James Zern// This header file defines the GTEST_OS_* macro.
330a39d0a697ff3603e8c100300fda363658e10b23James Zern// It is separate from gtest-port.h so that custom/gtest-port.h can include it.
340a39d0a697ff3603e8c100300fda363658e10b23James Zern
350a39d0a697ff3603e8c100300fda363658e10b23James Zern#ifndef GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
360a39d0a697ff3603e8c100300fda363658e10b23James Zern#define GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
370a39d0a697ff3603e8c100300fda363658e10b23James Zern
380a39d0a697ff3603e8c100300fda363658e10b23James Zern// Determines the platform on which Google Test is compiled.
390a39d0a697ff3603e8c100300fda363658e10b23James Zern#ifdef __CYGWIN__
400a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_CYGWIN 1
410a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __SYMBIAN32__
420a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_SYMBIAN 1
430a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined _WIN32
440a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_WINDOWS 1
450a39d0a697ff3603e8c100300fda363658e10b23James Zern# ifdef _WIN32_WCE
460a39d0a697ff3603e8c100300fda363658e10b23James Zern#  define GTEST_OS_WINDOWS_MOBILE 1
470a39d0a697ff3603e8c100300fda363658e10b23James Zern# elif defined(__MINGW__) || defined(__MINGW32__)
480a39d0a697ff3603e8c100300fda363658e10b23James Zern#  define GTEST_OS_WINDOWS_MINGW 1
490a39d0a697ff3603e8c100300fda363658e10b23James Zern# elif defined(WINAPI_FAMILY)
500a39d0a697ff3603e8c100300fda363658e10b23James Zern#  include <winapifamily.h>
510a39d0a697ff3603e8c100300fda363658e10b23James Zern#  if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
520a39d0a697ff3603e8c100300fda363658e10b23James Zern#   define GTEST_OS_WINDOWS_DESKTOP 1
530a39d0a697ff3603e8c100300fda363658e10b23James Zern#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_PHONE_APP)
540a39d0a697ff3603e8c100300fda363658e10b23James Zern#   define GTEST_OS_WINDOWS_PHONE 1
550a39d0a697ff3603e8c100300fda363658e10b23James Zern#  elif WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
560a39d0a697ff3603e8c100300fda363658e10b23James Zern#   define GTEST_OS_WINDOWS_RT 1
570a39d0a697ff3603e8c100300fda363658e10b23James Zern#  else
580a39d0a697ff3603e8c100300fda363658e10b23James Zern    // WINAPI_FAMILY defined but no known partition matched.
590a39d0a697ff3603e8c100300fda363658e10b23James Zern    // Default to desktop.
600a39d0a697ff3603e8c100300fda363658e10b23James Zern#   define GTEST_OS_WINDOWS_DESKTOP 1
610a39d0a697ff3603e8c100300fda363658e10b23James Zern#  endif
620a39d0a697ff3603e8c100300fda363658e10b23James Zern# else
630a39d0a697ff3603e8c100300fda363658e10b23James Zern#  define GTEST_OS_WINDOWS_DESKTOP 1
640a39d0a697ff3603e8c100300fda363658e10b23James Zern# endif  // _WIN32_WCE
650a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __APPLE__
660a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_MAC 1
670a39d0a697ff3603e8c100300fda363658e10b23James Zern# if TARGET_OS_IPHONE
680a39d0a697ff3603e8c100300fda363658e10b23James Zern#  define GTEST_OS_IOS 1
690a39d0a697ff3603e8c100300fda363658e10b23James Zern# endif
700a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __FreeBSD__
710a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_FREEBSD 1
720a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __linux__
730a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_LINUX 1
740a39d0a697ff3603e8c100300fda363658e10b23James Zern# if defined __ANDROID__
750a39d0a697ff3603e8c100300fda363658e10b23James Zern#  define GTEST_OS_LINUX_ANDROID 1
760a39d0a697ff3603e8c100300fda363658e10b23James Zern# endif
770a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __MVS__
780a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_ZOS 1
790a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined(__sun) && defined(__SVR4)
800a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_SOLARIS 1
810a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined(_AIX)
820a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_AIX 1
830a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined(__hpux)
840a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_HPUX 1
850a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __native_client__
860a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_NACL 1
870a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __OpenBSD__
880a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_OPENBSD 1
890a39d0a697ff3603e8c100300fda363658e10b23James Zern#elif defined __QNX__
900a39d0a697ff3603e8c100300fda363658e10b23James Zern# define GTEST_OS_QNX 1
910a39d0a697ff3603e8c100300fda363658e10b23James Zern#endif  // __CYGWIN__
920a39d0a697ff3603e8c100300fda363658e10b23James Zern
930a39d0a697ff3603e8c100300fda363658e10b23James Zern#endif  // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
94