SupportBuild.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2005 Palmsource, Inc.
00003  * 
00004  * This software is licensed as described in the file LICENSE, which
00005  * you should have received as part of this distribution. The terms
00006  * are also available at http://www.openbinder.org/license.html.
00007  * 
00008  * This software consists of voluntary contributions made by many
00009  * individuals. For the exact contribution history, see the revision
00010  * history and logs, available at http://www.openbinder.org
00011  */
00012 
00013 #ifndef _SUPPORT_BUILD_H
00014 #define _SUPPORT_BUILD_H
00015 
00021 #if (defined(__CC_ARM) || defined(_MSC_VER))
00022 #define _SUPPORTS_WARNING                   0
00023 #define _SUPPORTS_FEATURE_SHORT_PATH_MAX    0
00024 #endif
00025 
00026 #include <BuildDefaults.h>
00027 
00028 #if TARGET_HOST == TARGET_HOST_WIN32
00029 #   define _SUPPORTS_WINDOWS_FILE_PATH 1
00030 #else
00031 #   define _SUPPORTS_UNIX_FILE_PATH 1
00032 #endif
00033 
00034 #ifndef LIBBE_BOOTSTRAP
00035 #define LIBBE_BOOTSTRAP 0
00036 #endif
00037 
00038 #ifndef _SUPPORTS_FEATURE_SHORT_PATH_MAX
00039 #define _SUPPORTS_FEATURE_SHORT_PATH_MAX 0
00040 #endif
00041 
00042 #ifndef _NO_INLINE_ASM
00043 #define _NO_INLINE_ASM 0
00044 #endif
00045 
00046 #if defined(NO_RUNTIME_SHARED_LIBRARIES) && defined(__arm)
00047     // prevent r9 (sb) from being used in PalmOS so that changes
00048     // we make to it are maintained for applications
00049     __global_reg(6)   unsigned long sb;
00050 #endif
00051 
00052 #if defined(__GNUC__)
00053 #define _UNUSED(x) x
00054 #define _PACKED __attribute__((packed))
00055 #endif
00056 
00057 #ifdef _MSC_VER
00058 //  This is warning is not particularly useful, and causes lots of spewage when
00059 //  the StaticValue.h macros are used.
00060 #pragma warning (disable:4003)
00061 //  The following warning actually -is- useful, but in many places we do things
00062 //  that instigate it where there isn't really a problem.
00063 #pragma warning (disable:4355)
00064 // disable warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
00065 #if _MSC_VER <= 1300
00066 #pragma warning (disable:4800)
00067 #endif
00068 #endif
00069 
00070 #ifndef _BUILDING_SUPPORT
00071 #define _BUILDING_SUPPORT 0
00072 #endif
00073 
00074 #if LIBBE_BOOTSTRAP
00075 #undef _EXPORT
00076 #undef _IMPORT
00077 #define _EXPORT
00078 #define _IMPORT
00079 #endif
00080 
00081 #if _BUILDING_SUPPORT
00082 #define _IMPEXP_SUPPORT     _EXPORT
00083 #else
00084 #define _IMPEXP_SUPPORT     _IMPORT
00085 #endif
00086 
00087 #ifdef __cplusplus
00088 extern "C++" { // the BeOS standard C++ library is indirectly including this file inside an extern "C"
00089 
00090 #if _SUPPORTS_NAMESPACE
00091 namespace palmos {
00092 #endif
00093 
00094 #if _SUPPORTS_NAMESPACE
00095 namespace package {
00096 #endif
00097 
00098 #if TARGET_HOST == TARGET_HOST_WIN32
00099 class _IMPEXP_SUPPORT BPackageManager;
00100 #endif
00101 
00102 #if _SUPPORTS_NAMESPACE
00103 } // package
00104 #endif
00105 
00106 
00107 #if _SUPPORTS_NAMESPACE
00108 namespace storage {
00109 #endif
00110 
00111 class _IMPEXP_SUPPORT BFile;
00112 
00113 #if _SUPPORTS_NAMESPACE
00114 } // storage
00115 #endif
00116 
00117 
00118 
00119 #if _SUPPORTS_NAMESPACE
00120 namespace support {
00121 #endif
00122 
00123 /*  These are always exported because they are really just collections of
00124     inline functions.  If we don't export them, we get warnings from any
00125     "real" classes using them, which themselves are being exported
00126 */
00127 template<class TYPE> class _EXPORT atom_ptr;
00128 template<class TYPE> class _EXPORT atom_ref;
00129 template<class TYPE> class _EXPORT SVector;
00130 template<class TYPE> class _EXPORT SSortedVector;
00131 template<class KEY, class VALUE> class _EXPORT SKeyedVector;
00132 template<class INTERFACE> class _EXPORT BnInterface;
00133 
00134 /* support kit */
00135 #if TARGET_HOST == TARGET_HOST_WIN32
00136 class _IMPEXP_SUPPORT SAbstractList;
00137 class _IMPEXP_SUPPORT SAbstractSortedVector;
00138 class _IMPEXP_SUPPORT SAbstractVector;
00139 class _IMPEXP_SUPPORT BArmInputStream;
00140 class _IMPEXP_SUPPORT BArmOutputStream;
00141 class _IMPEXP_SUPPORT SAtom;
00142 class _IMPEXP_SUPPORT BBinder;
00143 class _IMPEXP_SUPPORT SBitfield;
00144 class _IMPEXP_SUPPORT BByteStream;
00145 class _IMPEXP_SUPPORT BBufferedPipe;
00146 class _IMPEXP_SUPPORT SCallStack;
00147 class _IMPEXP_SUPPORT BContainer;
00148 class _IMPEXP_SUPPORT BContext;
00149 class _IMPEXP_SUPPORT BController;
00150 class _IMPEXP_SUPPORT BDictionary;
00151 class _IMPEXP_SUPPORT BFlattenable;
00152 class _IMPEXP_SUPPORT SFloatDump;
00153 // class _IMPEXP_SUPPORT BHandler;
00154 class _IMPEXP_SUPPORT SHasher;
00155 class _IMPEXP_SUPPORT SHexDump;
00156 class _IMPEXP_SUPPORT BSharedObject;
00157 class _IMPEXP_SUPPORT BKernelIStr;
00158 class _IMPEXP_SUPPORT BKernelOStr;
00159 class _IMPEXP_SUPPORT SLocker;
00160 class _IMPEXP_SUPPORT SLooper;
00161 class _IMPEXP_SUPPORT BMallocStore;
00162 class _IMPEXP_SUPPORT BMemoryStore;
00163 class _IMPEXP_SUPPORT BMemory;
00164 class _IMPEXP_SUPPORT BLocalMemory;
00165 class _IMPEXP_SUPPORT BMemoryHeap;
00166 class _IMPEXP_SUPPORT SMessage;
00167 class _IMPEXP_SUPPORT SMessageList;
00168 class _IMPEXP_SUPPORT SNestedLocker;
00169 class _IMPEXP_SUPPORT SParcel;
00170 class _IMPEXP_SUPPORT BPipe;
00171 class _IMPEXP_SUPPORT SPrintf;
00172 class _IMPEXP_SUPPORT SReadWriteLocker;
00173 class _IMPEXP_SUPPORT BRoot;
00174 class _IMPEXP_SUPPORT SSharedBuffer;
00175 class _IMPEXP_SUPPORT BStreamInputPipe;
00176 class _IMPEXP_SUPPORT BStreamOutputPipe;
00177 class _IMPEXP_SUPPORT BStreamPipe;
00178 class _IMPEXP_SUPPORT SString;
00179 class _IMPEXP_SUPPORT BStringBuffer;
00180 class _IMPEXP_SUPPORT BStringIO;
00181 class _IMPEXP_SUPPORT BProcess;
00182 class _IMPEXP_SUPPORT BTextOutput;
00183 class _IMPEXP_SUPPORT STypeCode;
00184 class _IMPEXP_SUPPORT SUrl;
00185 class _IMPEXP_SUPPORT SValue;
00186 class _IMPEXP_SUPPORT SVectorIO;
00187 class _IMPEXP_SUPPORT IBinder;
00188 class _IMPEXP_SUPPORT IByteInput;
00189 class _IMPEXP_SUPPORT IByteOutput;
00190 class _IMPEXP_SUPPORT IByteSeekable;
00191 class _IMPEXP_SUPPORT BnFeatures;
00192 class _IMPEXP_SUPPORT BnVaultManagerServer;
00193 class _IMPEXP_SUPPORT IHandler;
00194 class _IMPEXP_SUPPORT IInterface;
00195 class _IMPEXP_SUPPORT IManifestParser;
00196 class _IMPEXP_SUPPORT IMemory;
00197 class _IMPEXP_SUPPORT IMemoryHeap;
00198 class _IMPEXP_SUPPORT IMemoryDealer;
00199 class _IMPEXP_SUPPORT IStorage;
00200 class _IMPEXP_SUPPORT ITask;
00201 class _IMPEXP_SUPPORT IProcess;
00202 class _IMPEXP_SUPPORT ITextOutput;
00203 class _IMPEXP_SUPPORT IValueInput;
00204 class _IMPEXP_SUPPORT IValueOutput;
00205 class _IMPEXP_SUPPORT IVirtualMachine;
00206 class _IMPEXP_SUPPORT BnByteInput;
00207 class _IMPEXP_SUPPORT BnByteOutput;
00208 class _IMPEXP_SUPPORT BnByteSeekable;
00209 class _IMPEXP_SUPPORT BnHandler;
00210 class _IMPEXP_SUPPORT BnMemory;
00211 class _IMPEXP_SUPPORT BnMemoryHeap;
00212 class _IMPEXP_SUPPORT BnMemoryDealer;
00213 class _IMPEXP_SUPPORT BnStorage;
00214 class _IMPEXP_SUPPORT BnTask;
00215 class _IMPEXP_SUPPORT BnProcess;
00216 class _IMPEXP_SUPPORT BnValueInput;
00217 class _IMPEXP_SUPPORT BnValueOutput;
00218 class _IMPEXP_SUPPORT BnVirtualMachine;
00219 class _IMPEXP_SUPPORT SFlattenable;
00220 class _IMPEXP_SUPPORT BpAtom;
00221 
00222 class _IMPEXP_SUPPORT SKeyID;
00223 class _IMPEXP_SUPPORT SCallTreeNode;
00224 class _IMPEXP_SUPPORT SCallTree;
00225 class _IMPEXP_SUPPORT SEventFlag;
00226 class _IMPEXP_SUPPORT SRegExp;
00227 #endif
00228 
00229 #if _SUPPORTS_NAMESPACE
00230 } // namespace support
00231 #endif
00232 
00233 // services kit
00234 
00235 #if _SUPPORTS_NAMESPACE
00236 namespace services {
00237 #endif
00238 
00239 #if TARGET_HOST == TARGET_HOST_WIN32
00240 class _IMPEXP_SUPPORT IFeatures;
00241 #endif
00242 
00243 #if TARGET_HOST == TARGET_HOST_WIN32
00244 class _IMPEXP_SUPPORT IVaultManagerServer;
00245 #endif
00246 
00247 #if _SUPPORTS_NAMESPACE
00248 } // namespace services
00249 #endif
00250 
00251 
00252 // xml kit
00253 
00254 #if _SUPPORTS_NAMESPACE
00255 namespace xml {
00256 #endif
00257 
00258 #if TARGET_HOST == TARGET_HOST_WIN32
00259 class _IMPEXP_SUPPORT BCreator;
00260 class _IMPEXP_SUPPORT BOutputStream;
00261 class _IMPEXP_SUPPORT BParser;
00262 class _IMPEXP_SUPPORT BWriter;
00263 class _IMPEXP_SUPPORT BXML2ValueCreator;
00264 class _IMPEXP_SUPPORT BXML2ValueParser;
00265 class _IMPEXP_SUPPORT BXMLBufferSource;
00266 class _IMPEXP_SUPPORT BXMLDataSource;
00267 class _IMPEXP_SUPPORT BXMLIByteInputSource;
00268 class _IMPEXP_SUPPORT BXMLParseContext;
00269 class _IMPEXP_SUPPORT BXMLParser;
00270 class _IMPEXP_SUPPORT CXMLOStr;
00271 class _IMPEXP_SUPPORT IXMLOStr;
00272 #endif
00273 
00274 #if _SUPPORTS_NAMESPACE
00275 } // namespace xml
00276 #endif
00277 
00278 #if _SUPPORTS_NAMESPACE
00279 } // namespace palmos::
00280 #endif
00281 
00282 } // extern "C++"
00283 #endif      /* __cplusplus */
00284 
00285 #endif