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