2020-01-10 17:08:59 +01:00
cmake_minimum_required ( VERSION 3.5.0 )
2024-05-08 11:53:43 +02:00
cmake_policy ( VERSION 3.15.0 )
2012-06-26 14:40:26 +02:00
2015-09-26 11:11:23 +02:00
project ( Poco )
file ( STRINGS "${PROJECT_SOURCE_DIR}/libversion" SHARED_LIBRARY_VERSION )
2014-06-24 12:23:50 +02:00
# Read the version information from the VERSION file
2020-02-14 11:07:32 +01:00
file ( STRINGS "${PROJECT_SOURCE_DIR}/VERSION" PACKAGE_VERSION )
2015-02-04 04:46:25 +01:00
string ( REGEX REPLACE "([0-9]+)\\.[0-9]+\\.[0-9]+.*" "\\1" CPACK_PACKAGE_VERSION_MAJOR ${ PACKAGE_VERSION } )
2020-02-13 20:25:29 +01:00
string ( REGEX REPLACE "[0-9]+\\.([0-9]+)\\.[0-9]+.*" "\\1" CPACK_PACKAGE_VERSION_MINOR ${ PACKAGE_VERSION } )
2015-02-04 04:46:25 +01:00
string ( REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" CPACK_PACKAGE_VERSION_PATCH ${ PACKAGE_VERSION } )
2014-06-24 12:23:50 +02:00
2018-06-03 18:17:50 +02:00
set ( PROJECT_VERSION ${ CPACK_PACKAGE_VERSION_MAJOR } . ${ CPACK_PACKAGE_VERSION_MINOR } . ${ CPACK_PACKAGE_VERSION_PATCH } )
2014-07-09 15:34:50 +02:00
set ( RELEASE_NAME "Unstable-trunk" )
2018-06-03 18:17:50 +02:00
2012-06-26 14:40:26 +02:00
# Put the libaries and binaries that get built into directories at the
# top of the build tree rather than in hard-to-find leaf
# directories. This simplifies manual testing and the use of the build
# tree rather than installed Boost libraries.
2024-03-28 19:38:10 +01:00
set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ CMAKE_BINARY_DIR } /lib CACHE PATH "Library output" )
set ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ CMAKE_BINARY_DIR } /lib CACHE PATH "Archive output" )
2014-07-11 20:44:49 +02:00
# Windows DLLs are "runtime" for CMake. Output them to "bin" like the Visual Studio projects do.
2024-03-28 19:38:10 +01:00
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ CMAKE_BINARY_DIR } /bin CACHE PATH "Runtime output" )
2012-06-26 14:40:26 +02:00
2023-03-18 07:28:47 +01:00
# Reset output dirs for multi-config builds
foreach ( OUTPUTCONFIG ${ CMAKE_CONFIGURATION_TYPES } )
2024-01-16 10:42:54 +01:00
string ( TOUPPER ${ OUTPUTCONFIG } OUTPUTCONFIG )
2024-06-19 09:34:34 +02:00
set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_ ${ OUTPUTCONFIG } ${ CMAKE_BINARY_DIR } /bin CACHE PATH "Runtime output for ${OUTPUTCONFIG}" )
set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY_ ${ OUTPUTCONFIG } ${ CMAKE_BINARY_DIR } /lib CACHE PATH "Library output for ${OUTPUTCONFIG}" )
set ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_ ${ OUTPUTCONFIG } ${ CMAKE_BINARY_DIR } /lib CACHE PATH "Archive output for ${OUTPUTCONFIG}" )
2023-03-18 07:28:47 +01:00
endforeach ( OUTPUTCONFIG )
2012-12-16 03:40:40 +01:00
# Append our module directory to CMake
2018-06-03 18:17:50 +02:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_CURRENT_SOURCE_DIR } /cmake )
2015-09-26 11:11:23 +02:00
2019-04-22 23:47:11 +02:00
if ( CMAKE_VERSION VERSION_LESS "3.10" )
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_CURRENT_SOURCE_DIR } /cmake/V39 )
endif ( )
if ( CMAKE_VERSION VERSION_LESS "3.14" )
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_CURRENT_SOURCE_DIR } /cmake/V313 )
endif ( )
2012-06-26 14:40:26 +02:00
#################################################################################
# Setup C/C++ compiler options
#################################################################################
2017-10-24 20:52:12 +02:00
2023-12-13 02:16:35 +01:00
# C++17 compiler flags
2020-01-10 13:44:51 +01:00
include ( CXX1x )
2023-11-03 14:53:15 +01:00
check_for_cxx17_compiler ( CXX17_COMPILER )
2017-10-24 20:52:12 +02:00
2023-11-03 14:53:15 +01:00
# If a C++17 compiler is available, then set the appropriate flags
if ( CXX17_COMPILER )
set ( CMAKE_CXX_STANDARD 17 )
2020-02-14 11:07:32 +01:00
set ( CMAKE_CXX_STANDARD_REQUIRED ON )
2020-01-10 13:44:51 +01:00
else ( )
2023-11-03 14:53:15 +01:00
message ( FATAL_ERROR "Compiler does not support C++17." )
2017-10-24 20:52:12 +02:00
endif ( )
2018-06-03 18:17:50 +02:00
if ( NOT CMAKE_BUILD_TYPE )
2020-02-14 11:07:32 +01:00
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
2015-09-26 11:11:23 +02:00
endif ( )
2012-06-26 14:40:26 +02:00
Devel (#3586)
* Enable unit test in cmake build
* add BLOB SQLite test
* accept notifications by name (if they have one)
* catch std::exception on parsing
* fix a leak, add some table features
* few PostgreSQL fixes
* GH #2351: WebSocket docs
* Rename pcre internal symbols used by Poco to avoid symbol collision
https://github.com/pocoproject/poco/issues/2916
This patch was backported from https://github.com/pld-linux/poco/blob/master/pcre.patch
* Fix warning in clang
* Fix MSVC clang build fail
* Zip and SevenZip do not depend on Util, XML, JSON
* Added Test and new Pattern 'O' to only log the Filename not the full Path.
* Updated Comment
* Configuration to receive OCSP stapling response for client connections and callback implementation to verify the response if the server returns any response
* removed SDK version from project files
* run Application::initialize() in try-catch block
* fix Invalid condition [ICMPv4PacketImpl.cpp:234] #2783
* style fixes for #2935; check OpenSSL version
* Fixed issue 2945 (#2946)
* Fixed #2945
* Added unit tests for #2945
* Dissalow iterator on empty Var (#2945)
* Updated unit tests for #2945
* More concise unit tests for #2945
* Removed some more clutter (#2945)
* NetSSL_Win: fix potential endless loop due to wrong error handling
* fixed GH #2970: Poco::Data::TypeHandler<Poco::Nullable<T>>::prepare() must prepare with underlying type, not Poco::Data::Keywords::null
* Fixed linking with Data ODBC error on some platforms
* Fix set padding call for new versions of OpenSSL
* PatternFormatter priorityNames fix
* PKCS12Container: fix memory leaks on exceptions
* Fix constness of URI::getPathSegments
* Fix typo in the ThreadPool's docs
* cmake: use GNUInstallDirs
* Changed EventHandlerMap key (#3116)
* Changed EventHandlerMap key
Changed EventHandlerMap key from Socket to poco_socket_t to avoid errors in removing/access EventHandlerMap when for example we make an SSL handshake
* Changed EventHandlerMap key
Changed EventHandlerMap key from Socket to poco_socket_t to avoid errors in removing/access EventHandlerMap when for example we make an SSL handshake
* avoid too much call to sockfd() and impl()
* Fix configuration error while cross compiling (#3127)
During the configuration phase in a cross compilation scenario,
`include(InstallRequiredSystemLibraries)` fails even if
`MSVC_REDIST_DIR` is provided.
This should not be an hard error, in case someone wants to
compile/use the library, and not package it.
As explained on https://reviews.llvm.org/D41220, the most sensible fix
is to include `InstallRequiredSystemLibraries` only on a Windows host.
* crash when remove key from JSON::Object(JSON_PRESERVE_KEY_ORDER). (#3151)
* #3153: Poco::Data::ODBC [N]VARCHAR(MAX) wrong maxDataSize() result
* [SharedPtr] Poco::makeSharedArray #3200
* #3202: JWT: ESxxx signature must include padding for ECDSA R and S values
* feat(HashRange): port HashRange from boost
* chore(cmake): spelling typo fix
* fix(hashRange): change function names casing
* merge changes from 1.10.2
* formatting
* merge JSON formatting changes from 1.10.2
* added Application::windowSize()
* RemoteSyslogChannel/RemoteSyslogListener: make UDP buffer size configurable
* merge fix from 1.10.2
* merge Postgres fixes from 1.10.2
* #2993: The Sec-WebSocket-Key of WebSocket is always the same one
* formatting
* #2927
* remove HowToGetHelp page due to outdated information
* formatting
* #3044: Upgrade PCRE to 8.44
* #3086: Use POCO_IOS_INIT_HACK for Linux in combination with libc++
* #3095: Digest proxy authentication does not work in 1.10.1
* #3136: Fixed null character issue when parsing a JSON
* #3114: Added JSON Array::empty() method
* #3230: ECDSADigestEngine: include missing header
* fix include order
* include order
* fix(PollSet): #3248 #3249
* chore(UDPServer): fix spelling
* feat(SocketReactor): extract and expose poll() as a member function
* feat(Endpoint): add Endpoint (socket address directly wrapping native structures)
* fix(Endpoint): osx build, align family enum with patform, some other adjustments
* fix(EndpointTest): add missing include
* feat(Endpoint): add some low-level accessors
* feat(IPAddress): add functions returning addres as raw bytes
* feat(DatagramSocket): DatagramSocket does not allow IPV6_V6ONLY #3283
* feat(SocketReactor): Add completion handling to SocketReactor #3290
* feat(SocketReactor): Add completion handling to SocketReactor #3290 (add scheduled handlers and runOne())
* chore(Net-testsuite): fix some tests warnings
* feat: move semantics for sockets and addresses
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* feat(Net): Add move semantics to Net (sockets and addresses) #3296
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(SocketReactor): completion handling fixes and tests, separation of i/o and completion mutexes
* feat(SocketReactor): execute permanent completion handlers on when there are I/O handlers and the expired ones whenever they expire
* feat(Socket): expose lastError()
* fix(SocketReactor): windows compile
* windows fixes, remove Endnpoint
* feat(Socket): expose error()
* feat(PollSet): Use select() on windows for PollSet #3339
* add ci.yml
* fix compile errors
* revert(SocketReactor): back to devel branch
* feat(SocketProactor): initial version w/ completion handler and executor
* chore(SocketProactor): Sockets package
* chore(ci): add dir and run script
* feat(SocketProactor): add socket error handling #3357
* modify(SocketProactor): wait for completion handlers availability #3357
* feat(PollSet): Make PollSet::poll() interruptible #3359
* modify(SocketProactor): make addSend() public #3357
* modify(SocketProactor): platform non-interrupt sleep without Poco thread #3357
* modify(SocketProactor): allow restart #3357
* fix(SocketProactor): windows fixes and VS build
* fix(SocketProactor): race when stop() is called before run()
* fix(Socket): Windows SO_REUSEADDR is neither reliable nor safe #3380
* fix(SocketProactor): rvalue refs should not be const
* fix(DNS): DNS::hostByAddress not thread-safe #3381
* chore(SocketProactor): remove unnecessary this capture
* fix(IPAddress): IPAddress::tryParse does not work for :: #3385
* fix(SoccketProactor): add some try/catch safety nets; broaden the work list mutex coverage to protect all function access
* fix(SocketProactor): use Poco::Mutex only
* fix(SocketProactor): scheduled work skipped in the absence of socket events
* fix(SocketProactor): test
* chore (SocketProactor): add some state members
* Fix clang linker problem by defining POCO_NO_AUTOMATIC_LIBS (#3177)
* Dev/devel 1.12.0 (#3585)
* fix(PollSet): #3248 #3249
* bump version to 1.11.0
* updated changelog|
* #3299: NetSSL: Allow per-Context InvalidCertificateHandler
* #3022: Process::isRunning(PID pid) causes handle leak on Windows
* #3022: fix for WinCE
* upgrade bundled pdjson to latest master
* update build configs - add support for Apple Silicon
* #2906, #2904: Support environments without hardware floating point
* #3130: fix error handling: report original error before close()
* #3107: remove unused variable
* #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage
* Poco::trim*() code cleanup - use ptrdiff_t instead of int; additional test cases
* #3182 Poco::Process:launch on MacOS BigSur: limit maximum number of file descriptors to close before exec() to 100000
* #3278: Fixing no hardware floating point support - Part II
* #3090: Do not initialize value with undefined behavior
* #3163: Correct Var::parse null value
* #3196: std::forward for Poco::Optional ctor with rvalue
* #3068: Documented ENABLE_JWT option
* #3041: PostgreSQL and TEXT column type
* #3099: Fixed Postgres extraction into Dynamic::Var
* #3138: Add support of arch riscv32
* #2825: riscv: Enable double operations when using double float abi
* #3166: Fix PostgresSQL BLOB extractor
* #3237: An error in the documentation for Poco/JSON/Parser.h
* #3193: ServerApplication::registerService() unquoted path security vulnerability
* #3266: Order of Util::Application::uninitialize() is not in reverse as documented
* #3215: XML parser returns item from different element in a array
* #3282: Update constant in setContentType documentation
* #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig
* #2418: SecureServerSocket doesn't work with IpV6
* fix warnings
* #3019: ObjectPool wait on borrow condition fix
* #3224: Remove SSL23 support from Poco/Crypto
* #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
* disallow SSLv3
* #3269: Poco::Net::Context initialization with empty certificateFile
* #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint
* #3260: Memory leak in EVPPKey::loadKey used with files & wrong password
* #3157: fix(openssl): add missing dependency to OpenSSL components
* #3066: CMake warning about MYSQL casing
* #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists
* #3217: CMake: warning message with -DPOCO_STATIC confusing
* #3274: Fix localtime_r for VxWorks 6.9 and later
* #2746, #3169: Fix race condition on TCPServerDispatcher stop
* #3092: add more detailed error description when LoadLibrary fails|
* #3074: Fix sessions may not return back to the pool
* #3309: optimize parsing from stream (no copying of entire JSON to memory); limit maximum depth to avoid stack overflow with malicious documents (fuzzing - #3285); code cleanup
* JSON Parser performance improvements
* #3310: Upgrade bundled SQLite to 3.35.5
* fix UB/bad cast in TCPServerTest.cpp
* add comment regarding potential UB in AnyTest::testCastToReference()
* support sanitizers in build configs
* bump version
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* remove failing Android build; add sanitizer builds
* update postgres version
* fix warning
* fix warning
* add GitHub workflow
* fix ci.yml
* fix ci.yml
* additional ci builds
* fix ci.yml for macos and windows
* fix(double-conversion): Upgrade bundled double-conversion #3313
* ci fixes
* #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak
* testReuseSession: remove bad checks for session reuse
* investigate failing test
* investigate failing test
* investigate failing test
* investigate failing test
* ci
* remove travis and appveyor
* ci, readme
* ci fixes
* fix ci
* fix ci
* fix ci
* fix memory leak when ignoring test error/failure
* fix ci
* don't define UNREACHABLE as poco_bugcheck as it triggers 'control reaches end of non-void function' warning
* add Linux cross build, build Data libs on macos
* fix ci
* add MySQL include/lib search paths for Homebrew
* ci fixes
* ci fixes
* ci fixes
* ci fixes
* fix indluce paths for brew mysql
* #3317: Data::MySQL MySQL headers and library search paths
* fix ARM-Linux build config
* fix MySQL.make
* update FindMySQL.cmake
* fix(SocketReactor): fix dataCollection test
* chore: remove troubleshooting help leftovers
* #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]]
* fix potential crash in testAsyncNotify: don't delete event object while async notification is still in progress
* fix(PollSetTest): change connect to blocking
* added ActiveRecord library and compiler
* added dependencies file
* update copyright dates
* ActiveRecord: project files and fixes for MSVC
* ci: enable ActiveRecord on Windows
* fix(PollSetTest): remove poll timing check (fails on msvc ci)
* fix ActiveRecord CMake build and configuration
* feat(build): add gen directory (for generated sources) and macchina lib link dirs (if needed)
* #3318: Data: Support Poco::UUID for data binding
* ODBC tests for UUID, updated ActiveRecord projects
* ActiveRecord user guide
* update ActiveRecord documentation
* documentation fixes
* #3321: manually merge ODBC text encoding support
* CppParser: merge changes from internal repository
* updated Makefile
* AbstractObserver::accepts() - add optional name parameter
* fix SharedPtr::makeSharedArray() [merge from devel]
* remove blank line
* #2895, #2935: support OCSP stapling
* style
* clang support (merge from devel)
* #3322: remove useless struct
* link libmariadb instead of libmysql if headers indicate MariaDB
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix PageCompiler cross-compile; fix Content-Security-Policy header
* remove Data release notes page
* style, remove unused var
* update docs
* improve BLOB handling, clean-up code
* fix(ICMPv4Packet): [asan] Undefined behavior in ICMPv4PacketImpl.cpp #3326
* fix(NumericString): Bug in NumericString with decSep != '.' #3159
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(PollSet): #3248 #3249
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* style/whitespace
* fix warnings
* add version resources to executables
* style
* whitespace
* update changelog
* cpproj: also copy testsuite/include if it's there
* branch off 1.11.1
* #3335: XML error when build 1.11.0
* #3353: add POCO_NO_FORK_EXEC CMake option
* #3381: DNS::hostByAddress not thread-safe
* #3400: fix std::localtime not thread safe
* #3221: Crash reported on Windows in X509Certificate verification
* #3344: [bug] MacOS bundle destination path is not set
* #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
* #3363: Fixed compilation error with MongoDB::Connection and Util::Application
* #3377: Correct Poco::Path::configHome() and dataHome() documentation for Windows
* #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
* #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
* #2966: SocketReactor loads one core of CPU up to 100%
* #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
* use OpenSSL 1.1.1 on macOS
* add missing include search path
* upgrade bundled PCRE to 8.45
* upgrade bundled SQLite to 3.36.0
* updated changelog
* fix brew OpenSSL version
* branch off poco-1.11.2
* #3506: Upgrade bundled expat to 2.4.4
* manually merge #3448, part 1 (Crypto)
* manually merge #3448, part 1 (NetSSL)
* #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
* #3448: fix version check
* #3465: NetSSL_Win: bad error handling when decodeMessage() fails
* #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
* #3505: JSON::PrintHandler.value(bool) prints incorrect value
* #3527: Upgrade bundled expat to 2.4.5
* #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
* #3507: Reference counting for bound configuration in Util::Option is broken
* #3518: Expat version check in #defines incorrect
* #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
* CI: don't build PageCompiler in ARM cross build
* detect ARM64 on Windows
* updated README.md
* ProGen: support generation of VS 2022 project files
* ci: add windows 2022
* fix library name
* remove unused CppUnit headers
* added VS2022 project files
* #3530: Upgrade bundled expat to 2.4.6
* #3538: Upgrade bundled expat to 2.4.7
* Add back NIOS2 double conversion detection to fix compile errors
The commit
https://github.com/pocoproject/poco/commit/558324f672d824300498060aff63356bc6bb8097
removed the nios2 support, which was originally added in
https://github.com/pocoproject/poco/commit/e7b91e8125d6910b53f94de5be4bb53f38dc77c1
This commit add it back.
Signed-off-by: Julien Olivain <ju.o@free.fr>
* #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
* #3524: remove XML and Util dependencies in Zip/SevenZip
* #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
* #3495: Array::operator[] should not throw
* #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
* #3509: fix dst and utcOffset handling for Dublin time zone
* #2882: another attempt at fixing it that should also work on other platforms
* remove unused method in Timezone_WIN32.cpp
* use tm_gmtoff on Linux
* Basic support for OpenSSL 3.0.0 (#3448)
* updated README.md
* Create close-inactive-issues.yml
* check return codes of EVP_CIPHER_CTX_new and EVP_CipherInit
Especially with OpenSSL 3, it is possible that EVP_CipherInit may fail even when
passed a non-null cipher[1]. Without the checking, it will finally get to a
segfault.
[1] https://github.com/openssl/openssl/issues/16864
* Automatically load default and legacy providers with OpenSSL 3
Without the legacy provider [1], some ciphers are not available. For example,
the 'des-ecb' one used by test sutie is missed and the test will fail.
[1] OSSL_PROVIDER-LEGACY(7ossl)
* Make p12 ca order the same as pem
OpenSSL < 3 returns p12 ca order in reversed order. This is fixed
in OpenSSL 3. We work around it with old OpenSSL.
See:
https://github.com/openssl/openssl/issues/16421
https://github.com/openssl/openssl/pull/12641
https://github.com/jeroen/openssl/commit/f5eb85eb0fd432406a24abda6511c449eaee6162
* Implement SSL abort handling on OpenSSL 3
On an unexpected EOF, versions before OpenSSL 3.0 returned SSL_ERROR_SYSCALL,
nothing was added to the error stack, and errno was 0. Since OpenSSL 3.0 the
returned error is SSL_ERROR_SSL with a meaningful error on the error stack.[1]
[1] SSL_GET_ERROR(3ossl)
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
* fix(Socket): shutdown fixes from pull #3448
* #3500: Sandbox all iFrames in PocoDoc
* #3549; replace assert with assertTrue
* #3553: Upgrade bundled zlib to 1.2.12
* #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
* disable OpenSSL deprecation warnings
* chore: cleanup
* fix(X509Certificate): add missing string format
* #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
* feat(EVP): 3.0 support
- add EVPCipher
- additional EVPPKey constructors
- tests
- fix and improve openssl-related exceptions
Transition towards 3.0 support;
deprecating direct EC and RSA interface portions.
* fix(openssl): pre 3.0 compile
* feat(Envelope): Add envelope to crypto #3561
* fix(Envelope): mac/clang compile
* fix(Any): #3297 #3514
* #3562: fixed OpenSSL setup/shutdown
* fix exception text
* #3563: Remove support for OpenSSL < 1.0
* ci jobs for OpenSSL 1.1 and 3
* updated CHANGELOG
* updated .vscode
* Refactor/any soo (#3564)
* refactor(Any): SOO
- encapsulate data holders
- add missing gets and ops
- eliminate g++ warnings with enable_if's
- default enable SOO
* refactor(Placeholder): encapsulate SOO memory management and fix leaks; cf. #3297 #3514
* fix(Placeholder): asan errors and add tests
cf. #3297 #3514
* fix(SSLManager): Race condition in SSLManager #3558
* remove unused include
* updated copyright date
* PocoDoc: fix iframe sandboxing
* fix(SHA2Engine): cannot use HMACEngine with SHA2Engine #3421
* refactor(Placeholder): ifdef POCO_NO_SOO only in Placeholder and remove it anywhere else (#3566)
* refactor(Placeholder): more SOO consolidation and optimization
* fix(FPEnvironment): Visual Studio Warning C4244 #3543
* fix(Extractor): move extraction decoding to AbstractExtractor #3396
* Netssl/openssl3 (#3575)
* feat(Context): DH init openssl3 port (1/2 hardcoded params)
* create poco-1.11.3 branch, bump version
* update copyright date
* #3567: check legacy provider existence for legacy exception #3567
* fix(Placeholder): comparison for zero value
* feat(Context): DH init openssl3 port (2/2 params from file)
* test(HTTPSClientSession): try/catch to understand CI failure
* chore(cmake): copy the DH parameters file
* fix(OpenSSLInitializer): unload provider on uninitialize
* chore(HTTPSClientSessionTest): remove try/catch
* fix(OpenSSLInitializer): fix provider unloading
* feat(CppUnit): make tests exceptions more descriptive
* chore(CppUnit): a more descriptive name for callback
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
* fix(Foundation): update VS 2019 platform version
* chore(Data): update VS project files (add Transcoder #3396)
* fix(Data): Poco::Data::ODBC-dbEncoding property not used for insert/update #3396
* fix(Data): add transcoder to Makefile #3396
* fix(JWT): remove duplicate test functions after merge
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
* #2755: Fix MySQL's LONGBLOB/LONGTEXT not allocating enough space (#3474)
* Unit test for bug #2755.
* Removed condition to set buffer length to 0.
* Fixes to unit tests for LONGBLOB/TEXT data type.
* Adjusted buffer sizes to accommodate LONGBLOBs.
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
* fix(Data): MySQL UUID binding temporary string #3587
* feat(CI): add MySQL tests to CI #3588
* fix(CI): remove mysql client dev (using mariadb) #3588
* fix(CI): another shot at mysql
* fix(Net/testsuite): add missing include
* fix(DatagramSocket): Socket::available does not always return correct value for UDP #3589
* fix(SocketProactor): few improvements (#3357)
* fix(ICMPsocketTest): change appinf (doesn't respond to ping) to github
* fix(PollSet): windows fixes
* fix(PollSet): windows implementation fixes (multi-fd_set select); minor reactor fixes
* Extract JSON type as string (#3491)
* Declared JSON as string data
# Conflicts:
# Data/include/Poco/Data/MetaColumn.h
# Data/src/RecordSet.cpp
# Data/src/StatementImpl.cpp
* Added JSON extractor as string
* Added unit test
* Update comment
Co-authored-by: Joerg-Christian Boehme <joerg@chaosdorf.de>
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: tbarbier <thomas.barbier@amadeus.com>
Co-authored-by: Linquize <linquize@yahoo.com.hk>
Co-authored-by: Jan Kevin Dick <fixed-term.jan.dick@de.bosch.com>
Co-authored-by: Neelima Patil <neelima.patil@honeywell.com>
Co-authored-by: akete <akete@users.noreply.github.com>
Co-authored-by: YuriAzathoth <iamkiller@mail.com>
Co-authored-by: Jonathan Horvath <byteme@bytedreamer.com>
Co-authored-by: Maksim Kita <kitaetoya@gmail.com>
Co-authored-by: Alexander Galanin <al@galanin.nnov.ru>
Co-authored-by: Thomas Sablik <thomas.sablik@wombytes.de>
Co-authored-by: Nikita Migunov <nmigunov@iponweb.net>
Co-authored-by: Ben Wolsieffer <benwolsieffer@gmail.com>
Co-authored-by: micheleselea <michele.pradella@selea.com>
Co-authored-by: Federico Kircheis <federico.kircheis@gmail.com>
Co-authored-by: fenghao119 <fenghao119@gmail.com>
Co-authored-by: Alex Fabijanic <alex@pocoprojecct.org>
Co-authored-by: linquize <linquize2@yahoo.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: hectots <monkey.instinct@gmail.com>
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
Co-authored-by: Hernan Martinez <hernan.c.martinez@gmail.com>
2022-05-15 18:05:56 +02:00
# Enable standard installation directories
include ( GNUInstallDirs )
2014-08-22 17:01:09 +02:00
# Include some common macros to simpilfy the Poco CMake files
include ( PocoMacros )
2024-07-29 08:16:50 +02:00
option ( BUILD_SHARED_LIBS "Build using shared libraries" ON )
2019-09-02 11:48:01 +02:00
2024-10-09 21:53:49 +02:00
set ( POCO_SANITIZEFLAGS CACHE STRING "Compiler-dependent sanitizer flags (like -fsanitize=address or /fsanitize=address" )
2019-09-02 11:48:01 +02:00
if ( MSVC )
2020-02-14 11:07:32 +01:00
option ( POCO_MT "Set to OFF|ON (default is OFF) to control build of POCO as /MT instead of /MD" OFF )
2020-02-13 20:07:47 +01:00
2020-02-14 11:07:32 +01:00
if ( BUILD_SHARED_LIBS AND POCO_MT )
message ( FATAL_ERROR "Cannot have both BUILD_SHARED_LIBS and POCO_MT" )
endif ( )
2024-10-09 21:53:49 +02:00
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zc:__cplusplus" )
2019-09-02 11:48:01 +02:00
endif ( )
option ( ENABLE_NETSSL_WIN "Enable NetSSL Windows" OFF )
2024-09-14 19:24:01 +02:00
#
# Path to OpenSSL installation root can be provided by setting a variable
# OPENSSL_ROOT_DIR.
#
2019-09-02 11:48:01 +02:00
2019-07-31 19:33:20 +02:00
if ( ENABLE_CRYPTO OR ENABLE_NETSSL OR ENABLE_JWT )
2018-06-03 18:17:50 +02:00
find_package ( OpenSSL REQUIRED )
else ( )
find_package ( OpenSSL )
endif ( )
if ( OPENSSL_FOUND )
option ( ENABLE_NETSSL "Enable NetSSL" ON )
option ( ENABLE_CRYPTO "Enable Crypto" ON )
2019-07-31 19:33:20 +02:00
option ( ENABLE_JWT "Enable JWT" ON )
2018-06-03 18:17:50 +02:00
else ( )
option ( ENABLE_NETSSL "Enable NetSSL" OFF )
option ( ENABLE_CRYPTO "Enable Crypto" OFF )
2019-07-31 19:33:20 +02:00
option ( ENABLE_JWT "Enable JWT" OFF )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_APACHECONNECTOR )
2020-02-14 11:07:32 +01:00
find_package ( APR REQUIRED )
2018-10-10 13:43:34 +02:00
find_package ( APRUTIL REQUIRED )
find_package ( Apache2 REQUIRED )
2018-06-03 18:17:50 +02:00
else ( )
2020-02-14 11:07:32 +01:00
find_package ( APR )
2018-10-10 13:43:34 +02:00
find_package ( APRUTIL )
find_package ( Apache2 )
2018-06-03 18:17:50 +02:00
endif ( )
2018-10-10 13:43:34 +02:00
if ( APR_FOUND AND APRUTIL_FOUND AND APACHE2_FOUND AND
2020-02-14 11:07:32 +01:00
E X I S T S $ { P R O J E C T _ S O U R C E _ D I R } / A p a c h e C o n n e c t o r A N D E N A B L E _ A P A C H E C O N N E C T O R )
option ( ENABLE_APACHECONNECTOR "Enable ApacheConnector" ON )
2018-06-03 18:17:50 +02:00
else ( )
2020-02-14 11:07:32 +01:00
option ( ENABLE_APACHECONNECTOR "Enable ApacheConnector" OFF )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_DATA_MYSQL )
2020-02-14 11:07:32 +01:00
find_package ( MySQL REQUIRED )
2018-06-03 18:17:50 +02:00
else ( )
2020-02-14 11:07:32 +01:00
find_package ( MySQL )
2018-06-03 18:17:50 +02:00
endif ( )
if ( MYSQL_FOUND )
2020-02-14 11:07:32 +01:00
option ( ENABLE_DATA "Enable Data" ON )
option ( ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" ON )
2018-06-03 18:17:50 +02:00
else ( )
2020-02-14 11:07:32 +01:00
option ( ENABLE_DATA "Enable Data" OFF )
option ( ENABLE_DATA_MYSQL "Enable Data MySQL or MariaDB" OFF )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_DATA_POSTGRESQL )
2020-02-14 11:07:32 +01:00
find_package ( PostgreSQL REQUIRED )
2018-06-03 18:17:50 +02:00
else ( )
2020-02-14 11:07:32 +01:00
find_package ( PostgreSQL )
2018-06-03 18:17:50 +02:00
endif ( )
2019-07-30 11:19:49 +02:00
2018-10-10 13:43:34 +02:00
if ( PostgreSQL_FOUND )
2021-06-18 12:42:15 +02:00
option ( ENABLE_DATA "Enable Data" ON )
option ( ENABLE_DATA_POSTGRESQL "Enable Data PosgreSQL" ON )
2018-06-03 18:17:50 +02:00
else ( )
2021-06-18 12:42:15 +02:00
option ( ENABLE_DATA "Enable Data" OFF )
option ( ENABLE_DATA_POSTGRESQL "Enable Data PosgreSQL" OFF )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_DATA_ODBC )
2020-02-14 11:07:32 +01:00
find_package ( ODBC REQUIRED )
2018-06-03 18:17:50 +02:00
else ( )
2020-02-14 11:07:32 +01:00
find_package ( ODBC )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ODBC_FOUND )
2020-02-14 11:07:32 +01:00
option ( ENABLE_DATA "Enable Data" ON )
option ( ENABLE_DATA_ODBC "Enable Data ODBC" ON )
2018-06-03 18:17:50 +02:00
else ( )
2020-02-14 11:07:32 +01:00
option ( ENABLE_DATA "Enable Data" OFF )
option ( ENABLE_DATA_ODBC "Enable Data ODBC" OFF )
2018-06-03 18:17:50 +02:00
endif ( )
2014-08-22 17:01:09 +02:00
# Allow enabling and disabling components
2024-01-16 10:42:54 +01:00
option ( ENABLE_FOUNDATION "Enable Foundation" ON )
2018-02-14 10:25:27 +01:00
option ( ENABLE_ENCODINGS "Enable Encodings" ON )
2018-02-14 12:11:37 +01:00
option ( ENABLE_ENCODINGS_COMPILER "Enable Encodings Compiler" OFF )
2018-02-14 10:25:27 +01:00
option ( ENABLE_XML "Enable XML" ON )
option ( ENABLE_JSON "Enable JSON" ON )
2014-08-22 17:01:09 +02:00
option ( ENABLE_MONGODB "Enable MongoDB" ON )
2018-06-03 18:17:50 +02:00
option ( ENABLE_DATA_SQLITE "Enable Data SQlite" ON )
2017-11-10 12:25:53 +01:00
option ( ENABLE_REDIS "Enable Redis" ON )
2024-04-03 22:38:56 +02:00
option ( ENABLE_DNSSD "Enable DNSSD" OFF )
option ( ENABLE_DNSSD_DEFAULT "Enable DNSSD Default" OFF )
option ( ENABLE_DNSSD_AVAHI "Enable DNSSD Avahi" OFF )
option ( ENABLE_DNSSD_BONJOUR "Enable DNSSD Bonjour" OFF )
2022-05-17 08:18:54 +02:00
option ( ENABLE_PROMETHEUS "Enable Prometheus" ON )
2014-12-22 00:06:53 +01:00
option ( ENABLE_PDF "Enable PDF" OFF )
2014-08-22 17:01:09 +02:00
option ( ENABLE_UTIL "Enable Util" ON )
option ( ENABLE_NET "Enable Net" ON )
2019-09-02 11:48:01 +02:00
2014-12-22 00:06:53 +01:00
option ( ENABLE_SEVENZIP "Enable SevenZip" OFF )
2014-08-22 17:01:09 +02:00
option ( ENABLE_ZIP "Enable Zip" ON )
2014-12-22 00:06:53 +01:00
option ( ENABLE_CPPPARSER "Enable C++ parser" OFF )
option ( ENABLE_POCODOC "Enable Poco Documentation Generator" OFF )
2014-12-21 21:54:02 +01:00
option ( ENABLE_PAGECOMPILER "Enable PageCompiler" ON )
option ( ENABLE_PAGECOMPILER_FILE2PAGE "Enable File2Page" ON )
2014-08-22 17:01:09 +02:00
2021-06-18 12:42:15 +02:00
option ( ENABLE_ACTIVERECORD "Enable ActiveRecord" ON )
option ( ENABLE_ACTIVERECORD_COMPILER "Enable ActiveRecord Compiler" ON )
if ( ENABLE_ACTIVERECORD AND NOT ENABLE_DATA )
2024-10-09 21:53:49 +02:00
set ( ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE )
2021-06-18 08:51:42 +02:00
endif ( )
2023-09-24 02:19:40 +02:00
if ( ENABLE_ACTIVERECORD AND NOT ENABLE_XML )
2024-10-09 21:53:49 +02:00
set ( ENABLE_XML ON CACHE BOOL "Enable XML" FORCE )
2023-09-24 02:19:40 +02:00
endif ( )
2012-06-26 14:40:26 +02:00
option ( ENABLE_TESTS
2023-11-04 23:11:38 +01:00
" S e t t o O F F | ON ( default is OFF ) t o c o n t r o l b u i l d o f P O C O t e s t s " O F F )
2024-01-30 13:34:49 +01:00
option ( ENABLE_TEST_DEPRECATED
" S e t t o O F F | ON ( default is OFF ) t o e n a b l e b u i l d o f t e s t s f o r d e p r e c a t e d f u n c t i o n a l i t y " O F F )
2023-11-30 12:50:39 +01:00
option ( ENABLE_COMPILER_WARNINGS
" S e t t o O F F | ON ( default is OFF ) t o e n a b l e a d d i t i o n a l c o m p i l e r w a r n i n g s . I n t e n d e d p r i m a r i l y f o r m a i n t a i n e r s . " O F F )
2023-11-04 23:11:38 +01:00
option ( ENABLE_SAMPLES
" S e t t o O F F | ON ( default is OFF ) t o c o n t r o l b u i l d o f P O C O s a m p l e s " O F F )
2012-06-26 14:40:26 +02:00
option ( POCO_UNBUNDLED
2020-02-14 11:07:32 +01:00
" S e t t o O F F | ON ( default is OFF ) t o c o n t r o l l i n k i n g d e p e n d e n c i e s a s e x t e r n a l " O F F )
2012-06-26 14:40:26 +02:00
2016-12-31 13:14:18 +01:00
if ( ENABLE_TESTS )
2020-02-14 11:07:32 +01:00
include ( CTest )
enable_testing ( )
message ( STATUS "Building with unittests & samples" )
2024-01-30 13:34:49 +01:00
if ( ENABLE_TEST_DEPRECATED )
add_compile_definitions ( POCO_TEST_DEPRECATED )
endif ( )
2016-12-31 13:14:18 +01:00
else ( )
2020-02-14 11:07:32 +01:00
message ( STATUS "Building without tests & samples" )
2016-12-31 13:14:18 +01:00
endif ( )
2012-06-26 14:40:26 +02:00
2016-12-31 13:14:18 +01:00
if ( POCO_UNBUNDLED )
2024-08-29 13:46:31 +02:00
message ( STATUS "Using external sqlite, zlib, pcre2, expat, libpng, ..." )
2016-12-31 13:14:18 +01:00
else ( )
2024-08-29 13:46:31 +02:00
message ( STATUS "Using internal sqlite, zlib, pcre2, expat, libpng, ..." )
2016-12-31 13:14:18 +01:00
endif ( )
2012-06-26 14:40:26 +02:00
2021-11-05 13:00:08 +01:00
# Disable fork exec
option ( POCO_NO_FORK_EXEC "Set to OFF|ON (default is OFF) to disable use of fork() and exec*() which are not allowed on some Apple platforms (iOS, watchOS, iPadOS, tvOS)." OFF )
if ( POCO_NO_FORK_EXEC )
2024-10-09 21:53:49 +02:00
add_definitions ( -DPOCO_NO_FORK_EXEC=1 )
2021-11-05 13:00:08 +01:00
endif ( )
2023-05-05 16:49:06 +02:00
option ( POCO_ENABLE_STD_MUTEX "Set to OFF|NO using mutex from standard library (default OFF)" OFF )
if ( POCO_ENABLE_STD_MUTEX )
add_definitions ( -DPOCO_ENABLE_STD_MUTEX )
endif ( )
2024-09-01 20:45:33 +02:00
2024-10-09 21:53:49 +02:00
include ( DefinePlatformSpecific )
2014-10-09 13:42:51 +02:00
# Collect the built libraries and include dirs, the will be used to create the PocoConfig.cmake file
set ( Poco_COMPONENTS "" )
2013-11-01 16:46:20 +01:00
2016-12-31 13:14:18 +01:00
if ( ENABLE_TESTS )
2020-02-14 11:07:32 +01:00
add_subdirectory ( CppUnit )
set ( ENABLE_XML ON CACHE BOOL "Enable XML" FORCE )
set ( ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_ENCODINGS_COMPILER OR ENABLE_APACHECONNECTOR )
2020-02-14 11:07:32 +01:00
set ( ENABLE_NET ON CACHE BOOL "Enable Net" FORCE )
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_PAGECOMPILER_FILE2PAGE )
2020-02-14 11:07:32 +01:00
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_PAGECOMPILER )
2020-02-14 11:07:32 +01:00
set ( ENABLE_NET ON CACHE BOOL "Enable Net" FORCE )
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
2022-05-17 08:18:54 +02:00
if ( ENABLE_MONGODB OR ENABLE_REDIS OR ENABLE_PROMETHEUS )
2020-02-14 11:07:32 +01:00
set ( ENABLE_NET ON CACHE BOOL "Enable Net" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_DATA_SQLITE OR ENABLE_DATA_MYSQL OR ENABLE_DATA_ODBC OR ENABLE_DATA_POSTGRESQL )
2020-02-14 11:07:32 +01:00
set ( ENABLE_DATA ON CACHE BOOL "Enable Data" FORCE )
if ( ENABLE_TESTS )
set ( ENABLE_NET ON CACHE BOOL "Enable Net" FORCE )
set ( ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQlite" FORCE )
endif ( )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_DATA AND ENABLE_TESTS )
2020-02-14 11:07:32 +01:00
set ( ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQlite" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
2021-06-18 12:42:15 +02:00
if ( ENABLE_ACTIVERECORD AND ENABLE_TESTS )
set ( ENABLE_DATA_SQLITE ON CACHE BOOL "Enable Data SQlite" FORCE )
endif ( )
2021-06-26 11:46:57 +02:00
2018-06-03 18:17:50 +02:00
if ( ENABLE_NETSSL_WIN )
2020-02-14 11:07:32 +01:00
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_NETSSL )
set ( ENABLE_CRYPTO ON CACHE BOOL "Enable Crypto" FORCE )
2020-02-14 11:07:32 +01:00
set ( ENABLE_NET ON CACHE BOOL "Enable Net" FORCE )
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_CRYPTO AND ENABLE_TESTS )
2020-02-14 11:07:32 +01:00
set ( ENABLE_NETSSL ON CACHE BOOL "Enable NetSSL" FORCE )
set ( ENABLE_NET ON CACHE BOOL "Enable Net" FORCE )
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_NET AND ENABLE_TESTS )
2020-02-14 11:07:32 +01:00
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_PDF )
2020-02-14 11:07:32 +01:00
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
set ( ENABLE_XML ON CACHE BOOL "Enable XML" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_POCODOC )
2020-02-14 11:07:32 +01:00
set ( ENABLE_UTIL ON CACHE BOOL "Enable Util" FORCE )
set ( ENABLE_XML ON CACHE BOOL "Enable XML" FORCE )
set ( ENABLE_CPPPARSER ON CACHE BOOL "Enable C++ parser" FORCE )
2018-06-03 18:17:50 +02:00
endif ( )
if ( ENABLE_UTIL AND ENABLE_TESTS )
2020-02-14 11:07:32 +01:00
set ( ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE )
set ( ENABLE_XML ON CACHE BOOL "Enable XML" FORCE )
2016-12-31 13:14:18 +01:00
endif ( )
2012-06-26 14:40:26 +02:00
2019-09-02 11:48:01 +02:00
if ( ENABLE_JWT )
set ( ENABLE_CRYPTO ON CACHE BOOL "Enable Crypto" FORCE )
2020-02-14 11:07:32 +01:00
set ( ENABLE_JSON ON CACHE BOOL "Enable JSON" FORCE )
2019-09-02 11:48:01 +02:00
endif ( )
2019-10-18 15:35:02 +02:00
if ( ENABLE_FOUNDATION )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Foundation )
2019-10-18 15:35:02 +02:00
endif ( )
2021-06-26 11:46:57 +02:00
2018-02-14 10:25:27 +01:00
if ( ENABLE_ENCODINGS )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Encodings )
list ( APPEND Poco_COMPONENTS "Encodings" )
2018-02-14 10:25:27 +01:00
endif ( )
2018-06-03 18:17:50 +02:00
2014-08-22 17:01:09 +02:00
if ( ENABLE_XML )
2020-02-14 11:07:32 +01:00
add_subdirectory ( XML )
list ( APPEND Poco_COMPONENTS "XML" )
2014-08-22 17:01:09 +02:00
endif ( )
2018-06-03 18:17:50 +02:00
2014-08-22 17:01:09 +02:00
if ( ENABLE_JSON )
2020-02-14 11:07:32 +01:00
add_subdirectory ( JSON )
list ( APPEND Poco_COMPONENTS "JSON" )
2014-08-22 17:01:09 +02:00
endif ( )
2018-06-03 18:17:50 +02:00
2017-11-10 19:21:55 +01:00
if ( ENABLE_UTIL )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Util )
list ( APPEND Poco_COMPONENTS "Util" )
2017-11-10 19:21:55 +01:00
endif ( )
2018-06-03 18:17:50 +02:00
2017-11-10 19:21:55 +01:00
if ( ENABLE_NET )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Net )
list ( APPEND Poco_COMPONENTS "Net" )
2017-11-10 19:21:55 +01:00
endif ( )
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /MongoDB AND ENABLE_MONGODB )
2020-02-14 11:07:32 +01:00
add_subdirectory ( MongoDB )
list ( APPEND Poco_COMPONENTS "MongoDB" )
2014-08-22 17:01:09 +02:00
endif ( )
2018-06-03 18:17:50 +02:00
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Redis AND ENABLE_REDIS )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Redis )
list ( APPEND Poco_COMPONENTS "Redis" )
2017-11-10 12:25:53 +01:00
endif ( )
2018-06-03 18:17:50 +02:00
2024-04-03 22:38:56 +02:00
if ( ENABLE_DNSSD )
add_subdirectory ( DNSSD )
list ( APPEND Poco_COMPONENTS "DNSSD" )
endif ( )
2022-05-17 08:18:54 +02:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Prometheus AND ENABLE_PROMETHEUS )
add_subdirectory ( Prometheus )
list ( APPEND Poco_COMPONENTS "Prometheus" )
endif ( )
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /PDF AND ENABLE_PDF )
2020-02-14 11:07:32 +01:00
add_subdirectory ( PDF )
list ( APPEND Poco_COMPONENTS "PDF" )
2014-08-22 17:01:09 +02:00
endif ( )
2012-06-26 14:40:26 +02:00
2019-09-02 11:48:01 +02:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /JWT AND ENABLE_JWT )
2020-02-14 11:07:32 +01:00
add_subdirectory ( JWT )
list ( APPEND Poco_COMPONENTS "JWT" )
2019-09-02 11:48:01 +02:00
endif ( )
2014-10-09 13:42:51 +02:00
#NetSSL
2017-11-10 21:35:25 +01:00
if ( WIN32 AND EXISTS ${ PROJECT_SOURCE_DIR } /NetSSL_Win AND ENABLE_NETSSL_WIN )
2020-02-14 11:07:32 +01:00
add_subdirectory ( NetSSL_Win )
list ( APPEND Poco_COMPONENTS "NetSSL_Win" )
2017-11-10 21:35:25 +01:00
endif ( WIN32 AND EXISTS ${ PROJECT_SOURCE_DIR } /NetSSL_Win AND ENABLE_NETSSL_WIN )
2014-10-09 13:42:51 +02:00
2012-06-26 14:40:26 +02:00
if ( OPENSSL_FOUND )
2020-02-14 11:07:32 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /NetSSL_OpenSSL AND ENABLE_NETSSL )
add_subdirectory ( NetSSL_OpenSSL )
list ( APPEND Poco_COMPONENTS "NetSSL_OpenSSL" )
endif ( )
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Crypto AND ENABLE_CRYPTO )
add_subdirectory ( Crypto )
list ( APPEND Poco_COMPONENTS "Crypto" )
endif ( )
2012-06-26 14:40:26 +02:00
endif ( OPENSSL_FOUND )
2023-11-04 23:11:38 +01:00
option ( POCO_DATA_NO_SQL_PARSER "Disable SQL parser" OFF )
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Data AND ENABLE_DATA )
2023-11-04 23:11:38 +01:00
if ( POCO_DATA_NO_SQL_PARSER )
add_definitions ( -DPOCO_DATA_NO_SQL_PARSER=1 )
endif ( )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Data )
list ( APPEND Poco_COMPONENTS "Data" )
2014-08-22 17:01:09 +02:00
endif ( )
2018-06-03 18:17:50 +02:00
2022-07-18 13:04:57 +02:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Data/SQLite AND ENABLE_DATA_SQLITE )
list ( APPEND Poco_COMPONENTS "Data/SQLite" )
endif ( )
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Data/MySQL AND ENABLE_DATA_MYSQL )
list ( APPEND Poco_COMPONENTS "Data/MySQL" )
endif ( )
2024-03-29 10:24:30 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Data/PostgreSQL AND ENABLE_DATA_POSTGRESQL )
list ( APPEND Poco_COMPONENTS "Data/PostgreSQL" )
2022-07-18 13:04:57 +02:00
endif ( )
2021-06-18 12:42:15 +02:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /ActiveRecord AND ENABLE_ACTIVERECORD )
add_subdirectory ( ActiveRecord )
list ( APPEND Poco_COMPONENTS "ActiveRecord" )
endif ( )
if ( EXISTS ${ PROJECT_SOURCE_DIR } /ActiveRecord/Compiler AND ENABLE_ACTIVERECORD_COMPILER )
add_subdirectory ( ActiveRecord/Compiler )
list ( APPEND Poco_COMPONENTS "ActiveRecordCompiler" )
endif ( )
2023-01-27 12:25:31 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /SevenZip AND ENABLE_SEVENZIP AND ENABLE_XML )
2020-02-14 11:07:32 +01:00
add_subdirectory ( SevenZip )
list ( APPEND Poco_COMPONENTS "SevenZip" )
2014-08-22 17:01:09 +02:00
endif ( )
2018-06-03 18:17:50 +02:00
2023-01-27 12:25:31 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Zip AND ENABLE_ZIP AND ENABLE_XML )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Zip )
list ( APPEND Poco_COMPONENTS "Zip" )
2014-08-22 17:01:09 +02:00
endif ( )
2012-06-26 14:40:26 +02:00
2019-07-30 11:19:49 +02:00
if ( APRUTIL_FOUND AND APACHE_FOUND AND
2020-02-14 11:07:32 +01:00
E X I S T S $ { P R O J E C T _ S O U R C E _ D I R } / A p a c h e C o n n e c t o r A N D E N A B L E _ A P A C H E C O N N E C T O R )
add_subdirectory ( ApacheConnector )
list ( APPEND Poco_COMPONENTS "ApacheConnector" )
2018-06-03 18:17:50 +02:00
endif ( )
2012-06-26 14:40:26 +02:00
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /CppParser AND ENABLE_CPPPARSER )
2020-02-14 11:07:32 +01:00
add_subdirectory ( CppParser )
list ( APPEND Poco_COMPONENTS "CppParser" )
2014-12-11 10:17:08 +01:00
endif ( )
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /PocoDoc AND ENABLE_POCODOC )
2020-02-14 11:07:32 +01:00
add_subdirectory ( PocoDoc )
list ( APPEND Poco_COMPONENTS "PocoDoc" )
2014-12-11 10:31:13 +01:00
endif ( )
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /PageCompiler AND ENABLE_PAGECOMPILER )
2020-02-14 11:07:32 +01:00
add_subdirectory ( PageCompiler )
list ( APPEND Poco_COMPONENTS "PageCompiler" )
2014-12-21 21:54:02 +01:00
endif ( )
2017-11-10 21:35:25 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /PageCompiler/File2Page AND ENABLE_PAGECOMPILER_FILE2PAGE )
2020-02-14 11:07:32 +01:00
add_subdirectory ( PageCompiler/File2Page )
list ( APPEND Poco_COMPONENTS "File2Page" )
2014-12-21 21:54:02 +01:00
endif ( )
2018-02-14 12:11:37 +01:00
if ( EXISTS ${ PROJECT_SOURCE_DIR } /Encodings/Compiler AND ENABLE_ENCODINGS_COMPILER )
2020-02-14 11:07:32 +01:00
add_subdirectory ( Encodings/Compiler )
list ( APPEND Poco_COMPONENTS "EncodingsCompiler" )
2018-02-14 12:11:37 +01:00
endif ( )
2017-11-10 19:21:55 +01:00
2012-06-26 14:40:26 +02:00
#############################################################
# Uninstall stuff see: http://www.vtk.org/Wiki/CMake_FAQ
2014-07-09 15:34:50 +02:00
configure_file (
2020-02-14 11:07:32 +01:00
" $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / c m a k e / c m a k e _ u n i n s t a l l . c m a k e . i n "
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c m a k e _ u n i n s t a l l . c m a k e "
I M M E D I A T E @ O N L Y )
2012-06-26 14:40:26 +02:00
2014-07-09 15:34:50 +02:00
add_custom_target ( uninstall
2020-02-14 11:07:32 +01:00
" $ { C M A K E _ C O M M A N D } " - P " $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c m a k e _ u n i n s t a l l . c m a k e "
)
2012-06-26 14:40:26 +02:00
#############################################################
# Enable packaging
Devel (#3586)
* Enable unit test in cmake build
* add BLOB SQLite test
* accept notifications by name (if they have one)
* catch std::exception on parsing
* fix a leak, add some table features
* few PostgreSQL fixes
* GH #2351: WebSocket docs
* Rename pcre internal symbols used by Poco to avoid symbol collision
https://github.com/pocoproject/poco/issues/2916
This patch was backported from https://github.com/pld-linux/poco/blob/master/pcre.patch
* Fix warning in clang
* Fix MSVC clang build fail
* Zip and SevenZip do not depend on Util, XML, JSON
* Added Test and new Pattern 'O' to only log the Filename not the full Path.
* Updated Comment
* Configuration to receive OCSP stapling response for client connections and callback implementation to verify the response if the server returns any response
* removed SDK version from project files
* run Application::initialize() in try-catch block
* fix Invalid condition [ICMPv4PacketImpl.cpp:234] #2783
* style fixes for #2935; check OpenSSL version
* Fixed issue 2945 (#2946)
* Fixed #2945
* Added unit tests for #2945
* Dissalow iterator on empty Var (#2945)
* Updated unit tests for #2945
* More concise unit tests for #2945
* Removed some more clutter (#2945)
* NetSSL_Win: fix potential endless loop due to wrong error handling
* fixed GH #2970: Poco::Data::TypeHandler<Poco::Nullable<T>>::prepare() must prepare with underlying type, not Poco::Data::Keywords::null
* Fixed linking with Data ODBC error on some platforms
* Fix set padding call for new versions of OpenSSL
* PatternFormatter priorityNames fix
* PKCS12Container: fix memory leaks on exceptions
* Fix constness of URI::getPathSegments
* Fix typo in the ThreadPool's docs
* cmake: use GNUInstallDirs
* Changed EventHandlerMap key (#3116)
* Changed EventHandlerMap key
Changed EventHandlerMap key from Socket to poco_socket_t to avoid errors in removing/access EventHandlerMap when for example we make an SSL handshake
* Changed EventHandlerMap key
Changed EventHandlerMap key from Socket to poco_socket_t to avoid errors in removing/access EventHandlerMap when for example we make an SSL handshake
* avoid too much call to sockfd() and impl()
* Fix configuration error while cross compiling (#3127)
During the configuration phase in a cross compilation scenario,
`include(InstallRequiredSystemLibraries)` fails even if
`MSVC_REDIST_DIR` is provided.
This should not be an hard error, in case someone wants to
compile/use the library, and not package it.
As explained on https://reviews.llvm.org/D41220, the most sensible fix
is to include `InstallRequiredSystemLibraries` only on a Windows host.
* crash when remove key from JSON::Object(JSON_PRESERVE_KEY_ORDER). (#3151)
* #3153: Poco::Data::ODBC [N]VARCHAR(MAX) wrong maxDataSize() result
* [SharedPtr] Poco::makeSharedArray #3200
* #3202: JWT: ESxxx signature must include padding for ECDSA R and S values
* feat(HashRange): port HashRange from boost
* chore(cmake): spelling typo fix
* fix(hashRange): change function names casing
* merge changes from 1.10.2
* formatting
* merge JSON formatting changes from 1.10.2
* added Application::windowSize()
* RemoteSyslogChannel/RemoteSyslogListener: make UDP buffer size configurable
* merge fix from 1.10.2
* merge Postgres fixes from 1.10.2
* #2993: The Sec-WebSocket-Key of WebSocket is always the same one
* formatting
* #2927
* remove HowToGetHelp page due to outdated information
* formatting
* #3044: Upgrade PCRE to 8.44
* #3086: Use POCO_IOS_INIT_HACK for Linux in combination with libc++
* #3095: Digest proxy authentication does not work in 1.10.1
* #3136: Fixed null character issue when parsing a JSON
* #3114: Added JSON Array::empty() method
* #3230: ECDSADigestEngine: include missing header
* fix include order
* include order
* fix(PollSet): #3248 #3249
* chore(UDPServer): fix spelling
* feat(SocketReactor): extract and expose poll() as a member function
* feat(Endpoint): add Endpoint (socket address directly wrapping native structures)
* fix(Endpoint): osx build, align family enum with patform, some other adjustments
* fix(EndpointTest): add missing include
* feat(Endpoint): add some low-level accessors
* feat(IPAddress): add functions returning addres as raw bytes
* feat(DatagramSocket): DatagramSocket does not allow IPV6_V6ONLY #3283
* feat(SocketReactor): Add completion handling to SocketReactor #3290
* feat(SocketReactor): Add completion handling to SocketReactor #3290 (add scheduled handlers and runOne())
* chore(Net-testsuite): fix some tests warnings
* feat: move semantics for sockets and addresses
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* feat(Net): Add move semantics to Net (sockets and addresses) #3296
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(SocketReactor): completion handling fixes and tests, separation of i/o and completion mutexes
* feat(SocketReactor): execute permanent completion handlers on when there are I/O handlers and the expired ones whenever they expire
* feat(Socket): expose lastError()
* fix(SocketReactor): windows compile
* windows fixes, remove Endnpoint
* feat(Socket): expose error()
* feat(PollSet): Use select() on windows for PollSet #3339
* add ci.yml
* fix compile errors
* revert(SocketReactor): back to devel branch
* feat(SocketProactor): initial version w/ completion handler and executor
* chore(SocketProactor): Sockets package
* chore(ci): add dir and run script
* feat(SocketProactor): add socket error handling #3357
* modify(SocketProactor): wait for completion handlers availability #3357
* feat(PollSet): Make PollSet::poll() interruptible #3359
* modify(SocketProactor): make addSend() public #3357
* modify(SocketProactor): platform non-interrupt sleep without Poco thread #3357
* modify(SocketProactor): allow restart #3357
* fix(SocketProactor): windows fixes and VS build
* fix(SocketProactor): race when stop() is called before run()
* fix(Socket): Windows SO_REUSEADDR is neither reliable nor safe #3380
* fix(SocketProactor): rvalue refs should not be const
* fix(DNS): DNS::hostByAddress not thread-safe #3381
* chore(SocketProactor): remove unnecessary this capture
* fix(IPAddress): IPAddress::tryParse does not work for :: #3385
* fix(SoccketProactor): add some try/catch safety nets; broaden the work list mutex coverage to protect all function access
* fix(SocketProactor): use Poco::Mutex only
* fix(SocketProactor): scheduled work skipped in the absence of socket events
* fix(SocketProactor): test
* chore (SocketProactor): add some state members
* Fix clang linker problem by defining POCO_NO_AUTOMATIC_LIBS (#3177)
* Dev/devel 1.12.0 (#3585)
* fix(PollSet): #3248 #3249
* bump version to 1.11.0
* updated changelog|
* #3299: NetSSL: Allow per-Context InvalidCertificateHandler
* #3022: Process::isRunning(PID pid) causes handle leak on Windows
* #3022: fix for WinCE
* upgrade bundled pdjson to latest master
* update build configs - add support for Apple Silicon
* #2906, #2904: Support environments without hardware floating point
* #3130: fix error handling: report original error before close()
* #3107: remove unused variable
* #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage
* Poco::trim*() code cleanup - use ptrdiff_t instead of int; additional test cases
* #3182 Poco::Process:launch on MacOS BigSur: limit maximum number of file descriptors to close before exec() to 100000
* #3278: Fixing no hardware floating point support - Part II
* #3090: Do not initialize value with undefined behavior
* #3163: Correct Var::parse null value
* #3196: std::forward for Poco::Optional ctor with rvalue
* #3068: Documented ENABLE_JWT option
* #3041: PostgreSQL and TEXT column type
* #3099: Fixed Postgres extraction into Dynamic::Var
* #3138: Add support of arch riscv32
* #2825: riscv: Enable double operations when using double float abi
* #3166: Fix PostgresSQL BLOB extractor
* #3237: An error in the documentation for Poco/JSON/Parser.h
* #3193: ServerApplication::registerService() unquoted path security vulnerability
* #3266: Order of Util::Application::uninitialize() is not in reverse as documented
* #3215: XML parser returns item from different element in a array
* #3282: Update constant in setContentType documentation
* #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig
* #2418: SecureServerSocket doesn't work with IpV6
* fix warnings
* #3019: ObjectPool wait on borrow condition fix
* #3224: Remove SSL23 support from Poco/Crypto
* #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
* disallow SSLv3
* #3269: Poco::Net::Context initialization with empty certificateFile
* #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint
* #3260: Memory leak in EVPPKey::loadKey used with files & wrong password
* #3157: fix(openssl): add missing dependency to OpenSSL components
* #3066: CMake warning about MYSQL casing
* #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists
* #3217: CMake: warning message with -DPOCO_STATIC confusing
* #3274: Fix localtime_r for VxWorks 6.9 and later
* #2746, #3169: Fix race condition on TCPServerDispatcher stop
* #3092: add more detailed error description when LoadLibrary fails|
* #3074: Fix sessions may not return back to the pool
* #3309: optimize parsing from stream (no copying of entire JSON to memory); limit maximum depth to avoid stack overflow with malicious documents (fuzzing - #3285); code cleanup
* JSON Parser performance improvements
* #3310: Upgrade bundled SQLite to 3.35.5
* fix UB/bad cast in TCPServerTest.cpp
* add comment regarding potential UB in AnyTest::testCastToReference()
* support sanitizers in build configs
* bump version
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* remove failing Android build; add sanitizer builds
* update postgres version
* fix warning
* fix warning
* add GitHub workflow
* fix ci.yml
* fix ci.yml
* additional ci builds
* fix ci.yml for macos and windows
* fix(double-conversion): Upgrade bundled double-conversion #3313
* ci fixes
* #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak
* testReuseSession: remove bad checks for session reuse
* investigate failing test
* investigate failing test
* investigate failing test
* investigate failing test
* ci
* remove travis and appveyor
* ci, readme
* ci fixes
* fix ci
* fix ci
* fix ci
* fix memory leak when ignoring test error/failure
* fix ci
* don't define UNREACHABLE as poco_bugcheck as it triggers 'control reaches end of non-void function' warning
* add Linux cross build, build Data libs on macos
* fix ci
* add MySQL include/lib search paths for Homebrew
* ci fixes
* ci fixes
* ci fixes
* ci fixes
* fix indluce paths for brew mysql
* #3317: Data::MySQL MySQL headers and library search paths
* fix ARM-Linux build config
* fix MySQL.make
* update FindMySQL.cmake
* fix(SocketReactor): fix dataCollection test
* chore: remove troubleshooting help leftovers
* #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]]
* fix potential crash in testAsyncNotify: don't delete event object while async notification is still in progress
* fix(PollSetTest): change connect to blocking
* added ActiveRecord library and compiler
* added dependencies file
* update copyright dates
* ActiveRecord: project files and fixes for MSVC
* ci: enable ActiveRecord on Windows
* fix(PollSetTest): remove poll timing check (fails on msvc ci)
* fix ActiveRecord CMake build and configuration
* feat(build): add gen directory (for generated sources) and macchina lib link dirs (if needed)
* #3318: Data: Support Poco::UUID for data binding
* ODBC tests for UUID, updated ActiveRecord projects
* ActiveRecord user guide
* update ActiveRecord documentation
* documentation fixes
* #3321: manually merge ODBC text encoding support
* CppParser: merge changes from internal repository
* updated Makefile
* AbstractObserver::accepts() - add optional name parameter
* fix SharedPtr::makeSharedArray() [merge from devel]
* remove blank line
* #2895, #2935: support OCSP stapling
* style
* clang support (merge from devel)
* #3322: remove useless struct
* link libmariadb instead of libmysql if headers indicate MariaDB
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix PageCompiler cross-compile; fix Content-Security-Policy header
* remove Data release notes page
* style, remove unused var
* update docs
* improve BLOB handling, clean-up code
* fix(ICMPv4Packet): [asan] Undefined behavior in ICMPv4PacketImpl.cpp #3326
* fix(NumericString): Bug in NumericString with decSep != '.' #3159
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(PollSet): #3248 #3249
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* style/whitespace
* fix warnings
* add version resources to executables
* style
* whitespace
* update changelog
* cpproj: also copy testsuite/include if it's there
* branch off 1.11.1
* #3335: XML error when build 1.11.0
* #3353: add POCO_NO_FORK_EXEC CMake option
* #3381: DNS::hostByAddress not thread-safe
* #3400: fix std::localtime not thread safe
* #3221: Crash reported on Windows in X509Certificate verification
* #3344: [bug] MacOS bundle destination path is not set
* #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
* #3363: Fixed compilation error with MongoDB::Connection and Util::Application
* #3377: Correct Poco::Path::configHome() and dataHome() documentation for Windows
* #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
* #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
* #2966: SocketReactor loads one core of CPU up to 100%
* #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
* use OpenSSL 1.1.1 on macOS
* add missing include search path
* upgrade bundled PCRE to 8.45
* upgrade bundled SQLite to 3.36.0
* updated changelog
* fix brew OpenSSL version
* branch off poco-1.11.2
* #3506: Upgrade bundled expat to 2.4.4
* manually merge #3448, part 1 (Crypto)
* manually merge #3448, part 1 (NetSSL)
* #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
* #3448: fix version check
* #3465: NetSSL_Win: bad error handling when decodeMessage() fails
* #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
* #3505: JSON::PrintHandler.value(bool) prints incorrect value
* #3527: Upgrade bundled expat to 2.4.5
* #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
* #3507: Reference counting for bound configuration in Util::Option is broken
* #3518: Expat version check in #defines incorrect
* #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
* CI: don't build PageCompiler in ARM cross build
* detect ARM64 on Windows
* updated README.md
* ProGen: support generation of VS 2022 project files
* ci: add windows 2022
* fix library name
* remove unused CppUnit headers
* added VS2022 project files
* #3530: Upgrade bundled expat to 2.4.6
* #3538: Upgrade bundled expat to 2.4.7
* Add back NIOS2 double conversion detection to fix compile errors
The commit
https://github.com/pocoproject/poco/commit/558324f672d824300498060aff63356bc6bb8097
removed the nios2 support, which was originally added in
https://github.com/pocoproject/poco/commit/e7b91e8125d6910b53f94de5be4bb53f38dc77c1
This commit add it back.
Signed-off-by: Julien Olivain <ju.o@free.fr>
* #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
* #3524: remove XML and Util dependencies in Zip/SevenZip
* #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
* #3495: Array::operator[] should not throw
* #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
* #3509: fix dst and utcOffset handling for Dublin time zone
* #2882: another attempt at fixing it that should also work on other platforms
* remove unused method in Timezone_WIN32.cpp
* use tm_gmtoff on Linux
* Basic support for OpenSSL 3.0.0 (#3448)
* updated README.md
* Create close-inactive-issues.yml
* check return codes of EVP_CIPHER_CTX_new and EVP_CipherInit
Especially with OpenSSL 3, it is possible that EVP_CipherInit may fail even when
passed a non-null cipher[1]. Without the checking, it will finally get to a
segfault.
[1] https://github.com/openssl/openssl/issues/16864
* Automatically load default and legacy providers with OpenSSL 3
Without the legacy provider [1], some ciphers are not available. For example,
the 'des-ecb' one used by test sutie is missed and the test will fail.
[1] OSSL_PROVIDER-LEGACY(7ossl)
* Make p12 ca order the same as pem
OpenSSL < 3 returns p12 ca order in reversed order. This is fixed
in OpenSSL 3. We work around it with old OpenSSL.
See:
https://github.com/openssl/openssl/issues/16421
https://github.com/openssl/openssl/pull/12641
https://github.com/jeroen/openssl/commit/f5eb85eb0fd432406a24abda6511c449eaee6162
* Implement SSL abort handling on OpenSSL 3
On an unexpected EOF, versions before OpenSSL 3.0 returned SSL_ERROR_SYSCALL,
nothing was added to the error stack, and errno was 0. Since OpenSSL 3.0 the
returned error is SSL_ERROR_SSL with a meaningful error on the error stack.[1]
[1] SSL_GET_ERROR(3ossl)
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
* fix(Socket): shutdown fixes from pull #3448
* #3500: Sandbox all iFrames in PocoDoc
* #3549; replace assert with assertTrue
* #3553: Upgrade bundled zlib to 1.2.12
* #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
* disable OpenSSL deprecation warnings
* chore: cleanup
* fix(X509Certificate): add missing string format
* #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
* feat(EVP): 3.0 support
- add EVPCipher
- additional EVPPKey constructors
- tests
- fix and improve openssl-related exceptions
Transition towards 3.0 support;
deprecating direct EC and RSA interface portions.
* fix(openssl): pre 3.0 compile
* feat(Envelope): Add envelope to crypto #3561
* fix(Envelope): mac/clang compile
* fix(Any): #3297 #3514
* #3562: fixed OpenSSL setup/shutdown
* fix exception text
* #3563: Remove support for OpenSSL < 1.0
* ci jobs for OpenSSL 1.1 and 3
* updated CHANGELOG
* updated .vscode
* Refactor/any soo (#3564)
* refactor(Any): SOO
- encapsulate data holders
- add missing gets and ops
- eliminate g++ warnings with enable_if's
- default enable SOO
* refactor(Placeholder): encapsulate SOO memory management and fix leaks; cf. #3297 #3514
* fix(Placeholder): asan errors and add tests
cf. #3297 #3514
* fix(SSLManager): Race condition in SSLManager #3558
* remove unused include
* updated copyright date
* PocoDoc: fix iframe sandboxing
* fix(SHA2Engine): cannot use HMACEngine with SHA2Engine #3421
* refactor(Placeholder): ifdef POCO_NO_SOO only in Placeholder and remove it anywhere else (#3566)
* refactor(Placeholder): more SOO consolidation and optimization
* fix(FPEnvironment): Visual Studio Warning C4244 #3543
* fix(Extractor): move extraction decoding to AbstractExtractor #3396
* Netssl/openssl3 (#3575)
* feat(Context): DH init openssl3 port (1/2 hardcoded params)
* create poco-1.11.3 branch, bump version
* update copyright date
* #3567: check legacy provider existence for legacy exception #3567
* fix(Placeholder): comparison for zero value
* feat(Context): DH init openssl3 port (2/2 params from file)
* test(HTTPSClientSession): try/catch to understand CI failure
* chore(cmake): copy the DH parameters file
* fix(OpenSSLInitializer): unload provider on uninitialize
* chore(HTTPSClientSessionTest): remove try/catch
* fix(OpenSSLInitializer): fix provider unloading
* feat(CppUnit): make tests exceptions more descriptive
* chore(CppUnit): a more descriptive name for callback
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
* fix(Foundation): update VS 2019 platform version
* chore(Data): update VS project files (add Transcoder #3396)
* fix(Data): Poco::Data::ODBC-dbEncoding property not used for insert/update #3396
* fix(Data): add transcoder to Makefile #3396
* fix(JWT): remove duplicate test functions after merge
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
* #2755: Fix MySQL's LONGBLOB/LONGTEXT not allocating enough space (#3474)
* Unit test for bug #2755.
* Removed condition to set buffer length to 0.
* Fixes to unit tests for LONGBLOB/TEXT data type.
* Adjusted buffer sizes to accommodate LONGBLOBs.
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
* fix(Data): MySQL UUID binding temporary string #3587
* feat(CI): add MySQL tests to CI #3588
* fix(CI): remove mysql client dev (using mariadb) #3588
* fix(CI): another shot at mysql
* fix(Net/testsuite): add missing include
* fix(DatagramSocket): Socket::available does not always return correct value for UDP #3589
* fix(SocketProactor): few improvements (#3357)
* fix(ICMPsocketTest): change appinf (doesn't respond to ping) to github
* fix(PollSet): windows fixes
* fix(PollSet): windows implementation fixes (multi-fd_set select); minor reactor fixes
* Extract JSON type as string (#3491)
* Declared JSON as string data
# Conflicts:
# Data/include/Poco/Data/MetaColumn.h
# Data/src/RecordSet.cpp
# Data/src/StatementImpl.cpp
* Added JSON extractor as string
* Added unit test
* Update comment
Co-authored-by: Joerg-Christian Boehme <joerg@chaosdorf.de>
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: tbarbier <thomas.barbier@amadeus.com>
Co-authored-by: Linquize <linquize@yahoo.com.hk>
Co-authored-by: Jan Kevin Dick <fixed-term.jan.dick@de.bosch.com>
Co-authored-by: Neelima Patil <neelima.patil@honeywell.com>
Co-authored-by: akete <akete@users.noreply.github.com>
Co-authored-by: YuriAzathoth <iamkiller@mail.com>
Co-authored-by: Jonathan Horvath <byteme@bytedreamer.com>
Co-authored-by: Maksim Kita <kitaetoya@gmail.com>
Co-authored-by: Alexander Galanin <al@galanin.nnov.ru>
Co-authored-by: Thomas Sablik <thomas.sablik@wombytes.de>
Co-authored-by: Nikita Migunov <nmigunov@iponweb.net>
Co-authored-by: Ben Wolsieffer <benwolsieffer@gmail.com>
Co-authored-by: micheleselea <michele.pradella@selea.com>
Co-authored-by: Federico Kircheis <federico.kircheis@gmail.com>
Co-authored-by: fenghao119 <fenghao119@gmail.com>
Co-authored-by: Alex Fabijanic <alex@pocoprojecct.org>
Co-authored-by: linquize <linquize2@yahoo.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: hectots <monkey.instinct@gmail.com>
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
Co-authored-by: Hernan Martinez <hernan.c.martinez@gmail.com>
2022-05-15 18:05:56 +02:00
if ( CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows" )
include ( InstallRequiredSystemLibraries )
endif ( )
2012-06-26 14:40:26 +02:00
2014-07-09 15:34:50 +02:00
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "Poco Libraries" )
set ( CPACK_PACKAGE_VENDOR "Applied Informatics Software Engineering GmbH" )
set ( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README" )
set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" )
set ( CPACK_PACKAGE_INSTALL_DIRECTORY "/usr/local" )
2012-06-26 14:40:26 +02:00
2014-07-09 15:34:50 +02:00
include ( CPack )
2012-06-26 14:40:26 +02:00
2014-10-09 13:42:51 +02:00
#############################################################
2017-11-10 12:25:53 +01:00
# cmake config files
2014-10-09 13:42:51 +02:00
include ( CMakePackageConfigHelpers )
write_basic_package_version_file (
2020-02-14 11:07:32 +01:00
" $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / $ { P R O J E C T _ N A M E } / $ { P R O J E C T _ N A M E } C o n f i g V e r s i o n . c m a k e "
V E R S I O N $ { P R O J E C T _ V E R S I O N }
C O M P A T I B I L I T Y A n y N e w e r V e r s i o n
2014-10-09 13:42:51 +02:00
)
2020-02-05 06:41:10 +01:00
# Set config script install location in a location that find_package() will
# look for, which is different on MS Windows than for UNIX
# Note: also set in POCO_GENERATE_PACKAGE macro in cmake/PocoMacros.cmake
2020-02-14 11:07:32 +01:00
if ( WIN32 )
set ( PocoConfigPackageLocation "cmake" )
2020-02-05 06:41:10 +01:00
else ( )
Devel (#3586)
* Enable unit test in cmake build
* add BLOB SQLite test
* accept notifications by name (if they have one)
* catch std::exception on parsing
* fix a leak, add some table features
* few PostgreSQL fixes
* GH #2351: WebSocket docs
* Rename pcre internal symbols used by Poco to avoid symbol collision
https://github.com/pocoproject/poco/issues/2916
This patch was backported from https://github.com/pld-linux/poco/blob/master/pcre.patch
* Fix warning in clang
* Fix MSVC clang build fail
* Zip and SevenZip do not depend on Util, XML, JSON
* Added Test and new Pattern 'O' to only log the Filename not the full Path.
* Updated Comment
* Configuration to receive OCSP stapling response for client connections and callback implementation to verify the response if the server returns any response
* removed SDK version from project files
* run Application::initialize() in try-catch block
* fix Invalid condition [ICMPv4PacketImpl.cpp:234] #2783
* style fixes for #2935; check OpenSSL version
* Fixed issue 2945 (#2946)
* Fixed #2945
* Added unit tests for #2945
* Dissalow iterator on empty Var (#2945)
* Updated unit tests for #2945
* More concise unit tests for #2945
* Removed some more clutter (#2945)
* NetSSL_Win: fix potential endless loop due to wrong error handling
* fixed GH #2970: Poco::Data::TypeHandler<Poco::Nullable<T>>::prepare() must prepare with underlying type, not Poco::Data::Keywords::null
* Fixed linking with Data ODBC error on some platforms
* Fix set padding call for new versions of OpenSSL
* PatternFormatter priorityNames fix
* PKCS12Container: fix memory leaks on exceptions
* Fix constness of URI::getPathSegments
* Fix typo in the ThreadPool's docs
* cmake: use GNUInstallDirs
* Changed EventHandlerMap key (#3116)
* Changed EventHandlerMap key
Changed EventHandlerMap key from Socket to poco_socket_t to avoid errors in removing/access EventHandlerMap when for example we make an SSL handshake
* Changed EventHandlerMap key
Changed EventHandlerMap key from Socket to poco_socket_t to avoid errors in removing/access EventHandlerMap when for example we make an SSL handshake
* avoid too much call to sockfd() and impl()
* Fix configuration error while cross compiling (#3127)
During the configuration phase in a cross compilation scenario,
`include(InstallRequiredSystemLibraries)` fails even if
`MSVC_REDIST_DIR` is provided.
This should not be an hard error, in case someone wants to
compile/use the library, and not package it.
As explained on https://reviews.llvm.org/D41220, the most sensible fix
is to include `InstallRequiredSystemLibraries` only on a Windows host.
* crash when remove key from JSON::Object(JSON_PRESERVE_KEY_ORDER). (#3151)
* #3153: Poco::Data::ODBC [N]VARCHAR(MAX) wrong maxDataSize() result
* [SharedPtr] Poco::makeSharedArray #3200
* #3202: JWT: ESxxx signature must include padding for ECDSA R and S values
* feat(HashRange): port HashRange from boost
* chore(cmake): spelling typo fix
* fix(hashRange): change function names casing
* merge changes from 1.10.2
* formatting
* merge JSON formatting changes from 1.10.2
* added Application::windowSize()
* RemoteSyslogChannel/RemoteSyslogListener: make UDP buffer size configurable
* merge fix from 1.10.2
* merge Postgres fixes from 1.10.2
* #2993: The Sec-WebSocket-Key of WebSocket is always the same one
* formatting
* #2927
* remove HowToGetHelp page due to outdated information
* formatting
* #3044: Upgrade PCRE to 8.44
* #3086: Use POCO_IOS_INIT_HACK for Linux in combination with libc++
* #3095: Digest proxy authentication does not work in 1.10.1
* #3136: Fixed null character issue when parsing a JSON
* #3114: Added JSON Array::empty() method
* #3230: ECDSADigestEngine: include missing header
* fix include order
* include order
* fix(PollSet): #3248 #3249
* chore(UDPServer): fix spelling
* feat(SocketReactor): extract and expose poll() as a member function
* feat(Endpoint): add Endpoint (socket address directly wrapping native structures)
* fix(Endpoint): osx build, align family enum with patform, some other adjustments
* fix(EndpointTest): add missing include
* feat(Endpoint): add some low-level accessors
* feat(IPAddress): add functions returning addres as raw bytes
* feat(DatagramSocket): DatagramSocket does not allow IPV6_V6ONLY #3283
* feat(SocketReactor): Add completion handling to SocketReactor #3290
* feat(SocketReactor): Add completion handling to SocketReactor #3290 (add scheduled handlers and runOne())
* chore(Net-testsuite): fix some tests warnings
* feat: move semantics for sockets and addresses
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* feat(Net): Add move semantics to Net (sockets and addresses) #3296
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(SocketReactor): completion handling fixes and tests, separation of i/o and completion mutexes
* feat(SocketReactor): execute permanent completion handlers on when there are I/O handlers and the expired ones whenever they expire
* feat(Socket): expose lastError()
* fix(SocketReactor): windows compile
* windows fixes, remove Endnpoint
* feat(Socket): expose error()
* feat(PollSet): Use select() on windows for PollSet #3339
* add ci.yml
* fix compile errors
* revert(SocketReactor): back to devel branch
* feat(SocketProactor): initial version w/ completion handler and executor
* chore(SocketProactor): Sockets package
* chore(ci): add dir and run script
* feat(SocketProactor): add socket error handling #3357
* modify(SocketProactor): wait for completion handlers availability #3357
* feat(PollSet): Make PollSet::poll() interruptible #3359
* modify(SocketProactor): make addSend() public #3357
* modify(SocketProactor): platform non-interrupt sleep without Poco thread #3357
* modify(SocketProactor): allow restart #3357
* fix(SocketProactor): windows fixes and VS build
* fix(SocketProactor): race when stop() is called before run()
* fix(Socket): Windows SO_REUSEADDR is neither reliable nor safe #3380
* fix(SocketProactor): rvalue refs should not be const
* fix(DNS): DNS::hostByAddress not thread-safe #3381
* chore(SocketProactor): remove unnecessary this capture
* fix(IPAddress): IPAddress::tryParse does not work for :: #3385
* fix(SoccketProactor): add some try/catch safety nets; broaden the work list mutex coverage to protect all function access
* fix(SocketProactor): use Poco::Mutex only
* fix(SocketProactor): scheduled work skipped in the absence of socket events
* fix(SocketProactor): test
* chore (SocketProactor): add some state members
* Fix clang linker problem by defining POCO_NO_AUTOMATIC_LIBS (#3177)
* Dev/devel 1.12.0 (#3585)
* fix(PollSet): #3248 #3249
* bump version to 1.11.0
* updated changelog|
* #3299: NetSSL: Allow per-Context InvalidCertificateHandler
* #3022: Process::isRunning(PID pid) causes handle leak on Windows
* #3022: fix for WinCE
* upgrade bundled pdjson to latest master
* update build configs - add support for Apple Silicon
* #2906, #2904: Support environments without hardware floating point
* #3130: fix error handling: report original error before close()
* #3107: remove unused variable
* #3219: SMTPClientSession: invalid SMTP command if empty recipients list in MailMessage
* Poco::trim*() code cleanup - use ptrdiff_t instead of int; additional test cases
* #3182 Poco::Process:launch on MacOS BigSur: limit maximum number of file descriptors to close before exec() to 100000
* #3278: Fixing no hardware floating point support - Part II
* #3090: Do not initialize value with undefined behavior
* #3163: Correct Var::parse null value
* #3196: std::forward for Poco::Optional ctor with rvalue
* #3068: Documented ENABLE_JWT option
* #3041: PostgreSQL and TEXT column type
* #3099: Fixed Postgres extraction into Dynamic::Var
* #3138: Add support of arch riscv32
* #2825: riscv: Enable double operations when using double float abi
* #3166: Fix PostgresSQL BLOB extractor
* #3237: An error in the documentation for Poco/JSON/Parser.h
* #3193: ServerApplication::registerService() unquoted path security vulnerability
* #3266: Order of Util::Application::uninitialize() is not in reverse as documented
* #3215: XML parser returns item from different element in a array
* #3282: Update constant in setContentType documentation
* #3089: HTTPSessionFactory does not support HTTPClientSession::ProxyConfig
* #2418: SecureServerSocket doesn't work with IpV6
* fix warnings
* #3019: ObjectPool wait on borrow condition fix
* #3224: Remove SSL23 support from Poco/Crypto
* #3191: Fixing a bug in the NetSSL_Win module (Host name verification failed error)
* disallow SSLv3
* #3269: Poco::Net::Context initialization with empty certificateFile
* #3307: Poco::Crypto::X509Certificate: obtain certificate fingerprint
* #3260: Memory leak in EVPPKey::loadKey used with files & wrong password
* #3157: fix(openssl): add missing dependency to OpenSSL components
* #3066: CMake warning about MYSQL casing
* #3135: Poco::Data::SQLite::Utility::fileToMemory unsuccessful if journal exists
* #3217: CMake: warning message with -DPOCO_STATIC confusing
* #3274: Fix localtime_r for VxWorks 6.9 and later
* #2746, #3169: Fix race condition on TCPServerDispatcher stop
* #3092: add more detailed error description when LoadLibrary fails|
* #3074: Fix sessions may not return back to the pool
* #3309: optimize parsing from stream (no copying of entire JSON to memory); limit maximum depth to avoid stack overflow with malicious documents (fuzzing - #3285); code cleanup
* JSON Parser performance improvements
* #3310: Upgrade bundled SQLite to 3.35.5
* fix UB/bad cast in TCPServerTest.cpp
* add comment regarding potential UB in AnyTest::testCastToReference()
* support sanitizers in build configs
* bump version
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* fix 'catching polymorphic type by value' warnings
* remove failing Android build; add sanitizer builds
* update postgres version
* fix warning
* fix warning
* add GitHub workflow
* fix ci.yml
* fix ci.yml
* additional ci builds
* fix ci.yml for macos and windows
* fix(double-conversion): Upgrade bundled double-conversion #3313
* ci fixes
* #3314: NetSSL_OpenSSL: any.pem certificate error: ca md too weak
* testReuseSession: remove bad checks for session reuse
* investigate failing test
* investigate failing test
* investigate failing test
* investigate failing test
* ci
* remove travis and appveyor
* ci, readme
* ci fixes
* fix ci
* fix ci
* fix ci
* fix memory leak when ignoring test error/failure
* fix ci
* don't define UNREACHABLE as poco_bugcheck as it triggers 'control reaches end of non-void function' warning
* add Linux cross build, build Data libs on macos
* fix ci
* add MySQL include/lib search paths for Homebrew
* ci fixes
* ci fixes
* ci fixes
* ci fixes
* fix indluce paths for brew mysql
* #3317: Data::MySQL MySQL headers and library search paths
* fix ARM-Linux build config
* fix MySQL.make
* update FindMySQL.cmake
* fix(SocketReactor): fix dataCollection test
* chore: remove troubleshooting help leftovers
* #3302: MSVC: Poco hides warnings (C4996) for the C++14 attribute [[deprecated]]
* fix potential crash in testAsyncNotify: don't delete event object while async notification is still in progress
* fix(PollSetTest): change connect to blocking
* added ActiveRecord library and compiler
* added dependencies file
* update copyright dates
* ActiveRecord: project files and fixes for MSVC
* ci: enable ActiveRecord on Windows
* fix(PollSetTest): remove poll timing check (fails on msvc ci)
* fix ActiveRecord CMake build and configuration
* feat(build): add gen directory (for generated sources) and macchina lib link dirs (if needed)
* #3318: Data: Support Poco::UUID for data binding
* ODBC tests for UUID, updated ActiveRecord projects
* ActiveRecord user guide
* update ActiveRecord documentation
* documentation fixes
* #3321: manually merge ODBC text encoding support
* CppParser: merge changes from internal repository
* updated Makefile
* AbstractObserver::accepts() - add optional name parameter
* fix SharedPtr::makeSharedArray() [merge from devel]
* remove blank line
* #2895, #2935: support OCSP stapling
* style
* clang support (merge from devel)
* #3322: remove useless struct
* link libmariadb instead of libmysql if headers indicate MariaDB
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix nullptr passed to memcmp/memcpy reported by ubsan
* fix PageCompiler cross-compile; fix Content-Security-Policy header
* remove Data release notes page
* style, remove unused var
* update docs
* improve BLOB handling, clean-up code
* fix(ICMPv4Packet): [asan] Undefined behavior in ICMPv4PacketImpl.cpp #3326
* fix(NumericString): Bug in NumericString with decSep != '.' #3159
* fix(HostEntry): DNS HostEntry returns multiple entries #3303
* fix(PollSet): #3248 #3249
* fix(NetworkInterface): Unterminated string possible in NetworkInterfaceImpl::setPhyParams() #3301
* style/whitespace
* fix warnings
* add version resources to executables
* style
* whitespace
* update changelog
* cpproj: also copy testsuite/include if it's there
* branch off 1.11.1
* #3335: XML error when build 1.11.0
* #3353: add POCO_NO_FORK_EXEC CMake option
* #3381: DNS::hostByAddress not thread-safe
* #3400: fix std::localtime not thread safe
* #3221: Crash reported on Windows in X509Certificate verification
* #3344: [bug] MacOS bundle destination path is not set
* #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
* #3363: Fixed compilation error with MongoDB::Connection and Util::Application
* #3377: Correct Poco::Path::configHome() and dataHome() documentation for Windows
* #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
* #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
* #2966: SocketReactor loads one core of CPU up to 100%
* #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
* use OpenSSL 1.1.1 on macOS
* add missing include search path
* upgrade bundled PCRE to 8.45
* upgrade bundled SQLite to 3.36.0
* updated changelog
* fix brew OpenSSL version
* branch off poco-1.11.2
* #3506: Upgrade bundled expat to 2.4.4
* manually merge #3448, part 1 (Crypto)
* manually merge #3448, part 1 (NetSSL)
* #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
* #3448: fix version check
* #3465: NetSSL_Win: bad error handling when decodeMessage() fails
* #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
* #3505: JSON::PrintHandler.value(bool) prints incorrect value
* #3527: Upgrade bundled expat to 2.4.5
* #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
* #3507: Reference counting for bound configuration in Util::Option is broken
* #3518: Expat version check in #defines incorrect
* #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
* CI: don't build PageCompiler in ARM cross build
* detect ARM64 on Windows
* updated README.md
* ProGen: support generation of VS 2022 project files
* ci: add windows 2022
* fix library name
* remove unused CppUnit headers
* added VS2022 project files
* #3530: Upgrade bundled expat to 2.4.6
* #3538: Upgrade bundled expat to 2.4.7
* Add back NIOS2 double conversion detection to fix compile errors
The commit
https://github.com/pocoproject/poco/commit/558324f672d824300498060aff63356bc6bb8097
removed the nios2 support, which was originally added in
https://github.com/pocoproject/poco/commit/e7b91e8125d6910b53f94de5be4bb53f38dc77c1
This commit add it back.
Signed-off-by: Julien Olivain <ju.o@free.fr>
* #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
* #3524: remove XML and Util dependencies in Zip/SevenZip
* #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
* #3495: Array::operator[] should not throw
* #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
* #3509: fix dst and utcOffset handling for Dublin time zone
* #2882: another attempt at fixing it that should also work on other platforms
* remove unused method in Timezone_WIN32.cpp
* use tm_gmtoff on Linux
* Basic support for OpenSSL 3.0.0 (#3448)
* updated README.md
* Create close-inactive-issues.yml
* check return codes of EVP_CIPHER_CTX_new and EVP_CipherInit
Especially with OpenSSL 3, it is possible that EVP_CipherInit may fail even when
passed a non-null cipher[1]. Without the checking, it will finally get to a
segfault.
[1] https://github.com/openssl/openssl/issues/16864
* Automatically load default and legacy providers with OpenSSL 3
Without the legacy provider [1], some ciphers are not available. For example,
the 'des-ecb' one used by test sutie is missed and the test will fail.
[1] OSSL_PROVIDER-LEGACY(7ossl)
* Make p12 ca order the same as pem
OpenSSL < 3 returns p12 ca order in reversed order. This is fixed
in OpenSSL 3. We work around it with old OpenSSL.
See:
https://github.com/openssl/openssl/issues/16421
https://github.com/openssl/openssl/pull/12641
https://github.com/jeroen/openssl/commit/f5eb85eb0fd432406a24abda6511c449eaee6162
* Implement SSL abort handling on OpenSSL 3
On an unexpected EOF, versions before OpenSSL 3.0 returned SSL_ERROR_SYSCALL,
nothing was added to the error stack, and errno was 0. Since OpenSSL 3.0 the
returned error is SSL_ERROR_SSL with a meaningful error on the error stack.[1]
[1] SSL_GET_ERROR(3ossl)
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
* fix(Socket): shutdown fixes from pull #3448
* #3500: Sandbox all iFrames in PocoDoc
* #3549; replace assert with assertTrue
* #3553: Upgrade bundled zlib to 1.2.12
* #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
* disable OpenSSL deprecation warnings
* chore: cleanup
* fix(X509Certificate): add missing string format
* #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
* feat(EVP): 3.0 support
- add EVPCipher
- additional EVPPKey constructors
- tests
- fix and improve openssl-related exceptions
Transition towards 3.0 support;
deprecating direct EC and RSA interface portions.
* fix(openssl): pre 3.0 compile
* feat(Envelope): Add envelope to crypto #3561
* fix(Envelope): mac/clang compile
* fix(Any): #3297 #3514
* #3562: fixed OpenSSL setup/shutdown
* fix exception text
* #3563: Remove support for OpenSSL < 1.0
* ci jobs for OpenSSL 1.1 and 3
* updated CHANGELOG
* updated .vscode
* Refactor/any soo (#3564)
* refactor(Any): SOO
- encapsulate data holders
- add missing gets and ops
- eliminate g++ warnings with enable_if's
- default enable SOO
* refactor(Placeholder): encapsulate SOO memory management and fix leaks; cf. #3297 #3514
* fix(Placeholder): asan errors and add tests
cf. #3297 #3514
* fix(SSLManager): Race condition in SSLManager #3558
* remove unused include
* updated copyright date
* PocoDoc: fix iframe sandboxing
* fix(SHA2Engine): cannot use HMACEngine with SHA2Engine #3421
* refactor(Placeholder): ifdef POCO_NO_SOO only in Placeholder and remove it anywhere else (#3566)
* refactor(Placeholder): more SOO consolidation and optimization
* fix(FPEnvironment): Visual Studio Warning C4244 #3543
* fix(Extractor): move extraction decoding to AbstractExtractor #3396
* Netssl/openssl3 (#3575)
* feat(Context): DH init openssl3 port (1/2 hardcoded params)
* create poco-1.11.3 branch, bump version
* update copyright date
* #3567: check legacy provider existence for legacy exception #3567
* fix(Placeholder): comparison for zero value
* feat(Context): DH init openssl3 port (2/2 params from file)
* test(HTTPSClientSession): try/catch to understand CI failure
* chore(cmake): copy the DH parameters file
* fix(OpenSSLInitializer): unload provider on uninitialize
* chore(HTTPSClientSessionTest): remove try/catch
* fix(OpenSSLInitializer): fix provider unloading
* feat(CppUnit): make tests exceptions more descriptive
* chore(CppUnit): a more descriptive name for callback
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
* fix(Foundation): update VS 2019 platform version
* chore(Data): update VS project files (add Transcoder #3396)
* fix(Data): Poco::Data::ODBC-dbEncoding property not used for insert/update #3396
* fix(Data): add transcoder to Makefile #3396
* fix(JWT): remove duplicate test functions after merge
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
* #2755: Fix MySQL's LONGBLOB/LONGTEXT not allocating enough space (#3474)
* Unit test for bug #2755.
* Removed condition to set buffer length to 0.
* Fixes to unit tests for LONGBLOB/TEXT data type.
* Adjusted buffer sizes to accommodate LONGBLOBs.
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
* fix(Data): MySQL UUID binding temporary string #3587
* feat(CI): add MySQL tests to CI #3588
* fix(CI): remove mysql client dev (using mariadb) #3588
* fix(CI): another shot at mysql
* fix(Net/testsuite): add missing include
* fix(DatagramSocket): Socket::available does not always return correct value for UDP #3589
* fix(SocketProactor): few improvements (#3357)
* fix(ICMPsocketTest): change appinf (doesn't respond to ping) to github
* fix(PollSet): windows fixes
* fix(PollSet): windows implementation fixes (multi-fd_set select); minor reactor fixes
* Extract JSON type as string (#3491)
* Declared JSON as string data
# Conflicts:
# Data/include/Poco/Data/MetaColumn.h
# Data/src/RecordSet.cpp
# Data/src/StatementImpl.cpp
* Added JSON extractor as string
* Added unit test
* Update comment
Co-authored-by: Joerg-Christian Boehme <joerg@chaosdorf.de>
Co-authored-by: Günter Obiltschnig <guenter.obiltschnig@appinf.com>
Co-authored-by: tbarbier <thomas.barbier@amadeus.com>
Co-authored-by: Linquize <linquize@yahoo.com.hk>
Co-authored-by: Jan Kevin Dick <fixed-term.jan.dick@de.bosch.com>
Co-authored-by: Neelima Patil <neelima.patil@honeywell.com>
Co-authored-by: akete <akete@users.noreply.github.com>
Co-authored-by: YuriAzathoth <iamkiller@mail.com>
Co-authored-by: Jonathan Horvath <byteme@bytedreamer.com>
Co-authored-by: Maksim Kita <kitaetoya@gmail.com>
Co-authored-by: Alexander Galanin <al@galanin.nnov.ru>
Co-authored-by: Thomas Sablik <thomas.sablik@wombytes.de>
Co-authored-by: Nikita Migunov <nmigunov@iponweb.net>
Co-authored-by: Ben Wolsieffer <benwolsieffer@gmail.com>
Co-authored-by: micheleselea <michele.pradella@selea.com>
Co-authored-by: Federico Kircheis <federico.kircheis@gmail.com>
Co-authored-by: fenghao119 <fenghao119@gmail.com>
Co-authored-by: Alex Fabijanic <alex@pocoprojecct.org>
Co-authored-by: linquize <linquize2@yahoo.com>
Co-authored-by: Julien Olivain <ju.o@free.fr>
Co-authored-by: Robin Lee <robinlee.sysu@gmail.com>
Co-authored-by: Robin Lee <cheeselee@fedoraproject.org>
Co-authored-by: hectots <monkey.instinct@gmail.com>
Co-authored-by: Hector Toledo Soto <hsoto@transperfect.com>
Co-authored-by: Hernan Martinez <hernan.c.martinez@gmail.com>
2022-05-15 18:05:56 +02:00
set ( PocoConfigPackageLocation "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" )
2020-02-05 06:41:10 +01:00
endif ( )
2014-10-09 13:42:51 +02:00
configure_file ( cmake/ ${ PROJECT_NAME } Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}Config.cmake" @ONLY )
install (
2020-02-14 11:07:32 +01:00
F I L E S
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / $ { P R O J E C T _ N A M E } / $ { P R O J E C T _ N A M E } C o n f i g . c m a k e
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / $ { P R O J E C T _ N A M E } / $ { P R O J E C T _ N A M E } C o n f i g V e r s i o n . c m a k e
D E S T I N A T I O N
2020-02-16 15:39:44 +01:00
" $ { P o c o C o n f i g P a c k a g e L o c a t i o n } "
2020-02-14 11:07:32 +01:00
C O M P O N E N T
D e v e l
2014-10-09 13:42:51 +02:00
)
2019-04-22 23:47:11 +02:00
if ( POCO_UNBUNDLED )
2022-07-06 17:46:38 +02:00
install ( FILES cmake/FindPCRE2.cmake
2020-02-14 11:07:32 +01:00
D E S T I N A T I O N " $ { P o c o C o n f i g P a c k a g e L o c a t i o n } " )
install ( FILES cmake/V39/FindEXPAT.cmake
D E S T I N A T I O N " $ { P o c o C o n f i g P a c k a g e L o c a t i o n } / V 3 9 " )
install ( FILES cmake/V313/FindSQLite3.cmake
D E S T I N A T I O N " $ { P o c o C o n f i g P a c k a g e L o c a t i o n } / V 3 1 3 " )
2019-04-22 23:47:11 +02:00
endif ( )
2012-06-26 14:40:26 +02:00
message ( STATUS "CMake ${CMAKE_VERSION} successfully configured ${PROJECT_NAME} using ${CMAKE_GENERATOR} generator" )
2018-10-10 13:48:08 +02:00
message ( STATUS "${PROJECT_NAME} package version: ${PROJECT_VERSION}" )
if ( BUILD_SHARED_LIBS )
message ( STATUS "Building dynamic libraries" )
else ( )
message ( STATUS "Building static libraries" )
endif ( )
message ( STATUS "[cmake] Installation target path: ${CMAKE_INSTALL_PREFIX}" )
if ( CMAKE_TOOLCHAIN_FILE )
2020-02-14 11:07:32 +01:00
message ( STATUS "[cmake] Use toolchain file: ${CMAKE_TOOLCHAIN_FILE}" )
2018-10-10 13:48:08 +02:00
endif ( )
2021-06-27 06:49:34 +02:00
message ( STATUS "[cmake] Build for OS type: ${CMAKE_SYSTEM_NAME}" )
message ( STATUS "[cmake] Build for OS version: ${CMAKE_SYSTEM_VERSION}" )
message ( STATUS "[cmake] Build for CPU type: ${CMAKE_SYSTEM_PROCESSOR}" )
message ( STATUS "[cmake] Build type: ${CMAKE_BUILD_TYPE}" )
2018-09-22 12:02:05 +02:00
string ( TOUPPER "${CMAKE_BUILD_TYPE}" BUILD_TYPE )
2024-10-09 21:53:49 +02:00
message ( STATUS "[cmake] Build with C++ flags: ${CMAKE_CXX_FLAGS_${BUILD_TYPE}} ${CMAKE_CXX_FLAGS}" )
message ( STATUS "[cmake] Build with C flags: ${CMAKE_C_FLAGS_${BUILD_TYPE}} ${CMAKE_C_FLAGS}" )
gcc/clang (-fvisibility=hidden): corrections to compile and work properly (#4394)
* fix(ActiveRecord): missing ActiveRecordLib_API definitions for clang/gcc.
* fix(FPEnvironment): export FPEnvironmentImpl classes (#4393, #3331)
* fix(Crypto): export *Impl classes used from inlines (#4393, #3331)
* fix(Dynamic): explicitly instantiate and export Dynamic::Struct for string and int (-fvisibility=hidden) (#4393, #3331)
* fix(JSON): explicitly instantiate and export SharedPtr for JSON::Array and JSON::Object (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Set symbol visibility to hidden (#4393, #3331)
* enh(configure): user c++17 standard for iphone, Darwin and ARM-Linux.
* fix(UTF): explicitly instantiate and export 16 and 32-bit strings (-fvisibility=hidden) (#4393, #3331)
* fix(RecordSet): make Extraction.h internal and instantiate RecordsSet::column template functions only for supported types. (-fvisibility=hidden) (#4393, #3331)
* fix(UTF): fix explicitly instantiation on Windows (-fvisibility=hidden) (#4393, #3331)
* enh(CMake): Add github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(CppParser): Add missing declarations for CppParser_API (#4393, #3331)
* enh(CMake): Enable more options in github jobs for macOS with visibility set to hidden (#4393, #3331)
* fix(MongoDB): Add missing MongoDB_API (#4393, #3331)
2024-01-17 14:13:24 +01:00
message ( STATUS "[cmake] C++ symbol visibility: ${CMAKE_CXX_VISIBILITY_PRESET}" )
2012-06-26 14:40:26 +02:00
2014-10-09 13:42:51 +02:00
foreach ( component ${ Poco_COMPONENTS } )
2020-02-14 11:07:32 +01:00
message ( STATUS "Building: ${component}" )
2014-10-09 13:42:51 +02:00
endforeach ( )