library of assembled shared sources |
http://lass.cocamware.com |
00001 /** @file 00002 * @author Bram de Greve (bramz@users.sourceforge.net) 00003 * @author Tom De Muer (tomdemuer@users.sourceforge.net) 00004 * 00005 * *** BEGIN LICENSE INFORMATION *** 00006 * 00007 * The contents of this file are subject to the Common Public Attribution License 00008 * Version 1.0 (the "License"); you may not use this file except in compliance with 00009 * the License. You may obtain a copy of the License at 00010 * http://lass.sourceforge.net/cpal-license. The License is based on the 00011 * Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover 00012 * use of software over a computer network and provide for limited attribution for 00013 * the Original Developer. In addition, Exhibit A has been modified to be consistent 00014 * with Exhibit B. 00015 * 00016 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT 00017 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific 00018 * language governing rights and limitations under the License. 00019 * 00020 * The Original Code is LASS - Library of Assembled Shared Sources. 00021 * 00022 * The Initial Developer of the Original Code is Bram de Greve and Tom De Muer. 00023 * The Original Developer is the Initial Developer. 00024 * 00025 * All portions of the code written by the Initial Developer are: 00026 * Copyright (C) 2004-2007 the Initial Developer. 00027 * All Rights Reserved. 00028 * 00029 * Contributor(s): 00030 * 00031 * Alternatively, the contents of this file may be used under the terms of the 00032 * GNU General Public License Version 2 or later (the GPL), in which case the 00033 * provisions of GPL are applicable instead of those above. If you wish to allow use 00034 * of your version of this file only under the terms of the GPL and not to allow 00035 * others to use your version of this file under the CPAL, indicate your decision by 00036 * deleting the provisions above and replace them with the notice and other 00037 * provisions required by the GPL License. If you do not delete the provisions above, 00038 * a recipient may use your version of this file under either the CPAL or the GPL. 00039 * 00040 * *** END LICENSE INFORMATION *** 00041 */ 00042 00043 00044 00045 /** @namespace lass 00046 * @brief Library for Assembled Shared Sources 00047 */ 00048 00049 00050 00051 /** @mainpage lass: Library of Assembled Shared Sources 00052 * @author Bram de Greve (bram@www.cocamware.com) 00053 * @author Tom De Muer (tom@www.cocamware.com) 00054 * 00055 * - lass::io: streams, binary streams, vrmlstreams, ... 00056 * - lass::meta: a meta programming library for your cunning plans. 00057 * - lass::num: numeric primitives and functions 00058 * - lass::prim: geometric primitives 00059 * - lass:python: creating links back and forth between C++ and Python 00060 * - lass::spat: spatial subdivisions, quadtrees, octrees, meshes in 2D and 3D, triangulators, ... 00061 * - lass::stde: std extensions often Python inspired in their nature 00062 * - lass::util: general utility, debug facilities, ... 00063 * 00064 * Distributed under the terms of CPAL 00065 * 00066 * The LASS License: 00067 * 00068 * The contents of this file are subject to the Common Public Attribution License 00069 * Version 1.0 (the "License"); you may not use this file except in compliance with 00070 * the License. You may obtain a copy of the License at 00071 * http://lass.cocamware.com/cpal-license. The License is based on the 00072 * Mozilla Public License Version 1.1 but Sections 14 and 15 have been added to cover 00073 * use of software over a computer network and provide for limited attribution for 00074 * the Original Developer. In addition, Exhibit A has been modified to be consistent 00075 * with Exhibit B. 00076 * 00077 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT 00078 * WARRANTY OF ANY KIND, either express or implied. See the License for the specific 00079 * language governing rights and limitations under the License. 00080 * 00081 * The Original Code is LASS - Library of Assembled Shared Sources. 00082 * 00083 * The Initial Developer of the Original Code is Bram de Greve and Tom De Muer. 00084 * The Original Developer is the Initial Developer. 00085 * 00086 * All portions of the code written by the Initial Developer are: 00087 * Copyright (C) 2004-2008 the Initial Developer. 00088 * All Rights Reserved. 00089 * 00090 * Contributor(s): 00091 * 00092 * Alternatively, the contents of this file may be used under the terms of the 00093 * GNU General Public License Version 2 or later (the GPL), in which case the 00094 * provisions of GPL are applicable instead of those above. If you wish to allow use 00095 * of your version of this file only under the terms of the GPL and not to allow 00096 * others to use your version of this file under the CPAL, indicate your decision by 00097 * deleting the provisions above and replace them with the notice and other 00098 * provisions required by the GPL License. If you do not delete the provisions above, 00099 * a recipient may use your version of this file under either the CPAL or the GPL. 00100 * 00101 */ 00102 00103 00104 #ifndef LASS_GUARDIAN_OF_INCLUSION_LASS_COMMON_H 00105 #define LASS_GUARDIAN_OF_INCLUSION_LASS_COMMON_H 00106 00107 #include "config/config.h" 00108 00109 #define LASS_HEX_VERSION (LASS_MAJOR_VERSION << 16 | LASS_MINOR_VERSION << 8 | LASS_PATCHLEVEL) 00110 #define LASS_VERSION LASS_STRINGIFY(LASS_MAJOR_VERSION) "." LASS_STRINGIFY(LASS_MINOR_VERSION) "." LASS_STRINGIFY(LASS_PATCHLEVEL) 00111 00112 #ifdef LASS_UTIL_THREAD_HAVE_POSIX 00113 # ifndef _REENTRANT 00114 # define _REENTRANT 00115 # endif 00116 #endif 00117 00118 00119 // --- Check if we have RTTI and warn if we don't --- 00120 00121 // If you have the Intel C++ Compiler 7.1 installed, it screws up the part of MSVC's IDE 00122 // were you can enable RTTI. Therefore, you must add /GR to the commandline explicitely 00123 // http://tinyurl.com/8usvw 00124 #if !defined(_CPPRTTI) && LASS_COMPILER_TYPE == LASS_COMPILER_TYPE_MSVC 00125 # pragma message("[LASS BUILD MSG] RTTI not enabled ... Add /GR to commandline options if you need it.") 00126 #endif 00127 00128 00129 00130 // --- Here we'll define some stuff on the name of libraries lass creates --- 00131 00132 /** @def LASS_LIB_DEBUG 00133 * @brief part of the library name that indicates if it is a release or debug build. 00134 */ 00135 #ifdef _DEBUG 00136 # define LASS_LIB_DEBUG "_d" 00137 #else 00138 # define LASS_LIB_DEBUG "" 00139 #endif 00140 00141 #if LASS_COMPILER_TYPE == LASS_COMPILER_TYPE_MSVC && LASS_COMPILER_VERSION >= 1400 00142 // currently we only do this for vc8, probably this will stay so ... 00143 # if defined(LASS_BUILD_DLL) || defined(LASS_USE_DLL) 00144 // currently we only do this for the DLL edition, probably this will stay so ... 00145 # ifdef _M_IX86_FP 00146 # if _M_IX86_FP == 2 00147 # define LASS_LIB_ARCH "_sse2" 00148 # endif 00149 # endif 00150 # endif 00151 #endif 00152 #ifndef LASS_LIB_ARCH 00153 # define LASS_LIB_ARCH "" 00154 #endif 00155 00156 00157 00158 /** @def LASS_LIB_PREFIX 00159 * @brief prefix of all library names that will be made 00160 */ 00161 //#define LASS_LIB_PREFIX "lass_" 00162 00163 /** @def LASS_LIB_SUFFIX 00164 * @brief suffix of all library names that will be made, indicates platform, compiler and build. 00165 */ 00166 //#define LASS_LIB_SUFFIX "_" LASS_LIB_PLATFORM "_" LASS_LIB_COMPILER LASS_LIB_ARCH LASS_LIB_DEBUG ".lib" 00167 00168 /** @def LASS_DLL 00169 * @brief DLL interface: import or export symbols? or neither? 00170 */ 00171 #ifdef LASS_DLL 00172 # undef LASS_DLL 00173 #endif 00174 #if LASS_SHARED_LIBRARY 00175 # if defined(LASS_EXPORTS) || defined (lass_EXPORTS) 00176 # define LASS_DLL LASS_DLL_EXPORT 00177 # else 00178 # define LASS_DLL LASS_DLL_IMPORT 00179 # endif 00180 #else 00181 # define LASS_DLL LASS_DLL_EXPORT 00182 #endif 00183 00184 00185 00186 // --- frequently used STL mumbo jumbo --- 00187 00188 #include <typeinfo> 00189 #include <exception> 00190 #include <stdexcept> 00191 00192 #include <utility> 00193 #include <functional> 00194 #include <memory> 00195 00196 #include <string> 00197 00198 #include <locale> 00199 00200 #include <vector> 00201 #include <list> 00202 #include <deque> 00203 #include <map> 00204 #include <set> 00205 00206 #include <iterator> 00207 00208 #include <algorithm> 00209 00210 #include <complex> 00211 #include <numeric> 00212 00213 #include <iostream> 00214 #include <fstream> 00215 #include <sstream> 00216 #include <iomanip> 00217 00218 00219 00220 // --- common lass stuff --- 00221 00222 #include "util/common_macros.h" 00223 #include "util/call_traits.h" 00224 #include "util/exception.h" 00225 #include "util/enforcer.h" 00226 #include "util/string_cast.h" 00227 #include "io/io_fwd.h" 00228 #include "io/proxy_man.h" 00229 #include "stde/extended_io.h" 00230 00231 00232 00233 // --- the name of the game --- 00234 00235 //#pragma LASS_NOTE("LASS_PLATFORM: " LASS_PLATFORM) 00236 //#pragma LASS_NOTE("LASS_COMPILER: " LASS_COMPILER) 00237 00238 00239 #endif
Generated on Mon Nov 10 14:20:06 2008 for Library of Assembled Shared Sources by 1.5.7.1 |