topical media & game development

talk show tell print

lib-of-vs-libs-Poco-include-Poco-Foundation.h / h



  //
  // Foundation.h
  //
  // Id: //poco/1.3/Foundation/include/Poco/Foundation.h#3 
  //
  // Library: Foundation
  // Package: Core
  // Module:  Foundation
  //
  // Basic definitions for the POCO Foundation library.
  // This file must be the first file included by every other Foundation
  // header file.
  //
  // Copyright (c) 2004-2006, Applied Informatics Software Engineering GmbH.
  // and Contributors.
  //
  // Permission is hereby granted, free of charge, to any person or organization
  // obtaining a copy of the software and accompanying documentation covered by
  // this license (the "Software") to use, reproduce, display, distribute,
  // execute, and transmit the Software, and to prepare derivative works of the
  // Software, and to permit third-parties to whom the Software is furnished to
  // do so, all subject to the following:
  // 
  // The copyright notices in the Software and this entire statement, including
  // the above license grant, this restriction and the following disclaimer,
  // must be included in all copies of the Software, in whole or in part, and
  // all derivative works of the Software, unless such copies or derivative
  // works are solely in the form of machine-executable object code generated by
  // a source language processor.
  // 
  // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  // FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
  // SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
  // FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
  // ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  // DEALINGS IN THE SOFTWARE.
  //
  
  ifndef Foundation_Foundation_INCLUDED
  define Foundation_Foundation_INCLUDED
  
  //
  // Include library configuration
  //
  include "Poco/Config.h"
  
  //
  // Ensure that POCO_DLL is default unless POCO_STATIC is defined
  //
  if defined(_WIN32) && defined(_DLL)
          #if !defined(POCO_DLL) && !defined(POCO_STATIC)
                  #define POCO_DLL
          #endif
  endif
  
  //
  // The following block is the standard way of creating macros which make exporting 
  // from a DLL simpler. All files within this DLL are compiled with the Foundation_EXPORTS
  // symbol defined on the command line. this symbol should not be defined on any project
  // that uses this DLL. This way any other project whose source files include this file see 
  // Foundation_API functions as being imported from a DLL, wheras this DLL sees symbols
  // defined with this macro as being exported.
  //
  if defined(_WIN32) && defined(POCO_DLL)
          #if defined(Foundation_EXPORTS)
                  #define Foundation_API __declspec(dllexport)
          #else
                  #define Foundation_API __declspec(dllimport)        
          #endif
  endif
  
  if !defined(Foundation_API)
          #define Foundation_API
  endif
  
  //
  // Automatically link Foundation library.
  //
  if defined(_MSC_VER)
          #if !defined(POCO_NO_AUTOMATIC_LIBS) && !defined(Foundation_EXPORTS)
                  #if defined(POCO_DLL)
                          #if defined(_DEBUG)
                                  #pragma comment(lib, "PocoFoundationd.lib")
                          #else
                                  #pragma comment(lib, "PocoFoundation.lib")
                          #endif
                  #else
                          #if defined(_DEBUG)
                                  #pragma comment(lib, "PocoFoundationmtd.lib")
                          #else
                                  #pragma comment(lib, "PocoFoundationmt.lib")
                          #endif
                  #endif
          #endif
  endif
  
  //
  // Include platform-specific definitions
  //
  include "Poco/Platform.h"
  if defined(_WIN32)
          #include "Poco/Platform_WIN32.h"
  #elif defined(__VMS)
          #include "Poco/Platform_VMS.h"
  #elif defined(POCO_OS_FAMILY_UNIX)
          #include "Poco/Platform_POSIX.h"
  endif
  
  //
  // POCO_JOIN
  //
  // The following piece of macro magic joins the two
  // arguments together, even when one of the arguments is
  // itself a macro (see 16.3.1 in C++ standard).  The key
  // is that macro expansion of macro arguments does not
  // occur in POCO_DO_JOIN2 but does in POCO_DO_JOIN.
  //
  define POCO_JOIN(X, Y) POCO_DO_JOIN(X, Y)
  define POCO_DO_JOIN(X, Y) POCO_DO_JOIN2(X, Y)
  define POCO_DO_JOIN2(X, Y) X##Y
  
  //
  // Pull in basic definitions
  //
  include "Poco/Bugcheck.h"
  include "Poco/Types.h"
  include <string>
  
  endif // Foundation_Foundation_INCLUDED
  


(C) Æliens 04/09/2009

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.