* chore(PCRE): properly detect library type on newer macOS
* chore(ZLIB): move source files to own zlib directory and update CMake files.
* chore(PCRE): move source files to own pcre2 directory and update CMake files.
* chore(UTF8PROC): move source files to own utf8proc directory and update CMake files.
* chore(ZLIB): remove header files
* chore(PDJSON): move source files to own pdjson directory and update CMake files.
* chore(SQLite3): move source files to own sqlite3 directory and update CMake files.
* chore(UNBUNDLED): Correct includes.
* chore(expat): move source files to own expat directory and update CMake files.
* chore(wepoll): move source files to own wepoll directory and update CMake files.
* chore(7zip): move source files to own 7zip directory and update CMake files.
* chore(CMake): fix compile and link flags for dependent static libraries
* chore(CMake): set PCRE2_STATIC when building PCRE2.
* chore(SQLite3): Set SQLITE_THREADSAFE for unbundled build, add warnings.
* chore(CMake): Modifications to build and link properly static target libraries (using OBJECT library type and link using BUILD_LOCAL_INTERFACE)
* chore(CMake): fix order of includes in main CMakeLists.txt.
* chore(CI): Build mysql tests with cmake.
* chore(CI): Build mongodb, redis, sqlite no parser tests with cmake.
* chore(CI): Build odbc tests with cmake.
* chore(CI): Build more ations with cmake, other fixes.
* chore(CI): Fixes for macOS
* chore(CMake): extract hpdf and png files to own directories in dependencies
* fix(CMake): include dependencies after all module dependencies are resolved.
* fix(CMake): Improve dependency handling of dependencies to compile them only when necessary.
* fix(CMake): PDF: move t4.h to proper directory, modify include.
* fix(CMake): Fixes to link properly on all platforms.
* fix(CMAKE): Wrong ENABLE for SQLITE
* enh(PDF): Remove dependencies on hpdf headers from Poco::PDF interface and make usage of hpdf only internal.
* enh(CI): Convert more jobs to use cmake.
* enh(CI): Convert macOS sanitizer jobs to use cmake.
* enh(mkrelease): Copy dependencies when creating release package.
* eng(CMake): Add missing POCO_SO option to enable/disable small object optimization.
* enh(CI): Run linux sanitizer with cmake, various fixes and improvements.
* fix(CMake): bundled build: ZLIB::ZLIB is already linked with Foundation, no need to link again to Poco::Zip
* fix(CI): vptr undefined sanitizer causes foundation tests to fail when linking, disable it
* chore(tests): Minor code improvements.
* fix(AsyncNotificationCenter): fix a data race with member _listsEmpty by making it atomic.
* eng(CI): Add a few more time sensitive tests to cppignore.lnx
* chore(Thread): Code updates.
* eng(CI): Add a few more time sensitive tests to cppignore.lnx
* fix(AsyncNotificationCenter): must join threads to avoid data race in dtor.
* chore(CI): Pass TSAN_OPTIONS to jobs where necessary
* chore(CI): run rests without sudo, compile with parallelism
* chore(CI): Use POCO_MINIMAL_BUILD to simplify CMake configure lines.
* chore(CI): Add 32-bit Windows VS build
* chore(CMake): Printout cmake generator platform.
* chore(CMake): linux-gcc-make-armv7l -> linux-gcc-cmake-armv7l
* chore(ci): windows-2025-msvc-cmake-32bit -> windows-2025-msvc-cmake-Win32
* chore(CI): Convert all remaining jobs to CMake.
* chore(make): Prevent building with make.
* chore(CodeQL): exclude all external code from CodeQL checks.
* chore(macOS): Set min support version to 13.3 to properly support C++20 standard.
* New SQLite Only Unbundled Option
A new option to use an unbundled (external) SQLite but all other dependencies internal.
* Match Other Option Styles
Force the POCO_SQLITE_UNBUNDLED option to ON when POCO_UNBUNDLED is on. Switching to this style to match the rest of the Poco cmake options.
* sample(DBLogger): New sample to demonstrate DB logging to a file. (#4750)
* sample(DBLogger): Create messages via SQL logger in a thread (#4750)
* sample(DBLogger): Save messages from SQL files to an SQL database (works with SQLite) (#4750)
* chore(Makefile): Data samples depend on PocoUtil (#4750)
* sample(DBLogger): Refactored DBLogger with std::filesystem::directory_iterator and std::thread.
* sample(DBLogger): Add missing include <condition_variable>
* sample(DBLogger): Extracted log scanning and inserting functionality to class SQLLogInserter.
* sample(DBLogger): Create new logging table only when using demo messages option.
* feat(DBLogger): VS projects
* sample(DBLogger): Acquire options from configuration file.
* feat(DBLogger): regenerate VS projects (progen file change)
* sample(DBLogger): Add example DBLogger.properties file.
* sample(DBLogger): Process as much as possible when stopping processing.
* sample(DBLogger): Meaningful defaults in properties file.
* sample(DBLogger): Verify validity of database session on startup.
* sample(DBLogger): Configure demo SQL channel in properties file.
* chore(DBLogger): style and warnings
---------
Co-authored-by: Aleksandar Fabijanic <aleks-f@users.noreply.github.com>
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* feat(PocoDoc): search support
* feat(PocoDoc): enable FTS5 for search support
* feat(PocoDoc): enable FTS5
* chore(pocodoc): edit comment
* fix(StreamCopier): add argument to seekg
* enable searchIndex through the command line
* Add minor updates for search support
* Update of vs90 and regeneration of vs160 and vs170 projects
* Enhance configure script:FTS5 support for SQLite in --sqlite-fts flag
* Add tests for FTS3 and FTS5
* regeneration of vs160 and vs170 projects
* added missing lib data in CMake
* Update vs90 project and regenerate vs160 and vs170 projects with added Data include paths
* Revrting ProGen_vs170.vcxproj
* Revert ProGen in vs170 and regenerate PocoDoc vs160/vs170 projects to include updated Data path
* added missing includes
---------
Co-authored-by: Lara <lara@debian-gnu-linux-12.localdomain>
* fix(Data::ODBC): use connection and login timeouts in ODBC session implementation (#4366)
* fix(Data::ODBC): use only connection timeout in ODBC session implementation (#4366)
* fix(ODBC): consolidate login timeout; create temp directory if it doesn't exist #4366
---------
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* fix#4536
I've add transaction isolation support for SQLite
Warning! SQLite transactions are [serializable by design](https://
www.sqlite.org/isolation.html) but my implementation retuns false in
function hasTransactionIsolation and throw an exception in
setTransactionIsolation
* disable shared cache in TearDown()
* chore(doc): reword documentation
* we should waitresult of select before rollback (#4718)
---------
Co-authored-by: Alexander B <ale.bychuk@gmail.com>
* chore(Trace): add dev env settings
* add(Trace): init add Poco::trace and libbacktrace files
* feat(Exception): generate stack trace if enabled at compile time
* chore(DNSSD): remove binaries from git
* fix(Trace): build
* chore(ci): exclude exception text tests for trace build; add debug test script params
* chore(build): mac (dl)
* chore(cmake): Changes to build Trace with CMake.
* chore(cmake): Changes to build Trace on Windows
* chore(cmake): Improvements to include trace sample.
* chore(cmake): Fixes to properly build/link Trace on Linux
* chore(cmake): add_definitions --> add_compile_definitions
* chore(cmake): Build Trace as static and don't export it.
* chore(make): Link Trace with built-in libbacktrace on Linux
* chore(Trace): remove unnecessary sources for libbacktrace.
* chore(github): enable trace on a few github checks
* chore(cmake): Build Trace with clang++ on Linux.
* chore(cmake): Properly set POCO_ENABLE_TRACE globally when needed.
* fix(cmake): Trace: corrected include for clang on Linux
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
* enh(poco): Replace deprecated comments with C++ deprecated attribute.
* enh(Poco): Replace some deprecated functionality in Poco sources. (#4426)
* enh(Poco): Replace more deprecated functionality in Poco sources. (#4426)
* fix(CMake): Variable BUILD_SHARED_LIBS must be defined properly to create valid binaries.
* enh: Code improvements done while resolving deprecated functionality (#4426)
* Un-deprecate LocalDateTme (#4426)
* enh(Poco): Replace usage of deprecated functionality with other functions/classes (#4426)
* chore(SSL): temporarily un-deprecate SSL-related functionality (#4426)
* chore(SSL): temporarily un-deprecate old MongoDB protocol functionality (#4426)
* enh(Poco): Minor Hash improvements (#4426)
* enh(Foundation): Compile deprecated hash tests only when POCO_TEST_DEPRECATED is enabled (#4426)
* enh(Net): Compile deprecated Socket::select functionality only when POCO_TEST_DEPRECATED is enabled (#4426)
* enh(Bonjour): Replace deprecated Socket::select with PollSet (#4426)
* enh(Poco): Introduce POCO_DEPRECATED macro to have the ability to disable deprecation warnings in applications (#4426)
* test(ODBC): add few asserts to testStoredProcedureDynamicVar
* fix(ODBC): rename DynamicAny -> DynamicVar in tests
* fix(ODBC): make Dignostics static members inline to prevent explicit instantiation warnings on windows
---------
Co-authored-by: Alex Fabijanic <alex@pocoproject.org>
* enh(ThreadTest): add join test
* enh(SQLLogger): #4529 (wip)
* enh(SQLChannel): just few C++17 modernisations.
* enh(SQLiteTest): extend unit test to destroy SQL channel while it has pending messages. (#4529)
* enh(ODBC): improve exception descriptions and add string/batch size tests
* feat(SQLChannel): add store-and-forward mode
* fix(DataTest): SQLChannel *nix build and test run #4529
* fix(DataTest): CodeQL warning #4529
* chore(ODBCTest): lower the number of max statements in big batch
* feat(SQLChannel): add flush property #4529
* enh(SQLChannel): use event for interruptible sleep; reduce code duplication with lambda; update comments #4529
* fix(SQLChannel): flush time determination #4529
---------
Co-authored-by: Matej Kenda <matejken@gmail.com>
* feat(format): Add string_view format type spec #4409
* chore(Types): add demangle
* fix(Data): Oracle failing ODBC tests #4368
* fix some CQL and fuzz warnings; add Var::typeName()
* fix(build): -std=c++17 and c11
* fix windows build
* fix(Foundation): test apps vs projects c++17
* chore(build): remove uneeded compiler flag
* fix(VarHolder): number of digits range check for int->float conversion (reported by CIFuzz)
* fix(test): CIFuzz
* fix(CIFuzz): another attempt
* fix(progen): add LanguageStandard (stdcpp17, stdc11); regenerate vs170 projects
* fix(CiFuzz): add int->float precision loss barrier; fix erroneous number of digits logic
* enh(Var): silent loss of precision on int->float conversion #4423
* enh(Var): silent loss of precision on int->float conversion #4423
* chore(build): remove old build files
* chore: fix missing parens warning
* enh(Thread_POSIX): prevent double-joining; add error description to exceptions
* fix(Data): unresolved Column<long> linkage in test
* fix(demangle): determine type name from template parameter; add eror diagnostic for demangling failures
* chore(buildwin): remove old vs versions from build and progen scripts; update documentation
* chore(buildwin): remove leftover closing curly
* Remove _WIN32_WCE macro
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove WinCE support from build files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. Remove all
references from build systems / scripts.
* Remove Windows CE related source and header files
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove wcelibcex folder
Poco now use C++17 and Windows CE does not support it and VS2017 does
also not support it so we can just remove Windows CE code. First remove
all macro usages from our own files.
* Remove rest Windows CE mentions
There where some Windows CE mentions left. Remove those.
* Update Windows CE documentation
We should keep documentation some time so people can find reason for
remove.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
* add sendfile method for streamsocket
* add mswsock.lib to the project files and templates
* remove /DPOCO_NO_AUTOMATIC_LIBS for cmake windows build
* merge from upstream
* merge from upstream
* fix code stile
add NotImplemented exception for unsupported platforms
exculude <sys/sendfile.h> for POCO_EMSCRIPTEN, because https://
github.com/emscripten-core/emscripten/pull/16234
* add iostream include for std::cout
* fix compilation for emscripten (wrap sendfile)
* fix(SQLParser): use Data_API if available
* fix(ProGen): wrong AdditionalOptions separator #4259
* fix(SQLParser): add default export define when embedded