147 lines
5.9 KiB
C
147 lines
5.9 KiB
C
/*============================================================================
|
|
KWSys - Kitware System Library
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
Distributed under the OSI-approved BSD License (the "License");
|
|
see accompanying file Copyright.txt for details.
|
|
|
|
This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
See the License for more information.
|
|
============================================================================*/
|
|
#ifndef @KWSYS_NAMESPACE@_FundamentalType_h
|
|
#define @KWSYS_NAMESPACE@_FundamentalType_h
|
|
|
|
#include <@KWSYS_NAMESPACE@/Configure.h>
|
|
|
|
/* Redefine all public interface symbol names to be in the proper
|
|
namespace. These macros are used internally to kwsys only, and are
|
|
not visible to user code. Use kwsysHeaderDump.pl to reproduce
|
|
these macros after making changes to the interface. */
|
|
#if !defined(KWSYS_NAMESPACE)
|
|
# define kwsys_ns(x) @KWSYS_NAMESPACE@##x
|
|
# define kwsysEXPORT @KWSYS_NAMESPACE@_EXPORT
|
|
#endif
|
|
|
|
#if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
|
|
# define kwsysFundamentalType kwsys_ns(FundamentalType)
|
|
# define kwsysFundamentalType_Int8 kwsys_ns(FundamentalType_Int8)
|
|
# define kwsysFundamentalType_UInt8 kwsys_ns(FundamentalType_UInt8)
|
|
# define kwsysFundamentalType_Int16 kwsys_ns(FundamentalType_Int16)
|
|
# define kwsysFundamentalType_UInt16 kwsys_ns(FundamentalType_UInt16)
|
|
# define kwsysFundamentalType_Int32 kwsys_ns(FundamentalType_Int32)
|
|
# define kwsysFundamentalType_UInt32 kwsys_ns(FundamentalType_UInt32)
|
|
# define kwsysFundamentalType_Int64 kwsys_ns(FundamentalType_Int64)
|
|
# define kwsysFundamentalType_UInt64 kwsys_ns(FundamentalType_UInt64)
|
|
#endif
|
|
|
|
/* The size of fundamental types. Types that do not exist have size 0. */
|
|
#define @KWSYS_NAMESPACE@_SIZEOF_CHAR @KWSYS_SIZEOF_CHAR@
|
|
#define @KWSYS_NAMESPACE@_SIZEOF_SHORT @KWSYS_SIZEOF_SHORT@
|
|
#define @KWSYS_NAMESPACE@_SIZEOF_INT @KWSYS_SIZEOF_INT@
|
|
#define @KWSYS_NAMESPACE@_SIZEOF_LONG @KWSYS_SIZEOF_LONG@
|
|
#define @KWSYS_NAMESPACE@_SIZEOF_LONG_LONG @KWSYS_SIZEOF_LONG_LONG@
|
|
#define @KWSYS_NAMESPACE@_SIZEOF___INT64 @KWSYS_SIZEOF___INT64@
|
|
|
|
/* Whether types "long long" and "__int64" are enabled. If a type is
|
|
enabled then it is a unique fundamental type. */
|
|
#define @KWSYS_NAMESPACE@_USE_LONG_LONG @KWSYS_USE_LONG_LONG@
|
|
#define @KWSYS_NAMESPACE@_USE___INT64 @KWSYS_USE___INT64@
|
|
|
|
/* Whether type "char" is signed (it may be signed or unsigned). */
|
|
#define @KWSYS_NAMESPACE@_CHAR_IS_SIGNED @KWSYS_CHAR_IS_SIGNED@
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/* Select an 8-bit integer type. */
|
|
#if @KWSYS_NAMESPACE@_SIZEOF_CHAR == 1
|
|
typedef signed char kwsysFundamentalType_Int8;
|
|
typedef unsigned char kwsysFundamentalType_UInt8;
|
|
#else
|
|
# error "No native data type can represent an 8-bit integer."
|
|
#endif
|
|
|
|
/* Select a 16-bit integer type. */
|
|
#if @KWSYS_NAMESPACE@_SIZEOF_SHORT == 2
|
|
typedef short kwsysFundamentalType_Int16;
|
|
typedef unsigned short kwsysFundamentalType_UInt16;
|
|
#elif @KWSYS_NAMESPACE@_SIZEOF_INT == 2
|
|
typedef int kwsysFundamentalType_Int16;
|
|
typedef unsigned int kwsysFundamentalType_UInt16;
|
|
#else
|
|
# error "No native data type can represent a 16-bit integer."
|
|
#endif
|
|
|
|
/* Select a 32-bit integer type. */
|
|
#if @KWSYS_NAMESPACE@_SIZEOF_INT == 4
|
|
typedef int kwsysFundamentalType_Int32;
|
|
typedef unsigned int kwsysFundamentalType_UInt32;
|
|
#elif @KWSYS_NAMESPACE@_SIZEOF_LONG == 4
|
|
typedef long kwsysFundamentalType_Int32;
|
|
typedef unsigned long kwsysFundamentalType_UInt32;
|
|
#else
|
|
# error "No native data type can represent a 32-bit integer."
|
|
#endif
|
|
|
|
/* Select a 64-bit integer type. */
|
|
#if @KWSYS_NAMESPACE@_SIZEOF_LONG == 8
|
|
typedef signed long kwsysFundamentalType_Int64;
|
|
typedef unsigned long kwsysFundamentalType_UInt64;
|
|
/* Whether UInt64 can be converted to double. */
|
|
# define @KWSYS_NAMESPACE@_CAN_CONVERT_UI64_TO_DOUBLE 1
|
|
#elif @KWSYS_NAMESPACE@_USE_LONG_LONG && @KWSYS_NAMESPACE@_SIZEOF_LONG_LONG == 8
|
|
typedef signed long long kwsysFundamentalType_Int64;
|
|
typedef unsigned long long kwsysFundamentalType_UInt64;
|
|
/* Whether UInt64 can be converted to double. */
|
|
# define @KWSYS_NAMESPACE@_CAN_CONVERT_UI64_TO_DOUBLE 1
|
|
#elif @KWSYS_NAMESPACE@_USE___INT64 && @KWSYS_NAMESPACE@_SIZEOF___INT64 == 8
|
|
typedef signed __int64 kwsysFundamentalType_Int64;
|
|
typedef unsigned __int64 kwsysFundamentalType_UInt64;
|
|
/* Whether UInt64 can be converted to double. */
|
|
# define @KWSYS_NAMESPACE@_CAN_CONVERT_UI64_TO_DOUBLE @KWSYS_CAN_CONVERT_UI64_TO_DOUBLE@
|
|
#else
|
|
# error "No native data type can represent a 64-bit integer."
|
|
#endif
|
|
|
|
#if defined(__cplusplus)
|
|
} /* extern "C" */
|
|
#endif
|
|
|
|
/* If we are building a kwsys .c or .cxx file, let it use these macros.
|
|
Otherwise, undefine them to keep the namespace clean. */
|
|
#if !defined(KWSYS_NAMESPACE)
|
|
# undef kwsys_ns
|
|
# undef kwsysEXPORT
|
|
# if !defined(KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
|
|
# undef kwsysFundamentalType
|
|
# undef kwsysFundamentalType_Int8
|
|
# undef kwsysFundamentalType_UInt8
|
|
# undef kwsysFundamentalType_Int16
|
|
# undef kwsysFundamentalType_UInt16
|
|
# undef kwsysFundamentalType_Int32
|
|
# undef kwsysFundamentalType_UInt32
|
|
# undef kwsysFundamentalType_Int64
|
|
# undef kwsysFundamentalType_UInt64
|
|
# endif
|
|
#endif
|
|
|
|
/* If building a C or C++ file in kwsys itself, give the source file
|
|
access to the configured macros without a configured namespace. */
|
|
#if defined(KWSYS_NAMESPACE)
|
|
# define KWSYS_SIZEOF_CHAR @KWSYS_NAMESPACE@_SIZEOF_CHAR
|
|
# define KWSYS_SIZEOF_SHORT @KWSYS_NAMESPACE@_SIZEOF_SHORT
|
|
# define KWSYS_SIZEOF_INT @KWSYS_NAMESPACE@_SIZEOF_INT
|
|
# define KWSYS_SIZEOF_LONG @KWSYS_NAMESPACE@_SIZEOF_LONG
|
|
# define KWSYS_SIZEOF_LONG_LONG @KWSYS_NAMESPACE@_SIZEOF_LONG_LONG
|
|
# define KWSYS_SIZEOF___INT64 @KWSYS_NAMESPACE@_SIZEOF___INT64
|
|
# define KWSYS_USE_LONG_LONG @KWSYS_NAMESPACE@_USE_LONG_LONG
|
|
# define KWSYS_USE___INT64 @KWSYS_NAMESPACE@_USE___INT64
|
|
# define KWSYS_CHAR_IS_SIGNED @KWSYS_NAMESPACE@_CHAR_IS_SIGNED
|
|
# define KWSYS_CAN_CONVERT_UI64_TO_DOUBLE @KWSYS_NAMESPACE@_CAN_CONVERT_UI64_TO_DOUBLE
|
|
#endif
|
|
|
|
#endif
|