1//
2// Config.h
3//
4// Library: Foundation
5// Package: Core
6// Module: Foundation
7//
8// Feature configuration for the POCO libraries.
9//
10// Copyright (c) 2006-2016, Applied Informatics Software Engineering GmbH.
11// and Contributors.
12//
13// SPDX-License-Identifier: BSL-1.0
14//
15
16
17#ifndef Foundation_Config_INCLUDED
18#define Foundation_Config_INCLUDED
19
20
21// NOTE: As of POCO C++ Libraries release 2.0.0, compiling POCO
22// without c++11 support is deprecated.
23
24// Define to enable C++14 support
25// #define POCO_ENABLE_CPP14
26
27
28// Define to force disable C++14 support
29// #define POCO_DISABLE_CPP14
30
31
32// Define to disable implicit linking
33// #define POCO_NO_AUTOMATIC_LIBS
34
35
36// Define to disable automatic initialization
37// Defining this will disable ALL automatic
38// initialization framework-wide (e.g. Net
39// on Windows, all Data back-ends, etc).
40//
41// #define POCO_NO_AUTOMATIC_LIB_INIT
42
43
44// Define to disable FPEnvironment support
45// #define POCO_NO_FPENVIRONMENT
46
47
48// Define if std::wstring is not available
49// #define POCO_NO_WSTRING
50
51
52// Define to disable shared memory
53// #define POCO_NO_SHAREDMEMORY
54
55
56// Define if no <locale> header is available (such as on WinCE)
57// #define POCO_NO_LOCALE
58
59
60// Define to desired default thread stack size
61// Zero means OS default
62#ifndef POCO_THREAD_STACK_SIZE
63 #define POCO_THREAD_STACK_SIZE 0
64#endif
65
66
67// Define to override system-provided
68// minimum thread priority value on POSIX
69// platforms (returned by Poco::Thread::getMinOSPriority()).
70// #define POCO_THREAD_PRIORITY_MIN 0
71
72
73// Define to override system-provided
74// maximum thread priority value on POSIX
75// platforms (returned by Poco::Thread::getMaxOSPriority()).
76// #define POCO_THREAD_PRIORITY_MAX 31
77
78
79// Define to disable small object optimization. If not
80// defined, Any and Dynamic::Var (and similar optimization
81// candidates) will be auto-allocated on the stack in
82// cases when value holder fits into POCO_SMALL_OBJECT_SIZE
83// (see below).
84//
85// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
86// !!! NOTE: Any/Dynamic::Var SOO will NOT work reliably !!!
87// !!! without C++11 (std::aligned_storage in particular). !!!
88// !!! Only comment this out if your compiler has support !!!
89// !!! for std::aligned_storage. !!!
90// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
91//
92#ifndef POCO_NO_SOO
93#ifndef POCO_ENABLE_SOO
94#define POCO_NO_SOO
95#endif
96#endif
97
98
99
100// Small object size in bytes. When assigned to Any or Var,
101// objects larger than this value will be alocated on the heap,
102// while those smaller will be placement new-ed into an
103// internal buffer.
104#if !defined(POCO_SMALL_OBJECT_SIZE) && !defined(POCO_NO_SOO)
105 #define POCO_SMALL_OBJECT_SIZE 32
106#endif
107
108
109// Define to disable compilation of DirectoryWatcher
110// on platforms with no inotify.
111// #define POCO_NO_INOTIFY
112
113
114// Following are options to remove certain features
115// to reduce library/executable size for smaller
116// embedded platforms. By enabling these options,
117// the size of a statically executable can be
118// reduced by a few 100 Kbytes.
119
120
121// No automatic registration of FileChannel in
122// LoggingFactory - avoids FileChannel and friends
123// being linked to executable.
124// #define POCO_NO_FILECHANNEL
125
126
127// No automatic registration of SplitterChannel in
128// LoggingFactory - avoids SplitterChannel being
129// linked to executable.
130// #define POCO_NO_SPLITTERCHANNEL
131
132
133// No automatic registration of SyslogChannel in
134// LoggingFactory - avoids SyslogChannel being
135// linked to executable on Unix/Linux systems.
136// #define POCO_NO_SYSLOGCHANNEL
137
138
139// Define to enable MSVC secure warnings
140// #define POCO_MSVC_SECURE_WARNINGS
141
142
143// No support for INI file configurations in
144// Poco::Util::Application.
145// #define POCO_UTIL_NO_INIFILECONFIGURATION
146
147
148// No support for JSON configuration in
149// Poco::Util::Application. Avoids linking of JSON
150// library and saves a few 100 Kbytes.
151// #define POCO_UTIL_NO_JSONCONFIGURATION
152
153
154// No support for XML configuration in
155// Poco::Util::Application. Avoids linking of XML
156// library and saves a few 100 Kbytes.
157// #define POCO_UTIL_NO_XMLCONFIGURATION
158
159
160// No IPv6 support
161// Define to disable IPv6
162// #define POCO_NET_NO_IPv6
163
164
165// Windows CE has no locale support
166#if defined(_WIN32_WCE)
167 #define POCO_NO_LOCALE
168#endif
169
170
171// Enable the poco_debug_* and poco_trace_* macros
172// even if the _DEBUG variable is not set.
173// This allows the use of these macros in a release version.
174// #define POCO_LOG_DEBUG
175
176
177// Uncomment to disable the use of bundled OpenSSL binaries
178// (Windows only)
179// #define POCO_EXTERNAL_OPENSSL
180
181
182// Define to prevent changing the suffix for shared libraries
183// to "d.so", "d.dll", etc. for _DEBUG builds in Poco::SharedLibrary.
184// #define POCO_NO_SHARED_LIBRARY_DEBUG_SUFFIX
185
186
187// Disarm POCO_DEPRECATED macro.
188// #define POCO_NO_DEPRECATED
189
190
191#endif // Foundation_Config_INCLUDED
192