/usr/include/CLucene/SharedHeader.h is in libclucene-dev 2.3.3.4+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 | /*------------------------------------------------------------------------------
* 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_sharedheader_h
#define lucene_sharedheader_h
/**
* This header contains definitions and macros for helping create cross-platform code.
* It is primarily for use by the clucene-core library, but is split off so that
* other applications such as the demo, test, benchmarks, etc can benefit from the
* cross platform code. Cross platform code is not distributed with the clucene-core
* and is not available through the shared library.
*/
#include "CLucene/clucene-config.h"
//some early definitions
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define _LUCENE_PRAGMA_WARNINGS //tell lucene to display warnings using pragmas instead of #warning
#endif
////////////////////////////////////////////////////////
//Are we in unicode mode?
////////////////////////////////////////////////////////
#if defined(_MBCS) || defined(_ASCII)
#undef _ASCII
#undef _UCS2
#define _ASCII
#elif defined(_UNICODE)
#ifndef _UCS2
#define _UCS2
#endif
#elif !defined(_UCS2)
#define _UCS2
#endif
//msvc needs unicode define so that it uses unicode library
#ifdef _UCS2
#undef _UNICODE
#define _UNICODE
#undef _ASCII
#else
#undef _UNICODE
#undef _UCS2
#endif
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
//platform includes that MUST be included for the public headers to work...
////////////////////////////////////////////////////////
#include <cstddef> //need this for wchar_t, size_t, NULL
#ifdef _CL_HAVE_STDINT_H
#include <stdint.h> //need this for int32_t, etc
#endif
#include <math.h> //required for float_t
#include <string> //need to include this really early...
#ifdef _CL_HAVE_TCHAR_H
#include <tchar.h> //required for _T and TCHAR
#endif
////////////////////////////////////////////////////////
//namespace helper
////////////////////////////////////////////////////////
#if defined(_LUCENE_DONTIMPLEMENT_NS_MACROS)
//do nothing
#elif !defined(DISABLE_NAMESPACE) && defined(_CL_HAVE_NAMESPACES)
#define CL_NS_DEF(sub) namespace lucene{ namespace sub{
#define CL_NS_DEF2(sub,sub2) namespace lucene{ namespace sub{ namespace sub2 {
#define CL_NS_END }}
#define CL_NS_END2 }}}
#define CL_NS_USE(sub) using namespace lucene::sub;
#define CL_NS_USE2(sub,sub2) using namespace lucene::sub::sub2;
#define CL_NS(sub) lucene::sub
#define CL_NS2(sub,sub2) lucene::sub::sub2
#define CL_STRUCT_DEF(sub,clazz) namespace lucene { namespace sub{ struct clazz; } }
#define CL_CLASS_DEF(sub,clazz) namespace lucene { namespace sub{ class clazz; } }
#define CL_CLASS_DEF2(sub,sub2, clazz) namespace lucene { namespace sub{ namespace sub2{ class clazz; } } }
#define CL_TEMPATE_DEF(sub, clazz, typedefs) namespace lucene { namespace sub{ template<typedefs> class clazz; }}
#define CL_TYPE_DEF(sub, clazz, def) namespace lucene { namespace sub{ typedef def clazz; }}
#else
#define CL_NS_DEF(sub)
#define CL_NS_DEF2(sub, sub2)
#define CL_NS_END
#define CL_NS_END2
#define CL_NS_USE(sub)
#define CL_NS_USE2(sub,sub2)
#define CL_NS(sub)
#define CL_NS2(sub,sub2)
#define CL_CLASS_DEF(sub,clazz) class clazz;
#define CL_CLASS_DEF2(sub,sub2, clazz) class clazz;
#endif
#if defined(LUCENE_NO_STDC_NAMESPACE)
//todo: haven't actually tested this on a non-stdc compliant compiler
#define CL_NS_STD(func) ::func
#else
#define CL_NS_STD(func) std::func
#endif
//
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
// EXPORTS definition
////////////////////////////////////////////////////////
#if defined(_WIN32) || defined(_WIN64)
#define CLUCENE_EXPORT_DECL __declspec(dllexport)
#define CLUCENE_IMPORT_DECL __declspec(dllimport)
#define CLUCENE_LOCAL_DECL
#elif defined(_CL_HAVE_GCCVISIBILITYPATCH)
#define CLUCENE_EXPORT_DECL __attribute__ ((visibility("default")))
#define CLUCENE_LOCAL_DECL __attribute__ ((visibility("hidden")))
#define CLUCENE_IMPORT_DECL
#else
#define CLUCENE_EXPORT_DECL
#define CLUCENE_IMPORT_DECL
#define CLUCENE_LOCAL_DECL
#endif
//define for the libraries
#if defined(clucene_shared_EXPORTS)
#define CLUCENE_SHARED_EXPORT CLUCENE_EXPORT_DECL
#define CLUCENE_LOCAL CLUCENE_LOCAL_DECL
#elif defined(MAKE_CLUCENE_SHARED_LIB)
#define CLUCENE_SHARED_EXPORT //don't export if we are building a static library
#else
#define CLUCENE_SHARED_EXPORT CLUCENE_IMPORT_DECL
#endif
#if defined(clucene_core_EXPORTS)
#define CLUCENE_EXPORT CLUCENE_EXPORT_DECL
#define CLUCENE_LOCAL CLUCENE_LOCAL_DECL
#elif defined(MAKE_CLUCENE_CORE_LIB)
#define CLUCENE_EXPORT
#else
#define CLUCENE_EXPORT CLUCENE_IMPORT_DECL
#endif
#if defined(clucene_contribs_lib_EXPORTS)
#define CLUCENE_CONTRIBS_EXPORT CLUCENE_EXPORT_DECL
#define CLUCENE_LOCAL CLUCENE_LOCAL_DECL
#elif defined(MAKE_CLUCENE_CONTRIBS_LIB)
#define CLUCENE_CONTRIBS_EXPORT
#else
#define CLUCENE_CONTRIBS_EXPORT CLUCENE_IMPORT_DECL
#endif
#ifndef CLUCENE_LOCAL
#define CLUCENE_LOCAL
#endif
//inline definitions
#if defined(__MINGW32__) || defined(_MSC_VER)
#define CLUCENE_SHARED_INLINE_EXPORT
#define CLUCENE_INLINE_EXPORT
#define CLUCENE_CONTRIBS_INLINE_EXPORT
#else
#define CLUCENE_SHARED_INLINE_EXPORT CLUCENE_SHARED_EXPORT
#define CLUCENE_INLINE_EXPORT CLUCENE_EXPORT
#define CLUCENE_CONTRIBS_INLINE_EXPORT CLUCENE_CONTRIBS_EXPORT
#endif
////////////////////////////////////////////////////////
//todo: put this logic in cmake
#if defined(_MSC_VER)
#if _MSC_FULL_VER >= 140050320
#define _CL_DEPRECATE_TEXT(_Text) __declspec(deprecated(_Text))
#elif _MSC_VER >= 1300
#define _CL_DEPRECATE_TEXT(_Text) __declspec(deprecated)
#else
#define _CL_DEPRECATE_TEXT(_Text)
#endif
#elif (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1))
#define _CL_DEPRECATE_TEXT(_Text) __attribute__((__deprecated__))
#else
#define _CL_DEPRECATE_TEXT(_Text)
#endif
#define _CL_DEPRECATED(_NewItem) _CL_DEPRECATE_TEXT("This function or variable has been superceded by newer library or operating system functionality. Consider using " #_NewItem " instead. See online help for details.")
//
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
// boost stuff
////////////////////////////////////////////////////////
#if defined(_MSC_VER)
# pragma warning (disable : 4251) // disable exported dll function
# endif
////////////////////////////////////////////////////////
//Class interfaces
////////////////////////////////////////////////////////
#include "CLucene/debug/lucenebase.h"
////////////////////////////////////////////////////////
//memory handling macros/functions
#include "CLucene/debug/mem.h"
#ifdef DMALLOC
#include <stdlib.h>
#include <string.h>
#include <dmalloc.h>
#endif
#endif //lucene_sharedheader_h
|