blob: f64377d9e807beb7f6f915f29042490fa46e523d [file] [log] [blame]
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Xerces" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache\@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation, and was
* originally based on software copyright (c) 1999, International
* Business Machines, Inc., http://www.ibm.com . For more information
* on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/
/**
* $Log$
* Revision 1.1 1999/11/09 01:05:35 twl
* Initial revision
*
* Revision 1.3 1999/11/08 20:45:19 rahul
* Swat for adding in Product name and CVS comment log variable.
*
*/
#if !defined(XML4CDEFS_HPP)
#define XML4CDEFS_HPP
// ---------------------------------------------------------------------------
// These are the various representations of the current version of XML4C.
// These are updated for every build. They must be at the top because they
// can be used by various per-compiler headers below.
// ---------------------------------------------------------------------------
#define XML4C_DLLVersionStr "3_0"
static const char* const gXML4CVersionStr = "3_0";
static const char* const gXML4CFullVersionStr = "3_0_0";
static const unsigned int gXML4CMajVersion = 3;
static const unsigned int gXML4CMinVersion = 0;
static const unsigned int gXML4CRevision = 0;
// ---------------------------------------------------------------------------
// Include the header that does automatic sensing of the current platform
// and compiler.
// ---------------------------------------------------------------------------
#include <util/AutoSense.hpp>
// ---------------------------------------------------------------------------
// According to the platform we include a platform specific file. This guy
// will set up any platform specific stuff, such as character mode.
// ---------------------------------------------------------------------------
#if defined(XML_WIN32)
#include <util/Platforms/Win32/Win32Defs.hpp>
#endif
#if defined(XML_AIX)
#include <util/Platforms/AIX/AIXDefs.hpp>
#endif
#if defined(XML_SOLARIS)
#include <util/Platforms/Solaris/SolarisDefs.hpp>
#endif
#if defined(XML_HPUX)
#include <util/Platforms/HPUX/HPUXDefs.hpp>
#endif
#if defined(XML_TANDEM)
#include <util/Platforms/Tandem/TandemDefs.hpp>
#endif
#if defined(XML_LINUX)
#include <util/Platforms/Linux/LinuxDefs.hpp>
#endif
#if defined(XML_OE390)
#include <util/Platforms/OS390/OE390Defs.hpp>
#endif
#if defined(XML_OS2)
#include <util/Platforms/OS2/OS2Defs.hpp>
#endif
#if defined(XML_MACOS)
#include <util/Platforms/MaxOS/MacOSDefs.hpp>
#endif
// ---------------------------------------------------------------------------
// And now we subinclude a header according to the development environment
// we are on. This guy defines for each platform some basic stuff that is
// specific to the development environment.
// ---------------------------------------------------------------------------
#if defined(XML_VISUALCPP)
#include <util/Compilers/VCPPDefs.hpp>
#endif
#if defined(XML_CSET)
#include <util/Compilers/CSetDefs.hpp>
#endif
#if defined(XML_BORLAND)
#include <util/Compilers/BorlandCDefs.hpp>
#endif
#if defined(XML_SUNCC)
#include <util/Compilers/SunCCDefs.hpp>
#endif
#if defined(XML_SOLARIS_KAICC)
#include <util/Compilers/SunKaiDefs.hpp>
#endif
#if defined(XML_GNUG)
#include <util/Compilers/GNUGDefs.hpp>
#endif
#if defined(XML_HPUX_CC) || defined(XML_HPUX_aCC) || defined(XML_HPUX_KAICC)
#include <util/Compilers/HPCCDefs.hpp>
#endif
#if defined(XML_TANDEMCC)
#include <util/Compilers/TandemCCDefs.hpp>
#endif
#if defined(XML_GCC)
#include <util/Compilers/GCCDefs.hpp>
#endif
#if defined(XML_MVSCPP)
#include <util/Compilers/MVSCPPDefs.hpp>
#endif
#if defined(XML_IBMVAW32)
#include <util/Compilers/IBMVAW32Defs.hpp>
#endif
#if defined(XML_IBMVAOS2)
#include <util/Compilers/IBMVAOS2Defs.hpp>
#endif
#if defined(XML_METROWERKS)
#include <util/Compilers/CodeWarriorDefs.hpp>
#endif
// ---------------------------------------------------------------------------
// Some general typedefs that are defined for internal flexibility.
//
// Note that UTF16Ch is fixed at 16 bits, whereas XMLCh floats in size per
// platform, to whatever is the native wide char format there. UCS4Ch is
// fixed at 32 bits. The types we defined them in terms of are defined per
// compiler, using whatever types are the right ones for them to get these
// 16/32 bit sizes.
// ---------------------------------------------------------------------------
typedef unsigned char XMLByte;
typedef XMLUInt16 UTF16Ch;
typedef XMLUInt32 UCS4Ch;
// ---------------------------------------------------------------------------
// Handle boolean. If the platform can handle booleans itself, then we
// map our boolean type to the native type. Otherwise we create a default
// one as an int and define const values for true and false.
//
// This flag will be set in the per-development environment stuff above.
// ---------------------------------------------------------------------------
#if defined(NO_NATIVE_BOOL)
typedef int bool;
const bool true = 1;
const bool false = 0;
#endif
// ---------------------------------------------------------------------------
// Set up the import/export keyword for our core projects. The
// PLATFORM_XXXX keywords are set in the per-development environment
// include above.
// ---------------------------------------------------------------------------
#if defined(PROJ_XMLUTIL)
#define XMLUTIL_EXPORT PLATFORM_EXPORT
#else
#define XMLUTIL_EXPORT PLATFORM_IMPORT
#endif
#if defined(PROJ_XMLPARSER)
#define XMLPARSER_EXPORT PLATFORM_EXPORT
#else
#define XMLPARSER_EXPORT PLATFORM_IMPORT
#endif
#if defined(PROJ_SAX4C)
#define SAX_EXPORT PLATFORM_EXPORT
#else
#define SAX_EXPORT PLATFORM_IMPORT
#endif
#if defined(PROJ_DOM)
#define CDOM_EXPORT PLATFORM_EXPORT
#else
#define CDOM_EXPORT PLATFORM_IMPORT
#endif
#if defined(PROJ_PARSERS)
#define PARSERS_EXPORT PLATFORM_EXPORT
#else
#define PARSERS_EXPORT PLATFORM_IMPORT
#endif
#if defined(PROJ_VALIDATORS)
#define VALIDATORS_EXPORT PLATFORM_EXPORT
#else
#define VALIDATORS_EXPORT PLATFORM_IMPORT
#endif
#endif