Update POCO library.

This commit is contained in:
Sandu Liviu Catalin committed 2023-03-23 20:19:11 +02:00
1 parent 8d15f4b6e9
commit 233fc103f9
2521 files changed
+257092 -72789

No files matched your search

+1 -1
View File
@@ -461,7 +461,7 @@ or
To use POCO C++ Libraries in your cmake project, add following line in your project for example to use crypto:
find_package(Poco REQUIRED PocoCrypto)
find_package(Poco REQUIRED Crypto)
....
target_link_libraries(yourTargetName ... Poco::Crypto)
+286
View File
@@ -1,6 +1,292 @@
POCO C++ Libraries Release Notes
AAAIntroduction
!!!Release 1.12.3
!!Summary of Changes
- GH #3682: Including Any.h causes Compiler error on Visual Studio
- GH #3683: Poco::format receives empty Vector<Any>
- GH #3692: v1.12.0 and v1.12.1 Poco::Any compile problem
- GH #3723: DateTimeFormatter creates invalid ISO8601 string
- GH #3737: Poco EventImpl for Win32 breaks INFINITE wait
- GH #3744: bindImplLOB zero size (or NULL) HY104 "Invalid precision value"
- GH #3748: Poco 1.12.2 - Building DataMySQL still fails (issue #3689)
- GH #3753: Fix optional JSON support for MySQL
- GH #3763: Poco::Util::Application VxWorks main is incorrect
- GH #3769: Fixed converting/correcting pre-gregorian dates (#3723).
- GH #3795: aix system NumberFormatter.cpp build error
- GH #3805: Upgrade expat to 2.4.9
- GH #3814: Security Vulnerability identified in POCO version 1.12.2
- GH #3825: VS 2022 Net project missing ARM64 config
- GH #3834: SocketImpl::available()
- GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE]
- GH #3847: Upgrade bundled SQLite to 3.39.4
!!!Release 1.12.2
!!Summary of Changes
- GH #3460 fix(Platform): LoongArch support
- GH #3688 Linking Crypto-testrunner fails
- GH #3693 VS2022 compilation issues
- GH #3698 SIGABRT in OSSL_PROVIDER_unload with static OpenSSL3
- GH #3699 POSIX Event state need not be atomic
- GH #3700 Release script must include build_vs170.cmd
- GH #3708 wakeup fd is never read
- GH #3711 lowercase winsock2 and iphlpapi to allow cross compile
- GH #3716 Compiling with clang_cl_x64_x64 on Visual Studio 2022 failed
- GH #3717 Only support extracting JSON fields when the SDK supports it
- GH #3719 PocoNet Project File does not support Visual Studio 2022
- GH #3720 Update max MSVC version information
- GH #3721 fails to build with Visual Studio projects
- GH #3722 Added missing Crypto Header to ProGen source
- GH #3724 Crypto: Progen again to add new files and bring back ARM64 configuration
- GH #3727 Add how to install using Conan section on README
- GH #3733 Poco::format and C++20
- GH #3734 g++ C++20 warnings
!!!Release 1.12.1
!!Summary of Changes
- GH #3677 PocoFoundationConfig.cmake should now check for PCRE2
- GH #3686 SIGSEGV in OSSL_PROVIDER_unload with static OpenSSL3
!!!Release 1.12.0
!!Summary of Changes
- This release introduces Prometheus library
- Upgraded bundled PCRE to PCRE2 10.40
- Upgraded double-conversion to v3.2.0
- Small object optimization for Any and Dynamic::Var (compile-time option, enabled by default)
- GH #709: Poco::Dynamic::Var memory leak
- GH #1039 Race condition in Poco::AsyncChannel close/log
- GH #1459 Fix Poco::Net::Socket::select() epoll and poll implementations
- GH #1687 SQLite Notifier has no table information
- GH #1884 Poco::Net::TCPServerDispatcher::run() issue
- GH #2084 LogFile_STD (LogFileImpl) fails to recover from getting out of space
- GH #2085 Crash due to race condition in TCPServerDispatcher
- GH #2091 Integrate windows poll
- GH #2222 Warning when compiling my that's use VarHolder
- GH #2270 Poco::Net::HTTPClientSession not supporting binding source address for proxy connect
- GH #2271 Poco::Net::HTTPClientSession source IP address
- GH #2285 Poco::Data::SQLite::Connector::open() crashes on db file with non existing directory
- GH #2287 Poco::Data::Statement becomes unusable after exception
- GH #2352 Allow setting the socket of SecureSocketImpl to no-blocking
- GH #2386 As of C++11, std::swap is noexcept
- GH #2401 Poco::Net::MailMessage::read hangs on missing final multipart boundary
- GH #2457 Poco::Redis after executing "auth" command next command always return "OK"
- GH #2465 Operating system specific thread ID is not available any more in Logger/Formatter
- GH #2470 Can't use Poco::MongoDB::Cursor on aggregation cursor
- GH #2511 Negative precision in NumberFormatter::format()
- GH #2513 Poco::Net::SocketConnector unregistering
- GH #2516 SHA3Engine hard to use with HMACEngine duplicate enhancement
- GH #2521 Poco::Data::MySQL::Extractor null value extraction
- GH #2538 Poco::Data::Session::connector() returns empty string for MySQL session
- GH #2569 Poco::Data::MySQL timestamp
- GH #2576 Add std::chrono support to Timespan
- GH #2590 Poco::Zip 64-bit extensions not set
- GH #2614 Poco::Net::NTPClient ignores second fractions enhancement
- GH #2619 Decoding URI query parameters incompatible with Spring 5
- GH #2638 Upgrade Windows SDK Used for Building Poco
- GH #2688 Static code analyzer warnings
- GH #2691 MinGW: fatal error: kernelspecs.h: No such file
- GH #2706 [windows bug] pollset WSAPoll with non blocking socket will not report error
- GH #2755 Poco::Data::MySQL LONGTEXT
- GH #2821 Poco::Buffer: full on creation
- GH #2849 setPadding does nothing when OpenSSL 1.1.x is used
- GH #2864 SessionImpl begin
- GH #2940 Add vcpkg installation instructions
- GH #2943 Avoid clang 10 -Wimplicit-int-float-conversion warning/error when converting int into float
- GH #2959 Fix percent-encoded fragment modification in Poco::URI
- GH #2980 Memory leaks in Poco::Any
- GH #2986 Once exhausted, Poco::ObjectPool does not lend out returned objects
- GH #3016 Poco::MongoDB::Array interface improvements
- GH #3026 Poco::Net::HTTPDigestCredentials added support for RFC7616 algorithms
- GH #3039 Poco errors with _DEBUG and NDEBUG
- GH #3052 Fix constness of URI::getPathSegments
- GH #3088 Fix error in find_package example
- GH #3056 Inconsistent behavior ConsoleChannel vs. WindowsConsoleChannel
- GH #3062 Makefile: space(s) following target name will break build (during link)
- GH #3073 libPocoCrypto.so: undefined reference to `pthread_atfork' when linking statically with OpenSSL 1.1
- GH #3104 Publicly expose Poco::Message parameters
- GH #3105 CMake: use GNUInstallDirs
- GH #3175 SharedLibrary::isLoaded() not thread safe
- GH #3195 MinGW also defines __GNUC__
- GH #3240 Task::postNotification possible leak
- GH #3241 Poco::Data::SessionPool change connection timeout
- GH #3251 Poco::JSON Serializing NAN
- GH #3253 Arbitrary indent of 2 applied to JSON string objects Var conversion
- GH #3261 Upgrade to PCRE2 latest version
- GH #3283 DatagramSocket does not allow IPV6_V6ONLY
- GH #3296 Add move semantics to Net (sockets and addresses)
- GH #3297 Poco::Foundation Fails to Compile With POCO_ENABLE_SOO Defined
- GH #3323 Extend format patterns %T and %I to support native threads
- GH #3342 DB into() does not compile for more than 20 members in a tuple
- GH #3357 Add socket proactor
- GH #3359 Make PollSet::poll() interruptible
- GH #3371 SocketReactor::getNotifier() does not use socket.impl()
- GH #3372 FTPClientSession::activeDataConnection 1.11.0 cannot set specific data port
- GH #3374 No access to padding in Cipher
- GH #3375 Poco::Net::PollSet::SocketModeMap poll(const Poco::Timespan& timeout) hasSignaledFDs issue slow down connections
- GH #3378 Poco::Net::PollSet function setMode 1.11.0 cause while(1) on windows
- GH #3380 Windows SO_REUSEADDR is neither reliable nor safe
- GH #3384 Always set thread names on POSIX platforms
- GH #3385 Poco::Net::IPAddress::tryParse does not work for "::"
- GH #3396 Poco::Data::ODBC - dbEncoding property not used for insert/update
- GH #3399 IPAddress::isLoopback() returns false for IPv4 mapped in IPv6
- GH #3404 Poco::Net: make MessageHeader limits configurable
- GH #3415 OpenSSL 3.0 support
- GH #3417 Calling SocketReactor's run() method in a program's main thread yields a lot of null pointer exceptions
- GH #3421 Cannot use HMACEngine with SHA2Engine
- GH #3452 Syslog: Include Facility to Syslog Message
- GH #3453 added facility to SyslogChannel
- GH #3460 LoongArch support
- GH #3481 Poco::JSON DataType support for MySQL
- GH #3482 Visual Studio 2022 (v170) missing from buildwin.cmd
- GH #3486 Windows on ARM64 support
- GH #3516 Fix OpenSSL 3.0 deprecated warnings
- GH #3529 Added LocalConfigurationView to only search inside the viewed scope
- GH #3543 Visual Studio Warning C4244
- GH #3558 Race condition in SSLManager
- GH #3561 Add envelope to crypto
- GH #3569 Readded named substring support for regexes
- GH #3580 Rounds very large negative numbers to the incorrect values
- GH #3592 Add 425 / HTTP_TOO_EARLY to HTTPResponse::HTTPStatus
- GH #3598 Poco::Net::Socket::available does not always return correct value for UDP
- GH #3602 Add Poco::Data::JSONRowFormatter
- GH #3603 Update minimum GCC version information
- GH #3611 VS2022 Arm64 projects missing or do not load
- GH #3613 Poco::Net::UDPHandler data race
- GH #3620 MariaDB still uses tx_isolation for transaction isolation unlike MySQL 8+ which uses transaction_isolation
- GH #3624 Upgrade double-conversion to v3.2.0
- GH #3628 Poco::Net::PollSet data race
- GH #3629 Event data race
- GH #3633 Poco::Redis: Support Authentication
- GH #3635 ConfigurationView and JSON is broken for array access
- GH #3639 Bugcheck: indicate compiler that functions will never return
- GH #3640 fix warning C4717: 'format<vector<any>': recursive on all control paths, function will cause runtime stack overflow
- GH #3641 FifoBuffer.advance method not throw exception when length==0
- GH #3642 Make ParallelSocketReactor thread namable
- GH #3651 Poco::Net::TCPserver missing from Net/samples/CMakeLists.txt
- GH #3652 Linking with Foundation on Android gives error
- GH #3655 Poco::Net::Socket::select EPOLL implementation returns socket in exceptList when empty list is given
- GH #3658 Support for chunked transfer encoding trailer
- GH #3661 Poco::Net::PollSet::add()/update() semantics
- GH #3665 MSVC does not properly recognize std version
!!Incompatible Changes and Possible Transition Issues
- All swap operations are noexcept now
- PollSet::add() is mode-cumulative now
- UDPServer now requires explicit starting
- Move semantics for sockets and SocketAddress (compile-time option, disabled by default)
!!!Release 1.11.6
!!Summary of Changes
- GH #3147: Reading from request stream hangs when "Transfer-Encoding: chunked" is used
- GH #3859: zlib headers not updated
- Build system fixes for Xcode on Apple Silicon.
- Upgrade bundled SQLite to 3.40.0
!!!Release 1.11.5
!!Summary of Changes
- GH #3849: Upgrade bundled libexpat to 2.5.0 [fixes CVE]
!!!Release 1.11.4
!!Summary of Changes
- GH #3805: Upgrade expat to 2.4.9
- GH #3846: Upgrade bundled zlib to 1.2.13 [fixes CVE]
- GH #3847: Upgrade bundled SQLite to 3.39.4
!!!Release 1.11.3
!!Summary of Changes
- GH #3567: fix(openssl-initializer): check legacy provider existence for legacy exception
- GH #3587: MySQL UUID binding temporary string
- GH #3632: Redis - add TLS support
- updated a few copyright dates
!!!Release 1.11.2
!!Summary of Changes
- GH #2882: Handle negative DST offset
- GH #3268: Poco redis command set have a bug when you want to set nx ex or expireTime
- GH #3338: NamedMutex does not work on Linux distributions where fs.protected_regular=1
- GH #3448: Basic support for OpenSSL 3.0.0
- GH #3458: encryptString() crash on redhat/centos 8 with FIPS enabled using md5 default digest
- GH #3465: NetSSL_Win: bad error handling when decodeMessage() fails
- GH #3466: DefinePlatformSpecific.cmake: handle RelWithDebInfo and MinSizeRel configurations
- GH #3470: bug in JSON ParseHandler.cpp (RFC 7159 should be valid)
- GH #3472: Add Windows 11 detection to Environment_WIN32U
- GH #3483: Adds Windows 11 and Server 2022 to Environment::osDisplayName()
- GH #3485: Adds Visual Studio 2022 (v170) to buildwin.cmd
- GH #3495: Should the Array::operator[] throw?
- GH #3500: Sandbox all iFrames in PocoDoc
- GH #3504: OpenSSL 3 compatibility
- GH #3505: JSON::PrintHandler.value(bool) prints incorrect value
- GH #3507: Reference counting for bound configuration in Util::Option is broken
- GH #3508: #3507: Fix bound configuration reference counting in Poco::Util::Option.
- GH #3509: fix dst and utcOffset handling for Dublin time zone
- GH #3515: NetSSL_OpenSSL Testsuite: testInterop() and testProxy() fail due to changed certificate
- GH #3518: Expat version check in #defines incorrect.
- GH #3519: Add convertation to string in Redis Command#set
- GH #3524: [linux] Why is Poco::XML linked to Poco::Zip target?
- GH #3525: Bad management of file in case of OpenSSLException in X509Certificate::readPEM and X509Certificate::writePEM
- GH #3538: Upgrade bundled expat to 2.4.7
- GH #3544: Add back NIOS2 double conversion detection to fix compile errors
- GH #3549: Test against the correct signatures in the JWT ES384 and ES512 tests
- GH #3553: Upgrade bundled zlib to 1.2.12
- GH #3559: Poco::Data::PostgreSQL - DateTime extraction truncates fractional seconds
- GH #3563: Remove support for OpenSSL < 1.0
!!!Release 1.11.1
!!Summary of Changes
- Upgraded bundled PCRE to 8.45
- Upgraded bundled SQLite to 3.36.0
- GH #2823: error: implicit conversion from 'int' to 'float' changes value from 2147483647 to 2147483648
- GH #2966: SocketReactor loads one core of CPU up to 100%
- GH #3221: Crash reported on Windows in X509Certificate verification
- GH #3330: Poco::Data::ODBC::ODBCStatementImpl causes crash
- GH #3334: Fork error on tvOS and watchOS
- GH #3335: XML error when build 1.11.0
- GH #3344: [bug] MacOS bundle destination path is not set
- GH #3345: fix cmake bundle
- GH #3347: The definition POCO_NO_FORK_EXEC is not respected or something like this
- GH #3353: fix fork option
- GH #3360: Add POCO_PGSQL_{INCLUDE,LIB} variables
- GH #3363: Fixed compilation error with MongoDB::Connection and Util::Application
- GH #3377: Updates comments for windows
- GH #3381: DNS::hostByAddress not thread-safe
- GH #3397: Fix crash due to X.509 certificates with Subject Alternative Name other than DNS Host
- GH #3400: fix std::localtime not thread safe
- GH #3414: fix missing expat definition
- GH #3425: Fixed suspend/resumeEvents pair in DirectoryWatcher
!!!Release 1.11.0
!!Summary of Changes
+13
View File
@@ -45,3 +45,16 @@ The following naming conventions are used:
are placed in the <*lib64*> directory. DLLs are placed in <*bin*> (32-bit)
or <*bin64*> (64-bit). 64-bit DLLs are named PocoLIB64.dll for release
and PocoLIB64d.dll for debug, respectively.
!!MSVC Compiler Notes
!!!C++ standard version not properly defined
In order to work around that, `/Zc:__cplusplus` compiler flag is necesary.
See following issues for details and explanations:
* https://github.com/pocoproject/poco/issues/3665
* https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
+14 -14
View File
@@ -3,7 +3,7 @@ AAAIntroduction
!!!Introduction
Starting with release 1.4.0 the POCO C++ Libraries can be used on
Starting with release 1.4.0 the POCO C++ Libraries can be used on
Windows CE 6. Project files for Visual Studio 2008 are provided that
support static and shared debug and release builds.
@@ -14,7 +14,7 @@ The port should work for Windows CE 5 as well, however, this has not been tested
The project files contain build configurations for the "Digi JumpStart (ARMV4I)"
target. To use another target, the Visual Studio project and solution files
must be changed accordingly. Note that the project files cannot be opened
must be changed accordingly. Note that the project files cannot be opened
by Visual Studio unless the target referenced in the project and solution files is available.
To change the project and solution files for your platform, replace
all occurrences of the string "Digi JumpStart (ARMV4I)" with the name
@@ -28,7 +28,7 @@ files, so there's no risk breaking something).
!!Poco::Environment
Windows CE does not support environment variables.
Windows CE does not support environment variables.
Therefore, Poco::Environment::get() and Poco::Environment::has() only support the
following hardcoded "pseudo" environment variables:
* TEMP
@@ -38,22 +38,22 @@ following hardcoded "pseudo" environment variables:
* OS
* NUMBER_OF_PROCESSORS
* PROCESSOR_ARCHITECTURE
Poco::Environment::set() always throws a Poco::NotImplementedException.
!!Date/Time Support
Some date/time features are implemented with the help of [[http://wcelibcex.sourceforge.net/ WCELIBCEX]].
The library is statically included in the Foundation library to simplify the build process.
The library is statically included in the Foundation library to simplify the build process.
However, it is also possible to use WCELIBCEX as a separate library if the Foundation project file is modified accordingly
(by removing or excluding from build the WCELIBCEX folder and modifying the header file search path accordingly).
The following functions from WCELIBCEX are used:
* wceex_time()
* wceex_localtime()
* wceex_mktime()
It should also be possible to use wcecompat instead of WCELIBCEX, as this library provides
It should also be possible to use wcecompat instead of WCELIBCEX, as this library provides
similar features. In this case, the calls to the wceex_* functions need to be replaced with
the wcecompat counterparts. The affected files are Random.cpp, LocalDateTime.cpp,
Timezone_WINCE.cpp and ThreadPool.cpp.
@@ -66,7 +66,7 @@ the application.
!!Poco::Path
Poco::Path::listRoots() returns the root directory ("\"), as well as all mounted storage devices
Poco::Path::listRoots() returns the root directory ("\"), as well as all mounted storage devices
(e.g., "\Hard Disk"), even if they are also present in the root directory.
Poco::Path::current() and Poco::Path::home() always return the root directory.
@@ -91,7 +91,7 @@ samples can be used to terminate a process from the command line.
!!Crypto and NetSSL
Crypto and NetSSL_OpenSSL have not been tested yet. Project files are there, but they might need some adaptions depending on
Crypto and NetSSL_OpenSSL have not been tested yet. Project files are there, but they might need some adaptions depending on
how OpenSSL has been built for the Windows CE target.
@@ -111,7 +111,7 @@ These are RawSocketTest::testEchoIPv4(), RawSocketTest::testSendToReceiveFromIPv
!!!Build Notes
Optimization settings should be set as follows for release builds
Optimization settings should be set as follows for release builds
(<*Properties > Configuration Properties > C/C++ > Optimization*>):
* Optimization: Custom
* Inline Function Expansion: Default
@@ -120,13 +120,13 @@ Optimization settings should be set as follows for release builds
* Favor Size or Speed: Favor Fast Code (/Ot)
* Whole Program Optimization: No
Other settings may or may not produce working programs.
Specifically, setting <*Optimization*> to <*Maximize Speed (/O2)*> will result in failures in the
Other settings may or may not produce working programs.
Specifically, setting <*Optimization*> to <*Maximize Speed (/O2)*> will result in failures in the
test suite for Foundation Events due to a compiler optimizer bug.
For shared/DLL builds, the /FORCE:MULTIPLE option is passed to the linker. This is
to avoid a problem with iostream classes and their methods (template instantiations),
which for some unknown reason (possibly bug) will be exported by the Foundation library
to avoid a problem with iostream classes and their methods (template instantiations),
which for some unknown reason (possibly bug) will be exported by the Foundation library
(and others) and thus cause multiply defined symbol errors.
The reference system used for testing is a Digi ConnectCore 9P 9360 running Windows CE 6.0.
+14 -14
View File
@@ -3,7 +3,7 @@ AAAIntroduction
!!!Introduction
Starting with release 1.4.1 the POCO C++ Libraries can be used on
Starting with release 1.4.1 the POCO C++ Libraries can be used on
VxWorks 5.5.1 and newer. Project files for Tornado are provided that
support debug and release builds using the Diab C++ compiler.
@@ -16,7 +16,7 @@ When compiling the POCO C++ Libraries for a VxWorks target, as well as
when including POCO C++ Libraries headers in a project for a VxWorks
target, the preprocessor macro <[POCO_VXWORKS]> must be defined. This is
because the Diab C++ compiler does not provide a predefined macro that
allows for reliable detection of a VxWorks target.
allows for reliable detection of a VxWorks target.
!!VxWorks OS Libraries
@@ -55,7 +55,7 @@ Some OS libraries can be omitted if the POCO class requiring it
- Poco::Environment::nodeName() returns the result of gethostname(); the host name
can be set with sethostname().
- Poco::Environment::processorCount() always returns 1.
!!Date/Time Support
@@ -70,7 +70,7 @@ Some OS libraries can be omitted if the POCO class requiring it
- Poco::File::canRead() and Poco::File::canWrite() always return
true. Poco::File::canExecute() always returns false, as does
Poco::File::isLink().
Poco::File::isLink().
- Poco::File::isHidden() works the same as on Unix platforms
(files with names starting with a period are considered hidden).
- Poco::File::setWriteable() and Poco::File::setExecutable()
@@ -81,18 +81,18 @@ Some OS libraries can be omitted if the POCO class requiring it
Poco::Path::home() returns the value of environment variable <[HOME]>, if defined,
or else the root directory path ("/").
!!Poco::FPEnvironment
The Poco::FPEnvironment class is not available on VxWorks and
cannot be used.
!!Poco::Process, Poco::Pipe, Poco::SharedMemory, Poco::NamedEvent, Poco::NamedMutex
VxWorks does not support processes and POCO makes no attempt
to hide this fact. Poco::Process, Poco::Pipe (and related stream classes),
to hide this fact. Poco::Process, Poco::Pipe (and related stream classes),
Poco::SharedMemory, Poco::NamedEvent and Poco::NamedMutex are not available on VxWorks.
@@ -104,7 +104,7 @@ On VxWorks, Poco::RWLock is an ordinary mutex.
!!Poco::SharedLibrary
Symbol lookup (Poco::SharedLibrary::hasSymbol() and Poco::SharedLibrary::getSymbol()) is
slow, as the entire symbol table has to be searched sequentially (using symEach())
slow, as the entire symbol table has to be searched sequentially (using symEach())
to find a symbol defined in a specific module.
@@ -116,7 +116,7 @@ not support std::wstring.
!!Poco::Util::Application
The macro <[POCO_APP_MAIN]> defines a function
The macro <[POCO_APP_MAIN]> defines a function
int pocoAppMain(const char* appName, ...);
----
@@ -132,7 +132,7 @@ list of command-line arguments must be terminated by a NULL argument.
An application waiting in Poco::Util::ServerApplication::waitForTerminationRequest()
can be shut down by calling Poco::Util::ServerApplication::terminate().
The macro <[POCO_SERVER_MAIN]> defines a function
The macro <[POCO_SERVER_MAIN]> defines a function
int pocoSrvMain(const char* appName, ...);
----
@@ -170,9 +170,9 @@ will generate the project files (.wpj). On Windows, a Cygwin installation
is required to run this script. Project files are
generated from VxWorks build description files (<**.vxbuild*>),
which are present in all library directories (<*$POCO_BASE/Foundation*>,
<*$POCO_BASE/XML*>, etc.) of libraries that are available on VxWorks. Also
required are build configuration files that specify the build settings
for a specific target architecture. These are located in
<*$POCO_BASE/XML*>, etc.) of libraries that are available on VxWorks. Also
required are build configuration files that specify the build settings
for a specific target architecture. These are located in
<*$POCO_BASE/build/vxconfig*>. To generate
a Tornado project file, run the <[vxprogen]> script from the
respective directory and pass the name(s) of the desired build configuration
+15 -15
View File
@@ -5,7 +5,7 @@ AAAIntroduction
Starting with release 1.4.2 the POCO C++ Libraries can be used on
Android.
In the past the android NDK used a gmake-based build system. They provided a
In the past the android NDK used a gmake-based build system. They provided a
a standalone "customized" toolchain. Also they used gcc and the gnu-stl as
build environment. But these are all obsolete.
@@ -15,17 +15,17 @@ standard library.
!!!Requirements
To build Poco for android you need as minimum the android NDK plus cmake executable.
You can download the newest NDK from: https://developer.android.com/ndk and
cmake from http://www.cmake.org or if you have already installed Android SDK,
To build Poco for android you need as minimum the android NDK plus cmake executable.
You can download the newest NDK from: https://developer.android.com/ndk and
cmake from http://www.cmake.org or if you have already installed Android SDK,
then install the NDK and cmake executable via the <*Android SDK Manager*>.
!!!Quick start
<path_to_android_sdk>/cmake/<cmake_version>/bin/cmake
-H<path_to_poco_sourcen>
-B/tmp/poco-build
-G'Ninja'
<path_to_android_sdk>/cmake/<cmake_version>/bin/cmake
-H<path_to_poco_sourcen>
-B/tmp/poco-build
-G'Ninja'
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_MAKE_PROGRAM=<path_to_android_sdk>/cmake/<cmake_version>/bin/ninja
-DCMAKE_TOOLCHAIN_FILE=<path_to_android_sdk>/ndk-bundle/build/cmake/android.toolchain.cmake
@@ -48,7 +48,7 @@ also the ninja build tool:
The easiest way is to set the PATH environment to <path_to_android_sdk>/cmake/<cmake_version>/bin
then cmake and ninja is found via the environment.
If you not set the PATH environment you should add -DCMAKE_MAKE_PROGRAM=<path_to_android_sdk>/cmake/<cmake_version>/bin/ninja
If you not set the PATH environment you should add -DCMAKE_MAKE_PROGRAM=<path_to_android_sdk>/cmake/<cmake_version>/bin/ninja
as parameter for cmake.
If you have didn't installed the Android SDK, it is also possible to use make as build tool:
@@ -56,8 +56,8 @@ If you have didn't installed the Android SDK, it is also possible to use make as
or
<path_to_android_sdk>/ndk/<ndk_version>/prebuilt/linux-x86_64/bin/make
The easiest way is to set the PATH environment to <path_to_android_sdk>/ndk/<ndk_version>/prebuilt/linux-x86_64/bin.
If you not set the PATH environment you should add -DCMAKE_MAKE_PROGRAM=<path_to_android_sdk>/ndk/<ndk_version>/prebuilt/linux-x86_64/bin/make
The easiest way is to set the PATH environment to <path_to_android_sdk>/ndk/<ndk_version>/prebuilt/linux-x86_64/bin.
If you not set the PATH environment you should add -DCMAKE_MAKE_PROGRAM=<path_to_android_sdk>/ndk/<ndk_version>/prebuilt/linux-x86_64/bin/make
as parameter for cmake.
The toolchain file can be found in the android NDK:
@@ -75,10 +75,10 @@ cmake -H<path_to_poco_sourcen> -B<path_to_build_dir>/poco_build -G'Ninja' -DCMAK
To build with the tools from the Android SDK:
<path_to_android_sdk>/cmake/<cmake_version>/bin/cmake
-H<path_to_poco_sourcen>
-B/tmp/poco-build
-G'Ninja'
<path_to_android_sdk>/cmake/<cmake_version>/bin/cmake
-H<path_to_poco_sourcen>
-B/tmp/poco-build
-G'Ninja'
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_MAKE_PROGRAM=<path_to_android_sdk>/cmake/<cmake_version>/bin/ninja
-DCMAKE_TOOLCHAIN_FILE=<path_to_android_sdk>/ndk-bundle/build/cmake/android.toolchain.cmake
Binary file not shown.