X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=kernel%2Fsrc%2FbbtkSystem.h;h=44f17bfc24f0565e0962545fff968c3e8d786060;hb=7a86b21a88862240b2b56d165433cbcbb50ab316;hp=26baaba5379918b95e4ee45f5796d317b221b47f;hpb=1cb8d15699ee9ba117205b4e50e7d7037b737640;p=bbtk.git diff --git a/kernel/src/bbtkSystem.h b/kernel/src/bbtkSystem.h index 26baaba..44f17bf 100644 --- a/kernel/src/bbtkSystem.h +++ b/kernel/src/bbtkSystem.h @@ -1,35 +1,41 @@ +/* + # --------------------------------------------------------------------- + # + # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image + # pour la SantÈ) + # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton + # Previous Authors : Laurent Guigues, Jean-Pierre Roux + # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil + # + # This software is governed by the CeCILL-B license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL-B + # license as circulated by CEA, CNRS and INRIA at the following URL + # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html + # or in the file LICENSE.txt. + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL-B license and that you accept its terms. + # ------------------------------------------------------------------------ */ + + /*========================================================================= - Program: bbtk Module: $RCSfile: bbtkSystem.h,v $ Language: C++ - Date: $Date: 2008/10/10 12:25:10 $ - Version: $Revision: 1.8 $ - - Copyright (c) CREATIS-LRMN - Centre de Recherche Et d'Application en Traitement de l'Image et du Signal - Authors : Laurent Guigues, Eduardo Davila, Jean-Pierre Roux - e-mail : creatools@creatis.insa-lyon.fr - - This software is governed by the CeCILL-B license under French law and - abiding by the rules of distribution of free software. You can use, - modify and/ or redistribute the software under the terms of the CeCILL-B - license as circulated by CEA, CNRS and INRIA at the following URL - http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html - or in the file LICENSE.txt. - - As a counterpart to the access to the source code and rights to copy, - modify and redistribute granted by the license, users are provided only - with a limited warranty and the software's author, the holder of the - economic rights, and the successive licensors have only limited - liability. - - The fact that you are presently reading this means that you have had - knowledge of the CeCILL-B license and that you accept its terms. - - + Date: $Date: 2012/11/16 08:49:01 $ + Version: $Revision: 1.15 $ =========================================================================*/ + + + /** *\file *\brief contains all the OS depending stuff @@ -66,7 +72,17 @@ // produce errors if applied using infix notation #pragma warning ( disable : 4284 ) // 'type' : forcing value to bool 'true' or 'false' (performance warning) +// Has revealed a real error ! +// bbSignalOutputModification(bool) called rather than +// bbSignalOutputModification(const std::string&, bool = true) +// when invoking bbSignalOutputModification("Out") +// KEEP IT ! // //#pragma warning ( disable : 4800 ) +// To avoid warning : +// 'PACKAGE_NAMEGetPackage' has C-linkage specified, but returns UDT 'boost::shared_ptr' which is incompatible with C +#pragma warning ( disable : 4190 ) + + #endif //_MSC_VER @@ -92,14 +108,19 @@ // class ClassName - +#if defined(_WIN32) + #ifdef _MSC_VER + // IF NOT DEF THEN INTERNAL COMPILER ERROR WITH BOOST 1.37 ON VISUAL C++ + #define BOOST_SP_NO_SP_CONVERTIBLE + #endif +#endif #if defined(_WIN32) //&& defined(BUILD_SHARED_LIBS) //#include "WWW.h" #ifdef BBTK_EXPORT_SYMBOLS #define BBTK_EXPORT __declspec( dllexport ) -#else + #else #define BBTK_EXPORT __declspec( dllimport ) #endif #define BBTK_CDECL __cdecl @@ -127,6 +148,7 @@ namespace bbtk #define BBTK_STRINGIFY(A) #A #define BBTK_STRINGIFY_SYMBOL(A) BBTK_STRINGIFY(A) + extern "C" { BBTK_EXPORT inline const std::string& BBTK_CDECL GetVersion() @@ -136,6 +158,7 @@ namespace bbtk } } + } //----------------------------------------------------------------------------- @@ -160,33 +183,31 @@ typedef unsigned int uint32_t; #ifdef CMAKE_HAVE_STDINT_H #include #else -#ifdef CMAKE_HAVE_INTTYPES_H - // Old system only have this - #include // For uint8_t uint16_t and uint32_t -#else - //#include "XXX.h" -// Broken plateforms do not respect C99 and do not provide those typedef -// Special case for recent Borland compiler, comes with stdint.h -#if defined(_MSC_VER) || defined(__BORLANDC__) && (__BORLANDC__ < 0x0560) \ - || defined(__MINGW32__) -typedef signed char int8_t; -typedef signed short int16_t; -typedef signed int int32_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; - -/// \todo Find a clever way to deal with int64_t, uint64_t - -#else -#error "Sorry your plateform is not supported" -#endif // defined(_MSC_VER) || defined(__BORLANDC__) && (__BORLANDC__ < 0x0560) || defined(__MINGW32__) -#endif // CMAKE_HAVE_INTTYPES_H + #ifdef CMAKE_HAVE_INTTYPES_H + // Old system only have this + #include // For uint8_t uint16_t and uint32_t + #else + //#include "XXX.h" + // Broken plateforms do not respect C99 and do not provide those typedef + // Special case for recent Borland compiler, comes with stdint.h + #if defined(_MSC_VER) || defined(__BORLANDC__) && (__BORLANDC__ < 0x0560) \ + || defined(__MINGW32__) + typedef signed char int8_t; + typedef signed short int16_t; + typedef signed int int32_t; + typedef unsigned char uint8_t; + typedef unsigned short uint16_t; + typedef unsigned int uint32_t; + /// \todo Find a clever way to deal with int64_t, uint64_t + #else + #error "Sorry your plateform is not supported" + #endif // defined(_MSC_VER) || defined(__BORLANDC__) && (__BORLANDC__ < 0x0560) || defined(__MINGW32__) + #endif // CMAKE_HAVE_INTTYPES_H #endif // CMAKE_HAVE_STDINT_H // Basically for VS6 and bcc 5.5.1: #ifndef UINT32_MAX -#define UINT32_MAX (4294967295U) + #define UINT32_MAX (4294967295U) #endif @@ -210,11 +231,41 @@ namespace bbtk // file separator #if defined(_WIN32) -#define VALID_FILE_SEPARATOR "\\" -#define INVALID_FILE_SEPARATOR "/" + #define VALID_FILE_SEPARATOR "\\" + #define INVALID_FILE_SEPARATOR "/" + #define VALID_FILE_SEPARATOR_CHAR '\\' + #define INVALID_FILE_SEPARATOR_CHAR '/' +#else + #define INVALID_FILE_SEPARATOR "\\" + #define VALID_FILE_SEPARATOR "/" + #define INVALID_FILE_SEPARATOR_CHAR '\\' + #define VALID_FILE_SEPARATOR_CHAR '/' +#endif + + +#endif //__bbtkSystem_h__ + + +//---------------------------- +#ifndef _WIN32 +#include //for access, unlink #else -#define INVALID_FILE_SEPARATOR "\\" -#define VALID_FILE_SEPARATOR "/" +#include //for _access on Win32 #endif +#ifdef _MSC_VER +# define access _access #endif + + + + +//=========================================================== +// Define the groups (modules) for doxygen documentation +/** + * \defgroup box Black boxes related classes + * \defgroup interface Graphical User Interface components + * \defgroup data Data +*/ + +