Config.h 5.6 KB

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