mirror of
https://github.com/reactos/reactos.git
synced 2024-09-11 05:12:43 +00:00
122 lines
3.4 KiB
C
122 lines
3.4 KiB
C
// STLport configuration file for Digital Mars C++
|
|
|
|
#define _STLP_COMPILER __DMC_VERSION_STRING__
|
|
|
|
#if (__DMC__ < 0x849)
|
|
# error "Digital Mars C++ compilers before version 8.49 are not supported!"
|
|
#endif
|
|
|
|
/* DMC goes too far in template instanciation and tries to fully instanciate
|
|
* slist<pair<const int, string> > for instance. The generation of assignment
|
|
* operator fails of course so we are force to use mutable key for this compiler.
|
|
*/
|
|
#define _STLP_NO_CONST_IN_PAIR
|
|
#define _STLP_DONT_SUP_DFLT_PARAM
|
|
|
|
#ifndef _CPPUNWIND
|
|
# define _STLP_NO_EXCEPTIONS
|
|
#endif
|
|
|
|
#ifndef _CPPRTTI
|
|
# define _STLP_NO_RTTI
|
|
#endif
|
|
|
|
#define _STLP_VENDOR_GLOBAL_CSTD
|
|
|
|
//DMC prefer enum to real static const variable because it do not consider
|
|
//static const as const enough to be used in switch declaration...
|
|
#define _STLP_STATIC_CONST_INIT_BUG
|
|
|
|
#if !defined (_WIN32)
|
|
// it's not fully supported on non-Win32 platforms
|
|
# define _STLP_NO_NATIVE_WIDE_FUNCTIONS
|
|
#endif
|
|
|
|
/* _STLP_NO_OWN_NAMESPACE is defined because Digital Mars' linker and libarian
|
|
appear to have problems with STLport namespaces. Summary of the issues:
|
|
|
|
STATIC: Digital Mars' librarian (lib.exe) may fail with "len <= IDMAX" error
|
|
if _STLP_DEBUG is defined. This is because Digital Mars' librarian uses
|
|
Microsoft OMF format, which limits identifier length to about 512 bytes.
|
|
With STLport namespaces, some identifiers such as Category_Map in
|
|
src/locale_catalog.cpp may exceed the maximum OMF identifier length.
|
|
|
|
DYNAMIC: Export issues with cin, cout, cerr, clog in src/iostream.cpp.
|
|
Exports in Digital Mars 'def' file must match mangled names in iostream.cpp.
|
|
With STLport namespaces, the mangled names in the intermediate files no
|
|
longer match these pre-defined exports. To use STLport dynamic libraries
|
|
and STLport namespaces with Digital Mars, the pre-defined exports in
|
|
src/iostream.cpp and the related Digital Mars 'def' files would need to be
|
|
revised. */
|
|
#define _STLP_NO_OWN_NAMESPACE 1
|
|
|
|
// select threads strategy
|
|
#if defined (_MT) && !defined (_STLP_NO_THREADS)
|
|
# define _STLP_THREADS
|
|
#endif
|
|
|
|
#ifndef _BOOL_DEFINED
|
|
# define _STLP_NO_BOOL
|
|
#else
|
|
# define _STLP_DONT_USE_BOOL_TYPEDEF
|
|
#endif
|
|
|
|
#if _INTEGRAL_MAX_BITS >= 64
|
|
# define _STLP_LONG_LONG long long
|
|
#endif
|
|
|
|
#define _STLP_MARK_PARAMETER_AS_UNUSED(X)
|
|
#define _STLP_DONT_USE_PRIV_NAMESPACE
|
|
#define _STLP_PRIV
|
|
#define _STLP_THROW_RETURN_BUG
|
|
|
|
#if !defined (_DLL)
|
|
# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT
|
|
#endif
|
|
|
|
#if (__DMC__ < 0x849)
|
|
# define _STLP_NO_BAD_ALLOC
|
|
#endif
|
|
|
|
#define _STLP_USE_ABBREVS
|
|
#define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER
|
|
|
|
#define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND
|
|
#define _STLP_EXPORT_DECLSPEC __declspec(dllexport)
|
|
#define _STLP_IMPORT_DECLSPEC __declspec(dllimport)
|
|
|
|
#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport)
|
|
#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport)
|
|
|
|
#define _STLP_NEED_ADDITIONAL_STATIC_DECLSPEC
|
|
|
|
//#define _STLP_IMPORT_TEMPLATE_KEYWORD __declspec(dllimport)
|
|
//#define _STLP_EXPORT_TEMPLATE_KEYWORD __declspec(dllexport)
|
|
|
|
#if defined (_WINDLL)
|
|
# define _STLP_DLL
|
|
#endif
|
|
#if defined (_DLL)
|
|
# define _STLP_RUNTIME_DLL
|
|
#endif
|
|
#include <stl/config/_detect_dll_or_lib.h>
|
|
#undef _STLP_RUNTIME_DLL
|
|
#undef _STLP_DLL
|
|
|
|
#if defined (_STLP_USE_DYNAMIC_LIB)
|
|
# define _STLP_USE_DECLSPEC 1
|
|
# if defined (__BUILDING_STLPORT)
|
|
# define _STLP_CALL __export
|
|
# else
|
|
# define _STLP_CALL
|
|
# endif
|
|
#else
|
|
# define _STLP_CALL
|
|
#endif
|
|
|
|
#include <stl/config/_auto_link.h>
|
|
|
|
#undef __SC__
|
|
|
|
#include <stl/config/_feedback.h>
|