BASIS  r3148
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