config.h
Go to the documentation of this file.
00001 /** 00002 * @file config.h 00003 * @brief System related macro definitions. 00004 * 00005 * Copyright (c) 2011, 2012 University of Pennsylvania. All rights reserved.<br /> 00006 * See https://www.cbica.upenn.edu/sbia/software/license.html or COPYING file. 00007 * 00008 * Contact: SBIA Group <sbia-software at uphs.upenn.edu> 00009 */ 00010 00011 #pragma once 00012 #ifndef _BASIS_CONFIG_H 00013 #define _BASIS_CONFIG_H 00014 00015 00016 /// @addtogroup BasisCxxUtilities 00017 /// @{ 00018 00019 00020 /// @def LINUX 00021 /// @brief Whether the sources are compiled on a Linux system. 00022 #ifndef LINUX 00023 # define LINUX (defined (linux) || defined (__linux)) 00024 #endif 00025 00026 /// @def WINDOWS 00027 /// @brief Whether the sources are compiled on a Windows system. 00028 #ifndef WINDOWS 00029 # define WINDOWS (defined (_WIN32) || defined (WIN32) || defined (_WINDOWS)) 00030 #endif 00031 00032 /// @def MACOS 00033 /// @brief Whether the sources are compiled on a Mac OS system. 00034 #ifndef MACOS 00035 # define MACOS (defined (__APPLE__) || defined (__OSX__)) 00036 #endif 00037 00038 /// @def UNIX 00039 /// @brief Whether the sources are compiled on a Unix-based system. 00040 #ifndef UNIX 00041 # define UNIX (!WINDOWS) 00042 #endif 00043 00044 /// @def HAVE_LONG_LONG 00045 /// @brief Whether the long long type is supported by the compiler. 00046 #ifndef HAVE_LONG_LONG 00047 # define HAVE_LONG_LONG 1 00048 #endif 00049 00050 /// @def HAVE_SSTREAM 00051 /// @brief Whether the ANSI string stream classes are available. 00052 #ifndef HAVE_SSTREAM 00053 # define HAVE_SSTREAM 1 00054 #endif 00055 00056 /** 00057 * @def HAVE_STRSTREAM 00058 * @brief Whether the obsolete string stream classes are available. 00059 * 00060 * @note As the strstream implementations are obsolete already for a long 00061 * time, this macro always evaluates to 0. 00062 */ 00063 #ifdef HAVE_STRSTREAM 00064 # undef HAVE_STRSTREAM 00065 #endif 00066 #define HAVE_STRSTREAM 0 00067 00068 /// @def HAVE_PTHREAD 00069 /// @brief Whether the pthread library is available. 00070 #ifndef HAVE_PTHREAD 00071 # define HAVE_PTHREAD 1 00072 #endif 00073 00074 /** 00075 * @def HAVE_TR1_TUPLE 00076 * @brief Whether the tr1/tuple header file is available. 00077 * 00078 * @note This header file is only more recently supported by compilers 00079 * and be used by Google Test, for example. If not supported by 00080 * the compiler, Google Test can use it's own implementation. 00081 */ 00082 #ifndef HAVE_TR1_TUPLE 00083 # define HAVE_TR1_TUPLE 1 00084 #endif 00085 00086 00087 /// @} 00088 // end of Doxygen group 00089 00090 #endif // _BASIS_CONFIG_H