/**
 * @file
 * $Id$
 * $Revision$
 * $Author$
 * $Date$
 *
 * This file is part of The iWear Framework.
 * In particular this file is part of the Framework Core Library
 *
 * The iWear Framework is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by the
 * Free Software Foundation as in version 2 of the License.

 * 
 * The iWear Framework is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * The iWear Framework; if not, write to the Free Software Foundation, Inc., 59
 * Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */


#ifndef __IWEAR_IWEAR_H
#define __IWEAR_IWEAR_H

// When included in other projects, this will use their config stuff too,
// otherwise this will be prevented throgh the include gards
//#include <config.h>
#include <iwear/config.h>
/// To be able to quickly change our project site systemwide
#define IWURI "http://www.projectiwear.org"
// some other generic macros
#ifdef WIN32
#define IWAPI
#define IWLOCAL
#define IWAPIT
#define IWLOCALT
#elif __GNUC__

/// Use this macro for when then function is to be exported as the api of the
/// class, usually that is for public and protected functions
#define IWAPI __attribute__ ((visibility("default")))

/// Use this macro to specify that this class is to be hidden, so no symbols
/// are emitted. This should only be done for local symbols, that are only used
/// within the library.
/// Dont use this ever for exceptions, as they will need the symbol information
/// of everything !
#define IWLOCAL __attribute__ ((visibility("hidden")))



#if (__GNUC__ > 3 )
#define IWAPIT IWAPI
#define IWLOCALT IWLOCAL
#else
// For older compilers, they dont support the visibility for types, so we use
// extra defines for them
#define IWAPIT
#define IWLOCALT
#endif

#else
#error sorry, we do not support other compilers at the moment
#endif

#endif
