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 // Define to disable implicit linking
22 // #define POCO_NO_AUTOMATIC_LIBS
23 
24 
25 // Define to disable automatic initialization
26 // Defining this will disable ALL automatic
27 // initialization framework-wide (e.g. Net
28 // on Windows, all Data back-ends, etc).
29 //
30 // #define POCO_NO_AUTOMATIC_LIB_INIT
31 
32 
33 // Define to disable FPEnvironment support
34 // #define POCO_NO_FPENVIRONMENT
35 
36 
37 // Define if std::wstring is not available
38 // #define POCO_NO_WSTRING
39 
40 
41 // Define to disable shared memory
42 // #define POCO_NO_SHAREDMEMORY
43 
44 
45 // Define if no <locale> header is available (such as on WinCE)
46 // #define POCO_NO_LOCALE
47 
48 
49 // Define to desired default thread stack size
50 // Zero means OS default
51 #ifndef POCO_THREAD_STACK_SIZE
52 	#define POCO_THREAD_STACK_SIZE 0
53 #endif
54 
55 
56 // Define to override system-provided
57 // minimum thread priority value on POSIX
58 // platforms (returned by Poco::Thread::getMinOSPriority()).
59 // #define POCO_THREAD_PRIORITY_MIN 0
60 
61 
62 // Define to override system-provided
63 // maximum thread priority value on POSIX
64 // platforms (returned by Poco::Thread::getMaxOSPriority()).
65 // #define POCO_THREAD_PRIORITY_MAX 31
66 
67 
68 // Define to disable small object optimization. If not
69 // defined, Any and Dynamic::Var (and similar optimization
70 // candidates) will be auto-allocated on the stack in
71 // cases when value holder fits into POCO_SMALL_OBJECT_SIZE
72 // (see below).
73 //
74 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
75 // !!! NOTE: Any/Dynamic::Var SOO will NOT work reliably   !!!
76 // !!! without C++11 (std::aligned_storage in particular). !!!
77 // !!! Only comment this out if your compiler has support  !!!
78 // !!! for std::aligned_storage.                           !!!
79 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
80 //
81 #ifndef POCO_ENABLE_SOO
82 #define POCO_NO_SOO
83 #endif
84 
85 
86 // Small object size in bytes. When assigned to Any or Var,
87 // objects larger than this value will be alocated on the heap,
88 // while those smaller will be placement new-ed into an
89 // internal buffer.
90 #if !defined(POCO_SMALL_OBJECT_SIZE) && !defined(POCO_NO_SOO)
91 	#define POCO_SMALL_OBJECT_SIZE 32
92 #endif
93 
94 
95 // Define to disable compilation of DirectoryWatcher
96 // on platforms with no inotify.
97 // #define POCO_NO_INOTIFY
98 
99 // Define to force the use of PollingDirectoryWatcher
100 // #define POCO_DW_FORCE_POLLING
101 
102 
103 // Following are options to remove certain features
104 // to reduce library/executable size for smaller
105 // embedded platforms. By enabling these options,
106 // the size of a statically executable can be
107 // reduced by a few 100 Kbytes.
108 
109 
110 // No automatic registration of FileChannel in
111 // LoggingFactory - avoids FileChannel and friends
112 // being linked to executable.
113 // #define POCO_NO_FILECHANNEL
114 
115 
116 // No automatic registration of SplitterChannel in
117 // LoggingFactory - avoids SplitterChannel being
118 // linked to executable.
119 // #define POCO_NO_SPLITTERCHANNEL
120 
121 
122 // No automatic registration of SyslogChannel in
123 // LoggingFactory - avoids SyslogChannel being
124 // linked to executable on Unix/Linux systems.
125 // #define POCO_NO_SYSLOGCHANNEL
126 
127 
128 // Define to enable MSVC secure warnings
129 // #define POCO_MSVC_SECURE_WARNINGS
130 
131 
132 // No support for INI file configurations in
133 // Poco::Util::Application.
134 // #define POCO_UTIL_NO_INIFILECONFIGURATION
135 
136 
137 // No support for JSON configuration in
138 // Poco::Util::Application. Avoids linking of JSON
139 // library and saves a few 100 Kbytes.
140 // #define POCO_UTIL_NO_JSONCONFIGURATION
141 
142 
143 // No support for XML configuration in
144 // Poco::Util::Application. Avoids linking of XML
145 // library and saves a few 100 Kbytes.
146 // #define POCO_UTIL_NO_XMLCONFIGURATION
147 
148 
149 // No IPv6 support
150 // Define to disable IPv6
151 // #define POCO_NET_NO_IPv6
152 
153 
154 // Windows CE has no locale support
155 #if defined(_WIN32_WCE)
156 	#define POCO_NO_LOCALE
157 #endif
158 
159 
160 // Enable the poco_debug_* and poco_trace_* macros
161 // even if the _DEBUG variable is not set.
162 // This allows the use of these macros in a release version.
163 // #define POCO_LOG_DEBUG
164 
165 
166 // OpenSSL on Windows
167 //
168 // Poco has its own OpenSSL build system.
169 // See <https://github.com/pocoproject/openssl/blob/master/README.md>
170 // for details.
171 //
172 // These options are Windows only.
173 //
174 // To disable the use of Poco-provided OpenSSL binaries,
175 // define POCO_EXTERNAL_OPENSSL.
176 //
177 // Possible values:
178 //   POCO_EXTERNAL_OPENSSL_SLPRO:
179 //     Automatically link OpenSSL libraries from OpenSSL Windows installer provided
180 //     by Shining Light Productions <http://slproweb.com/products/Win32OpenSSL.html>
181 //     The (global) library search path must be set accordingly.
182 //   POCO_EXTERNAL_OPENSSL_DEFAULT:
183 //     Automatically link OpenSSL libraries from standard OpenSSL Windows build.
184 //     The (global) library search path must be set accordingly.
185 //   empty or other value:
186 //     Do not link any OpenSSL libraries automatically. You will have to edit the
187 //     Visual C++ project files for Crypto and NetSSL_OpenSSL.
188 #ifndef POCO_EXTERNAL_OPENSSL
189 	#define POCO_EXTERNAL_OPENSSL POCO_EXTERNAL_OPENSSL_SLPRO
190 #endif
191 
192 
193 // Define to prevent changing the suffix for shared libraries
194 // to "d.so", "d.dll", etc. for _DEBUG builds in Poco::SharedLibrary.
195 // #define POCO_NO_SHARED_LIBRARY_DEBUG_SUFFIX
196 
197 
198 // Disarm POCO_DEPRECATED macro.
199 // #define POCO_NO_DEPRECATED
200 
201 
202 #endif // Foundation_Config_INCLUDED
203