blob: 5e7a980053a8371da2e517cbae692138c22aab2b [file] [log] [blame]
/*------------------------------------------------------------------------------
* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
*
* Distributable under the terms of either the Apache License (Version 2.0) or
* the GNU Lesser General Public License, as specified in the COPYING file.
------------------------------------------------------------------------------*/
#ifndef lucene_define_std
#define lucene_define_std
//define a standard list of defines.
//These defines represents a fairly complete compiler.
//Of course it is preferable to use the autoconf generated
//list, but then not all systems can do this :)
//we support long files - 64 bit file functions
#define _LARGE_FILES
//support namespaces
#define _CL_HAVE_NAMESPACES
//support try/catch blocks
#define _CL_HAVE_FUNCTION_TRY_BLOCKS
//the normal headers
#define _CL_STDC_HEADERS
#define _CL_HAVE_STDARG_H
#define _CL_HAVE_ALGORITHM
#define _CL_HAVE_FUNCTIONAL
#define _CL_HAVE_MATH_H
#define _CL_HAVE_STL
#define _CL_HAVE_HASH_MAP
#define _CL_HAVE_HASH_SET
#define _CL_HAVE_MAP
#define _CL_HAVE_SET
#define _CL_HAVE_LIST
#define _CL_HAVE_VECTOR
#define _CL_HAVE_STDEXCEPT
#define _CL_HAVE_ERRNO_H
#define _CL_HAVE_SYS_STAT_H
#define _CL_HAVE_FCNTL_H
//character & std tchar support
#define _CL_HAVE_TCHAR_H
#ifdef _UCS2
#define _CL_HAVE_WCTYPE_H
#define _CL_HAVE_WCSCPY
#define _CL_HAVE_WCSNCPY
#define _CL_HAVE_WCSCAT
#define _CL_HAVE_WCSCHR
#define _CL_HAVE_WCSSTR
#define _CL_HAVE_WCSLEN
#define _CL_HAVE_WCSCMP
#define _CL_HAVE_WCSNCMP
#define _CL_HAVE_WCSCSPN
#else
#define _CL_HAVE_CTYPE_H
#endif
//already have the normal structures
#define _CL_HAVE_FLOAT_T
#define _CL_HAVE_INTPTR_T
//system dependant:
#define _CL_HAVE_STRING_H //could be HAVE_STRINGS_H && HAVE_STRCHR
#define _CL_HAVE_SYS_TIMEB_H
#define _CL_HAVE_TIME_H
#if defined (_WIN32) || defined (__WIN32) || defined (WIN32) || defined (__WIN32__)
#define _CL_HAVE_IO_H
#define _CL_HAVE_DIRECT_H
#define _CL_HAVE_WINDOWS_H
#else
#define _CL_HAVE_UNISTD_H
#endif
#ifdef UNDER_CE
#undef _CL_HAVE_SYS_TIMEB_H
#endif
////////////////////////////////////////////////
//now for individual functions. some compilers
//miss these, so must individually define what
//we have
////////////////////////////////////////////////
//string functions
#define _CL_HAVE_STRLWR
#define _CL_HAVE_WCSLWR
#define _CL_HAVE_WCSCASECMP
#define _CL_HAVE_STRCASECMP
//formatting functions
#define _CL_HAVE_SNWPRINTF
#define _CL_HAVE_VSNWPRINTF
#define _CL_HAVE_WPRINTF
#define _CL_HAVE_SNPRINTF
#define _CL_HAVE_PRINTF
//conversion functions
#define _CL_HAVE_STRTOLL
#define _CL_HAVE_WCSTOLL
#define _CL_HAVE_WCSTOD
#define _CL_HAVE_LLTOA
#define _CL_HAVE_LLTOW
#define _CL_HAVE_INTPTR_T
//these ones are not standard (msvc)
//so you will probably need to undefine
//if you are not using msvc
#define _CL_HAVE_FILELENGTH
#endif