mirror of
https://github.com/pocoproject/poco.git
synced 2024-12-13 10:32:57 +01:00
trunk/branch integration: fix makefile README CHANGELOG components configure etc.
This commit is contained in:
parent
86c574612c
commit
a360bf900f
839
CHANGELOG
839
CHANGELOG
@ -1,5 +1,844 @@
|
||||
This is the changelog file for the POCO C++ Libraries.
|
||||
|
||||
|
||||
Release 1.4.2 (2011-08-xx)
|
||||
==========================
|
||||
|
||||
- added Poco::DateTimeFormat::ISO8601_FRAC_FORMAT
|
||||
- added new Poco::DateTimeFormatter and Poco::DateTimeParser format specifier:
|
||||
%s for seconds with optional fractions of a second
|
||||
- fixed a problem with ioctl() on BSD platforms (including OS X) where the
|
||||
second argument to ioctl() is unsigned long instead of int, causing bad
|
||||
things on a OS X 64-bit kernel.
|
||||
- fixed a potential endless loop when enumerating IPv6 network addresses
|
||||
(reported by Laurent Carcagno)
|
||||
- new compile-time config option on Windows to set thread names in
|
||||
debugger. Enable with -DPOCO_WIN32_DEBUGGER_THREAD_NAMES. Available
|
||||
only in debug builds.
|
||||
- Cipher can now create Base64 and HexBinary encoded output without linefeeds
|
||||
(suitable for use in cookies, etc.)
|
||||
- added Poco::Path::popFrontDirectory()
|
||||
- improved VxWorks support
|
||||
- IPv6 fixes: added proper scope id handling in IPAddress, SocketAddress
|
||||
and related classes.
|
||||
- Added Poco::Net::ServerSocket::bind6() which allows control over the
|
||||
IPPROTO_IPV6/IPV6_V6ONLY socket option.
|
||||
- Removed Poco::MD2Engine class due to licensing issues (the
|
||||
license for the MD2 code from RSA only allows non-commercial
|
||||
use). Note that the MD4 and MD5 code from RSA does not have
|
||||
this issue.
|
||||
- fixed a Net HTTP client testsuite issue where some tests might
|
||||
have failed due to prematurely aborted connections by
|
||||
the HTTPTestServer.
|
||||
- Poco::Net::SocketAddress: when there is more than one address
|
||||
returned by a DNS lookup for a name, IPv4 addresses will be
|
||||
preferred to IPv6 ones.
|
||||
- NetworkInterface::list() now also returns IPv4 interfaces on Windows when
|
||||
built with -DPOCO_HAVE_IPv6
|
||||
- XMLWriter: fixed a bug with attribute namespaces (no namespace prefix
|
||||
written if attribute namespace is the same as element namespace)
|
||||
- fixed SF# 3378588: Mismatched new[]/delete (in RSAEncryptImpl and RSADecryptImpl)
|
||||
- fixed SF# 3212954 (OpenSSLInitializer::uninitialize() crash) and
|
||||
SF# 3196862 (Static OpenSSLInitializer instance causes Windows deadlocks) by
|
||||
remoting the static Poco::Crypto::OpenSSLInitializer instance. Automatic OpenSSL
|
||||
initialization is now done through Poco::Crypto::Cipher, Poco::Crypto::CipherKey,
|
||||
Poco::Crypto::X509Certificate, Poco::Net::Context classes; however, it is still
|
||||
recommended to call Poco::Crypto::initializeCrypto() and
|
||||
Poco::Crypto::uninitializeCrypto() early at application startup, and late at
|
||||
shutdown respectively (or Poco::Net::initializeSSL()/Poco::Net::uninitializeSSL()
|
||||
if the NetSSL library is used) to avoid multiple full OpenSSL init/uninit cycles
|
||||
during application runtime.
|
||||
- Poco::Logger now also support a symbolic log level "none"
|
||||
(for use with setLevel()) that disables logging completely
|
||||
for that Logger (equivalent to setLevel(0)).
|
||||
- Added experimental Android support, using the existing gmake-based
|
||||
build system.
|
||||
- fixed SF# 3288584: DateTimeFormatter link error
|
||||
- fixed SF# 3187117: Typo in InflatingInputStream doc
|
||||
- fixed SF# 3309731: _WIN32_WCE comparison should be with 0x600 not 600
|
||||
- fixed SF# 3393026: RegularExpression.h identical enum value
|
||||
- fixed SF# 3274222: AtomicCounter's postfix operators aren't atomic on Windows
|
||||
- fixed SF# 3317177: Handle leak on windows
|
||||
- fixed SF# 3181882: Poco::URI::getPathEtc() double-encodes query
|
||||
- fixed SF# 3379935: ThreadPool Start Bug
|
||||
- fixed SF# 3354451: Poco::Format::parsePrec never sets the precision to zero
|
||||
- fixed SF# 3387258: _MAX_PATH used but unknown in Path_WIN32
|
||||
- fixed a problem in RSAKeyImpl where direct access to the RSA in a EVP_PKEY
|
||||
would no longer work in recent OpenSSL versions. Using EVP_PKEY_get1_RSA()
|
||||
fixes the issue.
|
||||
- added Poco::Crypto::EncryptingInputStream, Poco::Crypto::EncryptingOutputStream,
|
||||
Poco::Crypto::DecryptingInputStream and Poco::Crypto::DecryptingOutputStream.
|
||||
- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException
|
||||
- fixed SF# 3178098: Add constructor to Poco::TemporaryFile to specify directory
|
||||
- fixed SF# 3175310: Absolute path when device
|
||||
- fixed SF# 3301207: Guided tour example contradicts apidoc (API doc was wrong)
|
||||
- Poco::Net::HTTPMessage::setContentLength() and Poco::Net::HTTPMessage::getContentLength() now
|
||||
use std::streamsize instead of int. This enables 64-bit Content-Length support at least
|
||||
on 64-bit platforms.
|
||||
- fixed SF# 3177530: TemporaryFile::tempName() + glob bug on xp
|
||||
- fixed SF# 3177372: FileChannel documentation inconsistency
|
||||
- added %E format specifier to Poco::PattermFormatter (epoch time in seconds
|
||||
since midnight, January 1 1970)
|
||||
- On Windows, Poco::Util::ServerApplication now supports a /description command
|
||||
line argument for specifying a service description (together with /registerService)
|
||||
- added Poco::Util::WinService::setDescription() and
|
||||
Poco::Util::WinService::getDescription()
|
||||
- fixed SF# 3155477: Incorrect URI path handling
|
||||
- fixed SF# 3309736: Extended Exception macros to set default exception code
|
||||
new macro is named POCO_DECLARE_EXCEPTION_CODE
|
||||
- added getter functions for modulus and exponents to Poco::Crypto::RSAKey.
|
||||
- added Poco::Net::SocketAddress::operator == () and
|
||||
Poco::Net::SocketAddress::operator != ()
|
||||
- fixed SF# 3182746: IPAddress.cpp IPv6 bug on big-endian
|
||||
- fixed SF# 3196961: Unix daemon fails to loadConfiguration() if started from cwd
|
||||
- fixed SF# 3393700: NotificationCenter may call a removed observer and crash.
|
||||
- Reworked implementation of the events framework (Poco::BasicEvent and friends).
|
||||
The framework is now completely multithreading save (even in the case that
|
||||
an event subscriber object unsubscribes and is deleted while an event is
|
||||
being dispatched). Also, the restriction that any object can only register
|
||||
one delegate for each event has been removed. For most cases, dispatching
|
||||
events should be faster, as dispatching an event now needs less dynamic memory
|
||||
allocations.
|
||||
- fixed SF# 3178109: getNodeByPath() changes:
|
||||
getNodeByPath() and getNodeByPathNS() have been moved to Poco::XML::Node.
|
||||
Furthermore, when invoked on a Poco::XML::Document, the behavior has changed
|
||||
so that the document element is now included when traversing the path (previously,
|
||||
traversal would start at the document element, now it starts at the document).
|
||||
The path expression can now start with a double-slash, which results in a recursive
|
||||
search for the path's first element in the DOM tree.
|
||||
|
||||
|
||||
Release 1.4.1p1 (2011-02-08)
|
||||
============================
|
||||
|
||||
- Poco::Mutex is now a recursive mutex again on Linux
|
||||
(this was caused by an unfortunate feature test for
|
||||
PTHREAD_MUTEX_RECURSIVE which did not work on Linux
|
||||
as PTHREAD_MUTEX_RECURSIVE is an enum value and not
|
||||
a macro)
|
||||
- Poco::Net::SecureSocketImpl::abort() now only shuts
|
||||
down the underlying socket connection and does not free
|
||||
the SSL object, due to multithreading issues.
|
||||
|
||||
|
||||
Release 1.4.1 (2011-01-29)
|
||||
==========================
|
||||
|
||||
- fixed SF# 3150223: Poco::BinaryReader cannot read std::vector correctly
|
||||
- fixed SF# 3146326: SharedMemory issue
|
||||
- made Poco::Net::HTTPSession::abort() virtual
|
||||
- added Poco::Net::SecureStreamSocket::abort() to immediately close
|
||||
a SSL/TLS connection without performing an orderly SSL/TLS shutdown.
|
||||
- fixed SF# 3148126: HTTPSClientSession destructor (!) throws an IOException.
|
||||
Added try/catch block to Poco::Net::SecureSocketImpl destructor.
|
||||
- added additional constructor to Poco::Net::HTTPSClientSession, taking
|
||||
both a socket and a session object.
|
||||
- Poco::Net::HTTPSession::abort() now also can be used with a
|
||||
Poco::Net::HTTPSClientSession.
|
||||
- fixed SF# 3148045: make clean and distclean issues
|
||||
- changed Data library names on Unix/Linux platforms to
|
||||
match the names on Windows (PocoSQLite -> PocoDataSQLite,
|
||||
PocoMySQL -> PocoDataMySQL, PocoODBC -> PocoDataODBC)
|
||||
- added additional options to configure script
|
||||
- added additional documentation to Poco::Net::HTTPClientSession
|
||||
- Poco::Net::HTTPClientSession::receiveResponse() closes the connection
|
||||
if an exception is thrown while reading the response header.
|
||||
This ensures that a new connection will be set up for the next request
|
||||
if persistent connections are used.
|
||||
- improved Poco::Net::MultipartDecoder performance by reading directly from streambuf
|
||||
- improved performance of Poco::Base64Encoder, Poco::Base64Decoder,
|
||||
Poco::HexBinaryEncoder and Poco::HexBinaryDecoder by working directly with the
|
||||
given stream's streambuf.
|
||||
- improved performance of MessageHeader::read() by reading directly from streambuf
|
||||
instead of istream.
|
||||
- it is now possible to specify additional MIME part header fields
|
||||
for a MIME part through the Poco::Net::PartSource class.
|
||||
- upgraded SQLite to release 3.7.4
|
||||
- added experimental VxWorks support for VxWorks 5.5.1/Tornado 2.2 and
|
||||
newer. Please see the VxWorks Platform Notes in the reference documentation
|
||||
for more information. Currently, the VxWorks is untested; full support
|
||||
will be available in release 1.4.2.
|
||||
- fixed SF# 3165918: Poco::DynamicAny fails to convert from string to float
|
||||
- fixed SF# 3165910: Poco::Net::MessageHeader does not accept HTTP conforming header
|
||||
- made Poco::Task::cancel() virtual so that tasks can implement custom
|
||||
cancellation behavior.
|
||||
- added optional argument to Poco::Util::WinRegistryKey constructor
|
||||
to specify additional flags (in addition to KEY_READ and KEY_WRITE)
|
||||
for the samDesired argument of RegOpenKeyEx() or RegCreateKeyEx().
|
||||
- improved Poco::BasicEvent::notify() performance by avoiding an unnecessary heap
|
||||
allocation.
|
||||
- added additional well-known port numbers to Poco::URI: rtsp, sip, sips, xmpp.
|
||||
- added Poco::Net::MediaType::matchesRange()
|
||||
- improved invalid socket handling: a Poco::Net::InvalidSocketException is
|
||||
now thrown instead of an assertion when an operation is attempted on a closed or
|
||||
otherwise uninitialized socket.
|
||||
|
||||
|
||||
Release 1.4.0 (2010-12-14)
|
||||
==========================
|
||||
|
||||
- SSLManager: documentation fixes, code cleanup
|
||||
- SSLManager: renamed PrivateKeyPassPhrase event to PrivateKeyPassphraseRequired
|
||||
- added HTTPServerRequestImpl::socket() to get access to the underlying socket
|
||||
- added Socket::secure() to find out whether a given socket supports SSL/TLS
|
||||
- added SecureStreamSocket::havePeerCertificate()
|
||||
- NetSSL: added support for turning off extended certificate validation (hostname matching)
|
||||
- fixed SF# 2941228: ICMPClient::ping() issues on Mac OS X
|
||||
- fixed SF# 2941231: ICMPEventArgs out of bounds array access
|
||||
- added PageCompiler sample
|
||||
- added missing newline at end of xmlparse.c
|
||||
- Poco::Glob can now be used with an empty pattern which will match nothing (patch from Kim Graesman)
|
||||
- added support for HTTP proxy authentication (Basic authentication only)
|
||||
- fixed SF# 2958959: XMLWriter must encode CR, LF and TAB in attribute values as character entities.
|
||||
- HTMLForm now supports PUT requests as well (see <http://pocoproject.org/forum/viewtopic.php?f=12&t=2163&p=3930#p3930>)
|
||||
- fixed SF# #2970521: FileOutputStream and file permissions.
|
||||
(also fixed in File class)
|
||||
- removed an unused (and wrong) default parameter from EventImpl constructor for WIN32.
|
||||
- added full support for session caching to NetSSL_OpenSSL
|
||||
- fixed SF# 2984454: Poco::Util::Timer::scheduleAtFixedRate() works incorrectly
|
||||
- fixed a bug in Poco::Util::Timer that could lead to high CPU load if
|
||||
the system clock is moved forward.
|
||||
- added system.nodeId to SystemConfiguration
|
||||
- added a note to Poco::Util::ServerApplication documentation regarding
|
||||
creation of threads
|
||||
- added Poco::Net::IPAddress::broadcast() and Poco::Net::IPAddress::wildcard() to
|
||||
create broadcast (255.255.255.255) and wildcard (0.0.0.0) addresses.
|
||||
- fixed SF# 2916154: Poco::Net::IPAddress::isLoopback() only works for 127.0.0.1.
|
||||
- added build configuration for iPhone Simulator
|
||||
- GNU Make based build system provides new variables: POCO_HOST_BINDIR, POCO_HOST_BINPATH,
|
||||
POCO_HOST_LIBDIR, POCO_HOST_LIBPATH and POCO_TARGET_* equivalents.
|
||||
- Application::initialize() and Application::uninitialize() will now be called from within run().
|
||||
This solves various issues with uninitialize() not being called, or being called inappropriately
|
||||
from the Application destructor.
|
||||
Please note that this change will break applications that use the Application class,
|
||||
but only call init() and not run().
|
||||
- added /startup option to specify startup mode for Windows services (automatic or manual)
|
||||
- fixed SF# 2967354: SecureSocketImpl shutdown/close problem
|
||||
- fixed SF# 3006340: LinearHashTable grows even if key already exists
|
||||
- fixed a particularly nasty Windows error handling issue that manifested itself on WinCE:
|
||||
WSAGetLastError() would be called after a std::string was created. The string creation could result
|
||||
in a heap operation which called a Windows API to allocate memory. This would reset the
|
||||
GetLastError() error code. Since WSAGetLastError() is just an alias for GetLastError(), the actual
|
||||
error code from the socket operation would be lost.
|
||||
- upgraded SQLite to 3.7.3
|
||||
- added --header-prefix option to PageCompiler
|
||||
- fixed SF# 3003875: SQLite data binding is broken
|
||||
- fixed SF# 2993988: Issue with multiple calls to open()/close() on File*Stream
|
||||
- fixed SF# 2990256: HTMLForm and file uploads
|
||||
- fixed SF# 2969227: DateTimeParser bug
|
||||
- fixed SF# 2966698: Socket connect with timeout issue
|
||||
- fixed SF# 2981041: Bind NULL to a query (patch supplied)
|
||||
- fixed SF# 2961419: UTF8Encoding::convert() doesn't work properly in DEBUG mode
|
||||
- fixed SF# 2957068: Timeout value not picked up by proxy in HTTPSClientSession
|
||||
- fixed NetSSL_OpenSSL test runner for Poco::Util::Application class changes
|
||||
- Poco::AbstractEvent, Poco::AbstractCache and related classes now accept a Mutex class as additional template argument.
|
||||
Poco::NullMutex can be used if no synchronization is desired.
|
||||
- Added Poco::AbstractEvent::empty() to check whether an event has registered delegates.
|
||||
- Poco::URI now correctly handles IPv6 addresses.
|
||||
- Added Poco::Nullable class template.
|
||||
- Added Poco::NullMutex, a no-op mutex to be used as template argument for template classes
|
||||
taking a mutex policy argument.
|
||||
- Poco::XML::XMLWriter: fixed a namespace handling issue that occured with startPrefixMapping() and endPrefixMapping()
|
||||
- Poco::Net::Context now allows for loading certificates and private keys from Poco::Crypto::X509Certificate objects
|
||||
and Poco::Crypto::RSAKey objects.
|
||||
- Poco::Crypto::RSAKey no longer uses temporary files for stream operations. Memory buffers are used instead.
|
||||
- fixed SF# 2957865: added Poco::UUID::tryParse()
|
||||
- All Zip classes now use Poco::File[Input|Output]Stream instead of std::[i|o]fstream.
|
||||
UTF-8 filenames will now be handled correctly on Windows.
|
||||
- fixed SF# 2902029: zlib flush support (Z_SYNC_FLUSH)
|
||||
- added Poco::TextBufferIterator class
|
||||
- fixed SF# 2977249: Use epoll instead select under Linux
|
||||
Socket::select() and Socket::poll() will use epoll under Linux if the Net library is compiled
|
||||
with -DPOCO_HAVE_FD_EPOLL. This is the default for the Linux build configuration (but not for
|
||||
the various build configurations targeting embedded Linux platforms).
|
||||
- fixed SF# 2941664: Memory leak in DeflatingStream with zero-length streams (also fixed some other potential,
|
||||
but unlikely, memory leaks)
|
||||
- fixed SF# 2946457: added RejectCertificateHandler
|
||||
- fixed SF# 2946621: Poco::Path bug with POCO_WIN32_UTF8
|
||||
- fixed SF# 2929805: Environment::nodeId() does not work if no eth0 device exists
|
||||
- Environment::nodeId() no longer throws if no hardware ethernet address can be determined.
|
||||
It returns an all-zero address instead.
|
||||
- Added additional classification functions to Poco::Unicode class; made classification functions inline.
|
||||
- added Ascii class for ASCII character classification.
|
||||
Methods of the Ascii class are now used instead of the
|
||||
standard library functions (std::isspace(), etc.) due to
|
||||
possible inconsistent results or assertions when the
|
||||
standard library functions are used with character codes
|
||||
outside the ASCII range.
|
||||
- Poco::Net::MailMessage: fixed a bug in StringPartHandler that resulted in incorrect handling of non-ASCII data if
|
||||
char is signed.
|
||||
- Improved Poco::Net::SMTPClientSession compatibility with various mail servers when using AUTH_LOGIN authentication.
|
||||
- Added CRAM-SHA1 support to Poco::Net::SMTPClientSession
|
||||
- Poco::Net::SMTPClientSession now also supports login with AUTH PLAIN.
|
||||
- Added Poco::Net::SecureSMTPClientSession class, supporting STARTTLS for secure SMTP connections.
|
||||
- fixed an issue with SharedMemory on POSIX systems, where a shared memory region would be deleted
|
||||
despite the server flag set to true (see http://pocoproject.org/forum/viewtopic.php?f=12&t=3494).
|
||||
- PageCompiler: added a new page context directive, to allow passing custom context objects to the
|
||||
request handler.
|
||||
- fixed StreamSocketImpl::sendBytes() for non-blocking sockets
|
||||
- added Poco::Net::DialogSocket::receiveRawBytes(), which should be used instead of receiveBytes() due to internal
|
||||
buffering by DialogSocket.
|
||||
- DOMParser: FEATURE_WHITESPACE has been renamed to FEATURE_FILTER_WHITESPACE (which now matches the underlying URI)
|
||||
and is now handled correctly (previously we did the exact reverse thing)
|
||||
- added Poco::Util::AbstractConfiguration::remove() to remove a configuration property; added removeRaw() implementations
|
||||
to all implementations (contributions by Daniel Hobi and Alexey Shults).
|
||||
- fixed NetSSL_OpenSSL compilation error on Windows with OpenSSL 1.0
|
||||
- Added optional FIPS mode support to NetSSL_OpenSSL (contributed by Lior Okman).
|
||||
If OpenSSL has been configured and built with FIPS support, then FIPS support can
|
||||
be enabled by calling Poco::Crypto::OpenSSLInitializer::enableFIPSMode(true); or
|
||||
by setting the fips property in the OpenSSL configuration to true (see Poco::Net::SSLManager
|
||||
for details).
|
||||
- fixed SF# 3031530: Ping and possible no timeout
|
||||
- added Poco::Net::SocketReactor::onBusy(), called whenever at least one notification will
|
||||
be dispatched.
|
||||
- fixed SF# 3034863: Compiler warning in net/IPAddress.h with poco 1.3.2
|
||||
- added support for CRAM-SHA1 authentication to SMTPClientSession
|
||||
- Poco::format(): arguments can now be addressed by their index, e.g. %[2]d
|
||||
- Poco::Util::Timer::cancel() now accepts an optional boolean argument.
|
||||
If true is passed, cancel() waits until the task queue has been purged.
|
||||
Otherwise, it returns immediately and works asynchronously, as before.
|
||||
- Poco::Net::HTTPServerResponse::redirect() now accepts an optional additional
|
||||
argument to specify the HTTP status code for the redirection.
|
||||
- fixed a warning (BinaryReader.cpp) and error (ThreadLocal.cpp) in Foundation when compiling with Visual Studio 2010
|
||||
- fixed a wrong exception in Poco::Net::POP3ClientSession
|
||||
- Poco::Net::FTPClientSession and Poco::Net::SMTPClientSession now set the error code in exceptions they throw
|
||||
- fixed a potential race condition with terminating a Windows service based on Poco::Util::ServerApplication
|
||||
- fixed a bug in global build configuration file: explicitly setting POCO_CONFIG did not work on Solaris platforms,
|
||||
as it was always overridden by the automatically determined configuration.
|
||||
- Added support for MinGW cross builds on Linux.
|
||||
- Changed location of statically linked build products in the gmake-based build system.
|
||||
Statically linked executables are now in bin/$(OSNAME)/$(OSARCH)/static and no longer
|
||||
have the _s suffix
|
||||
- The POCO_VERSION macro now is in its own header file, "Poco/Version.h". It is no longer
|
||||
available through "Poco/Foundation.h".
|
||||
- added Poco::Net::HTTPCookie::escape() and Poco::Net::HTTPCookie::unescape().
|
||||
- fixed SF# 3021173: Thread (POSIX) returns uninitialised value for OS priority
|
||||
- fixed SF# 3040870: ThreadPool has no function to get assigned name
|
||||
- fixed SF# 3044303: Can't use own config file on Solaris & OSARCH_64BITS ignored
|
||||
- fixed SF# 2943896: AsyncChannel::log blocks
|
||||
- fixed a bug in Poco::Util::WinRegistryKey::getInt():
|
||||
The size variable passed to RegQueryValueExW() should be initialized to the size
|
||||
of the output buffer.
|
||||
- Added rudimentary support for compiling with Clang 2.0 (Xcode 4) on Mac OS X.
|
||||
- New build configurations for Mac OS X: Darwin32 and Darwin64 for explicit
|
||||
32-bit and 64-bit builds. Note that the default Darwin build configuration
|
||||
will build 64-bit on Snow Leopard and 32-bit on Leopard, but will always place
|
||||
build products in Darwin/i386. The new Darwin32 and Darwin64 configurations
|
||||
will use the correct directories.
|
||||
- fixed SF# 3051598: Bug in URL encoding
|
||||
- Poco::ThreadPool::stopAll() (and thus also the destructor) will now wait for each
|
||||
pooled thread to terminate before returning. This fixes an issue with creating
|
||||
and orderly shutting down a thread pool in a plugin. Previously, a pooled thread
|
||||
in a thread pool created by a dynamically loaded library might still be running
|
||||
when the plugin's shared library was unloaded, resulting in Bad Things happening.
|
||||
This can now no longer happen. As a downside, a pooled thread that fails to
|
||||
finish will block stopAll() and the destructor forever.
|
||||
- NetSSL_OpenSSL: for a SecureStreamSocket, available() now returns the number of bytes that
|
||||
are pending in the SSL buffer (SSL_pending()), not the actual socket buffer.
|
||||
- Added Poco::Net::HTTPClientSession::secure() to check for a secure connection.
|
||||
- Poco::Net::HTTPRequest::setHost() now does not include the port number in the Host header
|
||||
if it's either 80 or 443.
|
||||
- log messages can now optionally include source file path and line number
|
||||
- Poco::PatternFormatter can format source file path and line number (%U, %u)
|
||||
- logging macros (poco_information(), etc.) now use __LINE__ and __FILE__
|
||||
- new logging macros that incorporate Poco::format(): poco_information_f1(logger, format, arg) with up to 4 arguments
|
||||
- added Poco::Net::HTTPSession::attachSessionData() and Poco::Net::HTTPSession::sessionData()
|
||||
to attach arbitrary data to a HTTP session.
|
||||
- added additional constructors to zlib stream classes that allow passing
|
||||
a windowBits parameter to the underlying zlib library.
|
||||
- fixed a potential error handling issue in Poco::Net::SecureSocketImpl.
|
||||
- fixed SF# 3110272: RSACipherImpl bug.
|
||||
- fixed SF# 3081677: ConfigurationView's getRaw not retrieving xml attributes.
|
||||
- added basic support for Canonical XML and better pretty-printing support to Poco::XML::XMLWriter.
|
||||
- Poco::Util::AbstractConfiguration now supports events fired when changing or
|
||||
removing properties.
|
||||
- XML: added support for finding DOM nodes by XPath-like
|
||||
expressions. Only a very minimal subset of XPath is supported.
|
||||
See Poco::XML::Element::getNodeByPath(), Poco::XML::Element::getNodeByPathNS()
|
||||
and the same methods in Poco::XML::Document.
|
||||
- Poco::Timer: If the callback takes longer to execute than the
|
||||
timer interval, the callback function will not be called until the next
|
||||
proper interval. The number of skipped invocations since the last
|
||||
invocation will be recorded and can be obtained by the callback
|
||||
by calling skipped().
|
||||
- Poco::BinaryReader and Poco::BinaryWriter now support reading and
|
||||
writing std::vectors of the supported basic types. Also, strings
|
||||
can now be written in a different encoding (a Poco::TextEncoding
|
||||
can be optionally passed to the constructor).
|
||||
- Poco::UUID::nil() and Poco::UUID::isNil() have been renamed to
|
||||
Poco::UUID::null() and Poco::UUID::isNull(), respectively, to avoid
|
||||
issues with Objective-C++ projects on Mac OS X and iOS where nil is
|
||||
a system-provided macro.
|
||||
- Crypto bugfixes: RSACipherImpl now pads every block of data, not just the
|
||||
last (or last two).
|
||||
- Improved Crypto testsuite by adding new tests
|
||||
- Added new Visual Studio project configurations: debug_static_mt and release_static_mt
|
||||
(linking with static runtime libraries). The existing configurations debug_static
|
||||
and release_static have been renamed to debug_static_md and release_static_md, respectively.
|
||||
The suffixes of the static libraries have also changed. The static_md configurations
|
||||
now build libraries with suffixes md[d], while the libraries built by the static_mt
|
||||
configurations have mt[d] suffixes.
|
||||
- Added Visual Studio project files for 64-bit builds.
|
||||
- Added Visual Studio 2010 project files.
|
||||
- Removed the use of local static objects in various methods due to
|
||||
their construction not being threadsafe (and thus leading to
|
||||
potential race conditions) on Windows/Visual C++.
|
||||
- Fixed some warning on 64-bit Windows builds.
|
||||
- The name of the Data connector libraries have changed. They are now
|
||||
named PocoDataMySQL, PocoDataODBC and PocoDataSQLite.
|
||||
- fixed SF# 3125498: Linux NetworkInterface::list() doesn't return IPv6 IPs
|
||||
- fixed SF# 3125457: IPv6 IPAddress tests are wrong
|
||||
- Added initialization functions for the NetSSL_OpenSSL and Crypto libraries.
|
||||
These should be called instead of relying on automatic initialization,
|
||||
implemented with static initializer objects, as this won't work with
|
||||
statically linked executables (where the linker won't include the
|
||||
static initializer object).
|
||||
The functions are Poco::Crypto::initializeCrypto(), Poco::Crypto::uninitializeCrypto(),
|
||||
Poco::Net::initializeSSL() and Poco::Net::uninitializeSSL().
|
||||
Applications using Crypto and/or NetSSL should call these methods appropriately at
|
||||
program startup and shutdown.
|
||||
Note: In release 1.3.6, similar functions have been added to the Net library.
|
||||
|
||||
|
||||
Release 1.3.6p2 (2010-01-15)
|
||||
============================
|
||||
|
||||
- fixed an issue in the Windows implementation Poco::RWLock, where
|
||||
tryReadLock() sometimes would return false even if no writers
|
||||
were using the lock (fix contributed by Bjrn Carlsson)
|
||||
- added Poco::Environment::libraryVersion().
|
||||
- fixed SF# 2919461: Context ignores parameter cypherList
|
||||
- removed an unused enum from RSACipherImpl.cpp (Crypto)
|
||||
- integrated a new expat patch for CVE-2009-3560.
|
||||
- fixed SF# 2926458: SSL Context Problem. The Poco::Net::Context
|
||||
class now makes sure that OpenSSL is properly initialized.
|
||||
- updated iPhone build configuration (contributed by Martin York)
|
||||
- fixed SF# 1815124 (reopened): XML Compile failed on VS7.1 with
|
||||
XML_UNICODE_WCHAR_T
|
||||
- fixed SF# 2932647: FTPClientSession::getWorkingDirectory() returns a bad result
|
||||
|
||||
|
||||
Release 1.3.6p1 (2009-12-21)
|
||||
============================
|
||||
|
||||
- added support for using external zlib, pcre, expat and sqlite3 instead of
|
||||
bundled ones (-DPOCO_UNBUNDLED, configure --unbundled)
|
||||
- fixed SF# 2911407: Add sh4 support
|
||||
- fixed SF# 2912746: RSAKey::EXP_LARGE doesn't work
|
||||
- fixed SF# 2904119: abstractstrategy uses std::set but do not includes it
|
||||
- fixed SF# 2909946: localtime NULL pointer
|
||||
- fixed SF# 2914986: potential expat DoS security issues (CVE-2009-3560 and CVE-2009-3720)
|
||||
- fixed SF# 2916305: SSL Manager crashes
|
||||
- fixed SF# 2903676: Tuple TypeHander does not handle composites.
|
||||
|
||||
|
||||
Release 1.3.6 (2009-11-24)
|
||||
==========================
|
||||
|
||||
- added Environment::processorCount()
|
||||
- added POCO_VERSION macro to Poco/Foundation.h
|
||||
- fixed SF# 2807527: Poco::Timer bug for long startInterval/periodic interval
|
||||
- fixed a bug similar to SF# 2807527 in Poco::Util::Timer.
|
||||
- fixed SF# 2795395: Constructor doesn't treat the params "key" and "iv"
|
||||
- fixed SF# 2804457: DateTime::checkLimit looks wrong
|
||||
- fixed SF# 2804546: DateTimeParser requires explicit RFC1123 format
|
||||
- added ReleaseArrayPolicy to Poco::SharedPtr
|
||||
- upgraded to SQLite 3.6.20
|
||||
- fixed SF# 2782709: Missing semicolons in "Logger.h" convenience
|
||||
- fixed SF# 2526407: DefaultStrategy.h ++it instead of it++ in a loop
|
||||
- fixed SF# 2502235: Poco STLPort patch
|
||||
- fixed SF# 2186643: Data::Statement::reset() not implemented in 1.3.3
|
||||
- fixed SF# 2164227: Allow File opened read only by FileInputSteam to be writable
|
||||
- fixed SF# 2791934: use of char_traits::copy in BufferedStreamBuf::underflow
|
||||
- fixed SF# 2807750: Support additional SQL types in SQLite
|
||||
- fixed documentation bugs in Timed/PriorityNotificationQueue
|
||||
- fixed SF# 2828401: Deadlock in SocketReactor/NotificationCenter (also fixes patch# 1956490)
|
||||
NotificationCenter now uses a std::vector internally instead of a std::list, and the mutex is
|
||||
no longer held while notifications are sent to observers.
|
||||
- fixed SF# 2835206: File_WIN32 not checking aganist INVALID_HANDLE_VALUE
|
||||
- fixed SF# 2841812: Posix ThreadImpl::sleepImpl throws exceptions on EINTR
|
||||
- fixed SF# 2839579: simple DoS for SSL TCPServer, HTTPS server
|
||||
No SSL handshake is performed during accept() - the handshake is delayed until
|
||||
sendBytes(), receiveBytes() or completeHandshake() is called for the first time.
|
||||
This also allows for better handshake and certificate validation when using
|
||||
nonblocking connections.
|
||||
- fixed SF# 2836049: Possible handle leak in FileStream
|
||||
If sync() fails, close() now simply set's the stream's bad bit.
|
||||
In any case, close() closes the file handle/descriptor.
|
||||
- fixed SF# 2814451: NetSSL: receiveBytes crashes if socket is closed
|
||||
- added a workaround for Vista service network initialization issue
|
||||
(an Windows service using the Net library running under Vista will
|
||||
crash in the call to WSAStartup() done in NetworkInitializer).
|
||||
Workaround is to call WSAStartup() in the application's main().
|
||||
Automatic call to WSAStartup() in the Net library can now be disabled
|
||||
by compiling Net with -DPOCO_NET_NO_AUTOMATIC_WSASTARTUP. Also
|
||||
the new Poco::Net::initializeNetwork() and Poco::Net::uninitializeNetwork()
|
||||
functions can be used to call WSAStartup() and WSACleanup(), respectively,
|
||||
in a platform-independent way (on platforms other than Windows, these
|
||||
functions will simply do nothing).
|
||||
- added VCexpress build script support (contributed by Jolyon Wright)
|
||||
- fixed SF# 2851052: Poco::DirectoryIterator copy constructor is broken
|
||||
- fixed SF# 2851197: IPAddress ctor throw keyword missing
|
||||
- added Poco::ProtocolException
|
||||
- PageCompiler improvements: new tags, support for buffered output, etc.
|
||||
- better error reporting in Data MySQL connector (patch #2881270 by Jan "HanzZ" Kaluza)
|
||||
- fixed SF# 1892462: FTPClient:Choose explicitely between EPSV and PASV
|
||||
- fixed SF# 2806365: Option for PageCompiler to write output to different dir
|
||||
- fixed a documentation bug (wrong sample code) in Process::launch() documentation
|
||||
- added --header-output-dir option to PageCompiler
|
||||
- fixed SF# 2849144: Zip::Decompress notifications error
|
||||
- SAXParser has a new feature: "http://www.appinf.com/features/enable-partial-reads".
|
||||
See ParserEngine::setEnablePartialReads() for a description of what this does.
|
||||
- fixed SF# 2876179: MySQL Signed/Unsigned value bug
|
||||
- fixed SF# 2877970: possible bug in timer task
|
||||
- fixed SF# 2874104: wrong parsing empty http headers
|
||||
- fixed SF# 2860694: Incorrect return code from SecureStreamSocketImpl::sendBytes
|
||||
- fixed SF# 2849750: Possible bug with XMLWriter?
|
||||
- added MailMessage::encodeWord() to support RFC 2047 word encoded
|
||||
mail header fields when sending out mail containing non-ASCII
|
||||
characters.
|
||||
- fixed SF# 2890975: SMTPClientSession bug with 7BIT encoding
|
||||
- fixed an issue with retrieving the value of socket options on Windows 7.
|
||||
Before obtaining the value of a socket, we now initialize the variable receiving the
|
||||
socket option value to zero.
|
||||
- fixed SF# 2836141: Documentation errors
|
||||
- fixed SF# 2864232: Socket::select() does not detect closed sockets on windows
|
||||
- fixed SF# 2812143: Socket::select() should check socket descriptors...
|
||||
- fixed SF# 2801750: NetworkInterface <iface-Obj>forName returns wrong subnetMask
|
||||
- fixed SF# 2816315: Problem with POSIX Thread::sleepImpl
|
||||
- fixed SF# 2795646: IPv6 address parsing bug
|
||||
- fixed #0000092: ServerApplication::waitForTerminationRequest(), SIGINT and GDB.
|
||||
Poco::Util::ServerApplication::waitForTerminationRequest() no longer registers a
|
||||
signal handler for SIGINT if the environment variable POCO_ENABLE_DEBUGGER
|
||||
is defined.
|
||||
- fixed SF# 2896070: Poco::Net::Context with non-ASCII paths
|
||||
- added Unicode Surrogate support to Poco::UTF16Encoding.
|
||||
See Poco::TextEncoding::queryConvert() and Poco::TextEncoding::sequenceLength()
|
||||
for how this is implemented. Contributed by Philippe Cuvillier.
|
||||
- fixed SF# 2897650: [branch 1.3.6] Net.SocketAddress won't compile for CYGWIN
|
||||
- fixed SF# 2896161: Building on Windows fails when basedir has space in it
|
||||
- fixed SF# 2864380: Memory leak when using secure sockets
|
||||
- NetSSL_OpenSSL: the SSL/TLS session cache is now disabled by default and
|
||||
can be enabled per Context using Poco::Net::Context::enableSessionCache().
|
||||
- fixed SF# 2899039: Wrong DST handling in LocalDateTime
|
||||
- added RWLock::ScopedReadLock and RWLock::ScopedWriteLock (contributed by Marc Chevrier)
|
||||
- added Thread::TID type, as well as Thread::tid() and Thread::currentTid() to obtain the native
|
||||
thread handle/ID
|
||||
- added Zip file comment support
|
||||
- On Windows, Poco::SharedLibrary::load() now uses LoadLibraryEx instead of LoadLibrary
|
||||
and uses the LOAD_WITH_ALTERED_SEARCH_PATH if an absolute path is specified. This will
|
||||
add the directory containing the library to the search path for DLLs that the
|
||||
loaded library depends upon.
|
||||
- Mac OS X build settings now match those used by default Xcode projects, making linking the
|
||||
POCO libs to Xcode projects easier
|
||||
- Replaced use of std::valarray in Poco::Net::ICMPEventArgs with std::vector due to issues with
|
||||
std::valarray together with STDCXX debug mode on OS X
|
||||
|
||||
|
||||
Release 1.3.5 (2009-05-11)
|
||||
==========================
|
||||
|
||||
- fixed SF# 2779410: Poco::Data::ODBC::HandleException impovement
|
||||
- fixed wrong exception text for Poco::UnhandledException
|
||||
- Fixed a problem with SSL shutdown that causes clients (web browsers)
|
||||
to hang when the server attempts to perform a clean SSL shutdown. We now call
|
||||
SSL_shutdown() once, even if the shutdown is not complete after the first call.
|
||||
- added Poco::Crypto::X509Certificate::save()
|
||||
- fixed a bug in Poco::Zip::Decompress that results in wrong paths for extracted files
|
||||
- fixed a bug in Poco::Zip::ZipManipulator where the Zip file was opened in text format
|
||||
on Windows.
|
||||
- added Poco::Crypto::X509Certificate::issuedBy() to verify certificate chain.
|
||||
- fixed 0000089: Thread::sleep() on Linux is extremely inaccurate
|
||||
- added methods to extract the contents of specific fields from the
|
||||
subject and issuer distinguished names of a certificate.
|
||||
|
||||
|
||||
Release 1.3.4 (2009-04-21)
|
||||
==========================
|
||||
|
||||
- fixed SF# 2611804: PropertyFileConfiguration continuation lines
|
||||
- fixed SF# 2529788: ServerApplication::beDaemon() broken
|
||||
- fixed SF# 2445467: Bug in Thread_WIN32.cpp
|
||||
- Improved performance of HTTP Server by removing some
|
||||
string copy operations
|
||||
- fixed SF# 2310735: HTTPServer: Keep-Alive only works with send()
|
||||
- fixed appinf.com IP address in Net testsuite
|
||||
- fixed RFC-00188: NumberFormatter and float/double numbers
|
||||
- added --pidfile option to ServerApplication on Unix
|
||||
- fixed SF# 2499504: Bug in Win32_Thread when using from dll (fixed also for POSIX threads)
|
||||
- fixed SF# 2465794: HTTPServerRequestImpl memory leak
|
||||
- fixed SF# 2583934: Zip: No Unix permissions set
|
||||
- the NetSSL_OpenSSL library has been heavily refactored
|
||||
- added NumberFormatter::append*() and DateTimeFormatter::append() functions
|
||||
- use NumberFormatter::append() and DateTimeFormatter::append() instead of format() where
|
||||
it makes sense to gain some performance
|
||||
- added system.dateTime and system.pid to Poco::Util::SystemConfiguration
|
||||
- added %F format specifier (fractional seconds/microseconds) to DateTimeFormatter,
|
||||
DateTimeParser and PatternFormatter.
|
||||
- fixed SF# 2630476: Thread_POSIX::setStackSize() failure with g++ 4.3
|
||||
- fixed SF# 2679279: Handling of -- option broken
|
||||
- added compile options to reduce memory footprint of statically linked applications
|
||||
by excluding various classes from automatically being linked.
|
||||
See the POCO_NO_* macros in Poco/Config.h.
|
||||
- fixed SF# 2644940: on Windows the COMPUTER-NAME and the HOSTNAME can be different
|
||||
- added DNS::hostName() function
|
||||
- added build configuration for iPhone (using Apple's SDK)
|
||||
- basic support for AIX 5.x/xlC 8
|
||||
- fixed a bug resulting in a badly formatted exception message with IOException
|
||||
thrown due to a socket-related error
|
||||
- fixed SF# 2644718: NetworkInterface name conflict in MinGW
|
||||
- added a missing #include to CryptoTransform.h
|
||||
- fixed SF# 2635377: HTTPServer::HTTPServer should take AutoPtr<HTTPServerParams>
|
||||
- replaced plain pointers with smart pointers in some interfaces
|
||||
- upgraded to sqlite 3.6.13
|
||||
- improved Data::SQLite error reporting
|
||||
- Poco::Glob now works with UTF-8 encoded strings and supports case-insensitive comparison.
|
||||
This also fixes SF# 1944831: Glob::glob on windows should be case insensitve
|
||||
- added Twitter client sample to Net library
|
||||
- Fixed SF# 2513643: Seg fault in Poco::UTF8::toLower on 64-bit Linux
|
||||
- Poco::Data::SessionPool: the janitor can be disabled by specifying a zero idle time.
|
||||
- added Poco::Data::SessionPool::customizeSession()
|
||||
- added support for different SQLite transaction modes (DEFERRED, IMMEDIATE, EXCLUSIVE)
|
||||
- fixed a few wrong #if POCO_HAVE_IPv6 in the Net library
|
||||
- added support for creating an initialized, but unconnected StreamSocket.
|
||||
- added File::isDevice()
|
||||
- added family() member function to SocketAddress,
|
||||
- Data::SQLite: added support for automatic retries if the database is locked
|
||||
- XMLConfiguration is now writable
|
||||
- fixed an IPv6 implementation for Windows bug in HostEntry
|
||||
- Timer class improvement: interval between callback is no longer influenced by the
|
||||
time needed to execute the callback.
|
||||
- added PriorityNotificationQueue and TimedNotificationQueue classes to Foundation.
|
||||
These are variants of the NotificationQueue class that support priority and
|
||||
timestamp-tagged notifications.
|
||||
- added Poco::Util::Timer class. This implements a timer that can schedule different
|
||||
tasks at different times, using only one thread.
|
||||
- the signatures of Poco::NotificationQueue and Poco::NotificationCenter member functions
|
||||
have been changed to accept a Poco::Notification::Ptr instead of Poco::Notification*
|
||||
to improve exception safety. This change should be transparent and fully backwards
|
||||
compatible. The signature of the methods returning a Poco::Notification* have not been
|
||||
changed for backwards compatibility. It is recommended, that any Notification* obtained
|
||||
should be immediately assigned to a Notification::Ptr.
|
||||
- SQLite::SessionImpl::isTransaction() now uses sqlite3_get_autocommit() to find out
|
||||
about the transaction state.
|
||||
- refactored Crypto library to make it independent from NetSSL_OpenSSL.
|
||||
- added support for RSA-MD5 digital signatures to Crypto library.
|
||||
- removed SSLInitializer from NetSSL library (now moved to Crypto library)
|
||||
- added build configs for static libraries to Crypto library
|
||||
- OpenSSL now depends on Crypto library (which makes more sense than
|
||||
vice versa, as it was before). Poco::Net::X509Certificate is now
|
||||
a subclass of Poco::Crypto::X509Certificate (adding the verify()
|
||||
member function) and the Poco::Net::SSLInitializer class was
|
||||
moved to Poco::Crypto::OpenSSLInitializer.
|
||||
- added build configs for static libraries to Zip
|
||||
- added batch mode to CppUnit::WinTestRunner.
|
||||
WinTestRunnerApp supports a batch mode, which runs the
|
||||
test using the standard text-based TestRunner from CppUnit.
|
||||
To enable batch mode, start the application with the "/b"
|
||||
or "/B" command line argument. Optionally, a path to a file
|
||||
where the test output will be written to may be given:
|
||||
"/b:<path>" or "/B:<path>".
|
||||
When run in batch mode, the exit code of the application
|
||||
will denote test success (0) or failure (1).
|
||||
- testsuites now also work for static builds on Windows
|
||||
- The IPv6 support for Windows now basically works (Net library compiled with POCO_HAVE_IPv6)
|
||||
- fixed a potential error when shutting down openssl in a statically linked application
|
||||
- added static build configs to Data library
|
||||
- added Poco::AtomicCounter class, which uses OS-specific APIs for atomic (thread-safe)
|
||||
manipulation of counter values.
|
||||
- Poco::RefCountedObject and Poco::SharedPtr now use Poco::AtomicCounter for
|
||||
reference counting
|
||||
- fixed SF# 2765569: LoadConfiguration failing from current directory
|
||||
|
||||
|
||||
Release 1.3.3p1 (2008-10-09)
|
||||
============================
|
||||
|
||||
- Fixed SF# 2153031: 1.3.3 Crypto won't compile on 64-bit Linux
|
||||
- Fixed a warning in MySQL connector
|
||||
- Updated README
|
||||
- The global Makefile in the Zip archive is no longer broken
|
||||
|
||||
|
||||
Release 1.3.3 (2008-10-07)
|
||||
==========================
|
||||
|
||||
- Threads now have optional user-settable stack size (if the OS supports that feature)
|
||||
- Events now support simplified delegate syntax based on delegate function template.
|
||||
See Poco::AbstractEvent documentation for new syntax.
|
||||
- Cache supports new access expire strategy.
|
||||
- Upgraded to SQLite 3.6.2
|
||||
- Upgraded to PCRE 7.8
|
||||
- added HttpOnly support to Poco::Net::HTTPCookie
|
||||
- NetworkInterface now has displayName() member (useful only on Windows)
|
||||
- Poco::Util::WinRegistryKey now has a read-only mode
|
||||
- Poco::Util::WinRegistryKey::deleteKey() can now recursively delete registry keys
|
||||
- Poco::File::created() now returns 0 if the creation date/time is not known, as
|
||||
it's the case on most Unix platforms (including Linux).
|
||||
On FreeBSD and Mac OS X, it returns the real creation time.
|
||||
- Time interval based log file rotation (Poco::FileChannel) now works
|
||||
correctly. Since there's no reliable and portable way to find out the creation
|
||||
date of a file (Windows has the tunneling "feature", most Unixes don't provide
|
||||
the creation date), the creation/rotation date of the log file is written into
|
||||
the log file as the first line.
|
||||
- added Environment::nodeId() for obtaining the Ethernet address of the system
|
||||
(this is now also used by UUIDGenerator - the corresponding code from UUIDGenerator
|
||||
was moved into Environment)
|
||||
- added a release policy argument to SharedPtr template
|
||||
- Socket::select() will no longer throw an InvalidArgumentException
|
||||
on Windows when called with no sockets at all. If all three socket
|
||||
sets are empty, Socket::select() will return 0 immediately.
|
||||
- SocketReactor::run() now catches exceptions and reports them via
|
||||
the ErrorHandler.
|
||||
- SocketReactor has a new IdleNotification, which will be posted when
|
||||
the SocketReactor has no sockets to handle.
|
||||
- added referenceCount() method to Poco::SharedPtr.
|
||||
- POCO now builds with GCC 4.3 (but there are some stupid warnings:
|
||||
"suggest parentheses around && within ||".
|
||||
- Solution and project files for Visual Studio 2008 are included
|
||||
- The Zip library is now officially part of the standard POCO release.
|
||||
- The Crypto library (based on OpenSSL) has been added. The original code
|
||||
was kindly contributed by Ferdinand Beyer.
|
||||
- A Data Connector to MySQL, contributed by Sergey Kholodilov, is now part
|
||||
of the POCO release.
|
||||
- fixed SF# 1859738: AsyncChannel stall
|
||||
- fixed SF# 1815124: XML Compile failed on VS7.1 with XML_UNICODE_WCHAR_T
|
||||
- fixed SF# 1867340: Net and NetSSL additional dependency not set - ws2_32.lib
|
||||
- fixed SF# 1871946: no exception thrown on error
|
||||
- fixed SF# 1881113: LinearHashTable does not conform to stl iterators
|
||||
- fixed SF# 1899808: HTMLForm.load() should call clear() first
|
||||
- fixed SF# 2030074: Cookie problem with .NET server
|
||||
- fixed SF# 2009707: small bug in Net/ICMPPacketImpl.cpp
|
||||
- fixed SF# 1988579: Intel Warning: invalid multibyte character sequence
|
||||
- fixed SF# 2007486: Please clarify license for Data/samples/*
|
||||
- fixed SF# 1985180: Poco::Net::DNS multithreading issue
|
||||
- fixed SF# 1968106: DigestOutputStream losing data
|
||||
- fixed SF# 1980478: FileChannel loses messages with "archive"="timestamp"
|
||||
- fixed SF# 1906481: mingw build WC_NO_BEST_FIT_CHARS is not defined
|
||||
- fixed SF# 1916763: Bug in Activity?
|
||||
- fixed SF# 1956300: HTTPServerConnection hanging
|
||||
- fixed SF# 1963214: Typo in documentation for NumberParser::parseFloat
|
||||
- fixed SF# 1981865: Cygwin Makefile lacks ThreadTarget.cpp
|
||||
- fixed SF# 1981130: pointless comparison of unsigned integer with zero
|
||||
- fixed SF# 1943728: POCO_APP_MAIN namespace issue
|
||||
- fixed SF# 1981139: initial value of reference to non-const must be an lvalue
|
||||
- fixed SF# 1995073: setupRegistry is broken if POCO_WIN32_UTF8 enabled
|
||||
- fixed SF# 1981125: std::swap_ranges overloading resolution failed
|
||||
- fixed SF# 2019857: Memory leak in Data::ODBC Extractor
|
||||
- fixed SF# 1916761: Bug in Stopwatch?
|
||||
- fixed SF# 1951443: NetworkInterface::list BSD/QNX no netmask and broadcast addr
|
||||
- fixed SF# 1935310: Unhandled characters in Windows1252Encoding
|
||||
- fixed SF# 1948361: a little bug for win32
|
||||
- fixed SF# 1896482: tryReadLock intermittent error
|
||||
- workaround for SF# 1959059: Poco::SignalHandler deadlock
|
||||
the SignalHandler can now be disabled globally by adding a
|
||||
#define POCO_NO_SIGNAL_HANDLER to Poco/Config.h
|
||||
- fixed SF# 2012050: Configuration key created on read access
|
||||
- fixed SF# 1895483: PCRE - possible buffer overflow
|
||||
- fixed SF# 2062835: Logfile _creationDate is wrong
|
||||
- fixed SF# 2118943: out_of_bound access in Poco::Data::BLOB:rawContent
|
||||
- fixed SF# 2121732: Prevent InvalidArgumentException in SocketReactor
|
||||
- fixed SF# 1891132: Poco::Data::StatementImpl::executeWithLimit is not correct
|
||||
- fixed SF# 1951604: POCO refuses to compile with g++ 4.3.0
|
||||
- fixed SF# 1954327: CYGWIN's pthread does not define PTHREAD_STACK_MIN
|
||||
- fixed SF# 2124636: Discrepancy between FileWIN32(U)::handleLastError
|
||||
- fixed SF# 1558300: MinGW/MSYS Builds
|
||||
- fixed SF# 2123266: Memory leak under QNX6 with dinkum library
|
||||
- fixed SF# 2140411: ScopedUnlock documentation bug
|
||||
- fixed SF# 2036460: UUID regression tests are failing on Linux with g++ 4.3.1
|
||||
- fixed SF# 2150438: Tuple TypeHandler position increment size is wrong
|
||||
|
||||
|
||||
Release 1.3.2 (2008-02-04)
|
||||
==========================
|
||||
|
||||
Foundation, XML, Net, Util:
|
||||
- added POCO_NO_SHAREDMEMORY to Config.h
|
||||
- POCO_NO_WSTRING now really disables all wide string related calls
|
||||
- added template specialization for string hashfunction (performance)
|
||||
- XML parser performance improvements (SAX parser is now up to 40 % faster
|
||||
- added parseMemoryNP() to XMLReader and friends
|
||||
- URIStreamOpener improvement: redirect logic is now in URIStreamOpener.
|
||||
this enables support for redirects from http to https.
|
||||
- added support for temporary redirects and useproxy return code
|
||||
- added getBlocking() to Socket
|
||||
- added File::isHidden()
|
||||
- better WIN64 support (AMD64 and IA64 platforms are recognized)
|
||||
- added support for timed lock operations to [Fast]Mutex
|
||||
- SharedLibrary: dlopen() is called with RTLD_GLOBAL instead of RTLD_LOCAL
|
||||
(see http://gcc.gnu.org/faq.html#dso)
|
||||
- Poco::Timer threads can now run with a specified priority
|
||||
- added testcase for SF# 1774351
|
||||
- fixed SF# 1784772: Message::swap omits _tid mem
|
||||
- fixed SF# 1790894: IPAddress(addr,family) doesn't fail on invalid address
|
||||
- fixed SF# 1804395: Constructor argument name wrong
|
||||
- fixed SF# 1806807: XMLWriter::characters should ignore empty strings
|
||||
- fixed SF# 1806994: property application.runAsService set too late
|
||||
- fixed SF# 1828908: HTMLForm does not encode '+'
|
||||
- fixed SF# 1831871: Windows configuration file line endings not correct.
|
||||
- fixed SF# 1845545: TCP server hangs on shutdown
|
||||
- fixed SF# 1846734: Option::validator() does not behave according to doc
|
||||
- fixed SF# 1856567: Assertion in DateTimeParser::tryParse()
|
||||
- fixed SF# 1864832: HTTP server sendFile() uses incorrect date
|
||||
- HTTPServerResponseImpl now always sets the Date header automatically
|
||||
in the constructor.
|
||||
- fixed SF# 1787667: DateTimeFormatter and time related classes
|
||||
(also SF# 1800031: The wrong behavior of time related classes)
|
||||
- fixed SF# 1829700: TaskManager::_taskList contains tasks that never started
|
||||
- fixed SF# 1834127: Anonymous enums in Tuple.h result in invalid C++
|
||||
- fixed SF# 1834130: RunnableAdapter::operator= not returning a value
|
||||
- fixed SF# 1873924: Add exception code to NetException
|
||||
- fixed SF# 1873929: SMTPClientSession support for name in sender field
|
||||
- logging performance improvements (PatternFormatter)
|
||||
- fixed SF# 1883871: TypeList operator < fails for tuples with duplicate values
|
||||
- CYGWIN build works again (most things work but Foundation testsuite still fails)
|
||||
- new build configuration for Digi Embedded Linux (ARM9, uclibc)
|
||||
- new build configuration for PowerPC Linux
|
||||
|
||||
Data:
|
||||
- fixed SF# 1724388: ODBC Diagnostics
|
||||
- fixed SF# 1804797: ODBC Statement multiple execution fails
|
||||
- fixed SF# 1803435: SessionPool onJanitorTimer called too often?
|
||||
- fixed SF# 1851997: Undefined Behavior in ODBC::Preparation
|
||||
- updated SQlite to 3.5.5
|
||||
|
||||
|
||||
Release 1.3.1 (2007-08-08)
|
||||
==========================
|
||||
|
||||
Foundation, XML, Net, Util:
|
||||
- DynamicAny fixes for char conversions
|
||||
- fixed SF# 1733362: Strange timeout handling in SocketImpl::poll and Socket::select
|
||||
- fixed SF patch# 1728912: crash in POCO on Solaris
|
||||
- fixed SF# 1732138: Bug in WinRegistryConfiguration::getString
|
||||
- fixed SF# 1730790: Reference counting breaks NetworkInterface::list()
|
||||
- fixed SF# 1720733: Poco::SignalHandler bug
|
||||
- fixed SF# 1718724: Poco::StreamCopier::copyStream loops forever
|
||||
- fixed SF# 1718437: HashMap bug
|
||||
- changed LinearHashTable iterator implementation. less templates -> good thing.
|
||||
- fixed SF# 1733964: DynamicAny compile error
|
||||
- UUIDGenerator: fixed infinite loop with non ethernet interfaces
|
||||
- updated expat to 2.0.1
|
||||
- fixed SF# 1730566: HTTP server throws exception
|
||||
- Glob supports symbolic links (additional flag to control behavior)
|
||||
- fixed a problem with non blocking connect in NetSSL_OpenSSL
|
||||
(see http://www.appinf.com/poco/wiki/tiki-view_forum_thread.php?comments_parentId=441&topics_threshold=0&topics_offset=29&topics_sort_mode=commentDate_desc&topics_find=&forumId=6)
|
||||
- fixed a problem with SSL renegotiation in NetSSL_OpenSSL (thanks to Sanjay Chouksey for the fix)
|
||||
- fixed SF# 1714753: NetSSL_OpenSSL: HTTPS connections fail with wildcard certs
|
||||
- HTTPClientSession: set Host header only if it's not already set (proposed by EHL)
|
||||
- NetworkInterface (Windows): Loopback interface now has correct netmask;
|
||||
interfaces that do not have an IP address assigned are no longer reported.
|
||||
- Fixes for VC++ W4 warnings from EHL
|
||||
- SharedMemory: first constructor has an additional "server" parameter
|
||||
Setting to true does not unlink the shared memory region when the SharedMemory object is destroyed. (Alessandro Oliveira Ungaro)
|
||||
- fixed SF# 1768231: MemoryPool constructor
|
||||
|
||||
Data:
|
||||
- fixed SF# 1739989: Data::RecordSet::operator = () (in 1.3 branch)
|
||||
- fixed SF# 1747525: SQLite, Transactions and Session Pooling (in 1.3 branch)
|
||||
- upgraded to SQLite 3.4.1
|
||||
|
||||
|
||||
Release 1.3.0 (2007-05-07)
|
||||
==========================
|
||||
|
||||
|
28
CONTRIBUTORS
28
CONTRIBUTORS
@ -1,19 +1,25 @@
|
||||
Guenter Obiltschnig <guenter.obiltschnig@appinf.com>
|
||||
Alex Fabijanic <aleskx@gmail.com>
|
||||
Peter Schojer <peter.schojer@appinf.com>
|
||||
Claus Dabringer <claus.dabringer@appinf.com>
|
||||
Andrew Marlow <public@marlowa.plus.com>
|
||||
Caleb Epstein <caleb.epstein@gmail.com>
|
||||
Andrew J. P. Maclean <a.maclean@optusnet.com.au>
|
||||
Paschal Mushubi <mushubi@sympatico.ca>
|
||||
Sergey N. Yatskevich <snc@spectrum-soft.ru>
|
||||
Ferdinand Beyer <fbeyer@users.sourceforge.net>
|
||||
Krzysztof Burghardt <burghardt@users.sourceforge.net>
|
||||
David Shawley <boredc0der@users.sourceforge.net>
|
||||
Larry Lewis <lewislp@users.sourceforge.net>
|
||||
Ryan Kraay <rkraay@users.sourceforge.net>
|
||||
Claus Dabringer <claus.dabringer@appinf.com>
|
||||
Caleb Epstein <caleb.epstein@gmail.com>
|
||||
Eran Hammer-Lahav <therazorblade@users.sourceforge.net>
|
||||
Tom Tan
|
||||
Chris Johnson <devcjohnson@gmail.com>
|
||||
Sergey Kholodilov <serghol@gmail.com>
|
||||
Ryan Kraay <rkraay@users.sourceforge.net>
|
||||
Larry Lewis <lewislp@users.sourceforge.net>
|
||||
Andrew J. P. Maclean <a.maclean@optusnet.com.au>
|
||||
Andrew Marlow <public@marlowa.plus.com>
|
||||
Paschal Mushubi <mushubi@sympatico.ca>
|
||||
Jiang Shan <pasorobo@users.sourceforge.net>
|
||||
David Shawley <boredc0der@users.sourceforge.net>
|
||||
Sergey Skorokhodov <ryppka@users.sourceforge.net>
|
||||
Tom Tan <>
|
||||
Sergey N. Yatskevich <snc@begun.ru>
|
||||
Marc Chevrier
|
||||
Philippe Cuvillier
|
||||
|
||||
--
|
||||
$Id: //poco/Main/dist/CONTRIBUTORS#7 $
|
||||
$Id: //poco/1.4/dist/CONTRIBUTORS#1 $
|
||||
|
55
Makefile
55
Makefile
@ -24,7 +24,7 @@ endif
|
||||
all: libexecs tests samples
|
||||
|
||||
INSTALLDIR = $(DESTDIR)$(POCO_PREFIX)
|
||||
COMPONENTS = Foundation XML Util Net NetSSL_OpenSSL Data Data/SQLite Data/ODBC
|
||||
COMPONENTS = Foundation XML Util Net Crypto NetSSL_OpenSSL Data Data/SQLite Data/ODBC Data/MySQL Zip PageCompiler PageCompiler/File2Page
|
||||
|
||||
cppunit:
|
||||
$(MAKE) -C $(POCO_BASE)/CppUnit
|
||||
@ -44,9 +44,9 @@ install: libexecs
|
||||
find $(POCO_BUILD)/lib -name "libPoco*" -type f -exec cp -f {} $(INSTALLDIR)/lib \;
|
||||
find $(POCO_BUILD)/lib -name "libPoco*" -type l -exec cp -Rf {} $(INSTALLDIR)/lib \;
|
||||
|
||||
libexecs = Foundation-libexec XML-libexec Util-libexec Net-libexec NetSSL_OpenSSL-libexec Data-libexec Data/SQLite-libexec Data/ODBC-libexec
|
||||
tests = Foundation-tests XML-tests Util-tests Net-tests NetSSL_OpenSSL-tests Data-tests Data/SQLite-tests Data/ODBC-tests
|
||||
samples = Foundation-samples XML-samples Util-samples Net-samples NetSSL_OpenSSL-samples Data-samples
|
||||
libexecs = Foundation-libexec XML-libexec Util-libexec Net-libexec Crypto-libexec NetSSL_OpenSSL-libexec Data-libexec Data/SQLite-libexec Data/ODBC-libexec Data/MySQL-libexec Zip-libexec PageCompiler-libexec PageCompiler/File2Page-libexec
|
||||
tests = Foundation-tests XML-tests Util-tests Net-tests Crypto-tests NetSSL_OpenSSL-tests Data-tests Data/SQLite-tests Data/ODBC-tests Data/MySQL-tests Zip-tests
|
||||
samples = Foundation-samples XML-samples Util-samples Net-samples Crypto-samples NetSSL_OpenSSL-samples Data-samples Zip-samples PageCompiler-samples
|
||||
|
||||
.PHONY: $(libexecs)
|
||||
.PHONY: $(tests)
|
||||
@ -92,7 +92,16 @@ Net-tests: Net-libexec cppunit
|
||||
Net-samples: Net-libexec Foundation-libexec XML-libexec Util-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/Net/samples
|
||||
|
||||
NetSSL_OpenSSL-libexec: Foundation-libexec Net-libexec Util-libexec
|
||||
Crypto-libexec: Foundation-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/Crypto
|
||||
|
||||
Crypto-tests: Crypto-libexec cppunit
|
||||
$(MAKE) -C $(POCO_BASE)/Crypto/testsuite
|
||||
|
||||
Crypto-samples: Crypto-libexec Foundation-libexec Util-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/Crypto/samples
|
||||
|
||||
NetSSL_OpenSSL-libexec: Foundation-libexec Net-libexec Util-libexec Crypto-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL
|
||||
|
||||
NetSSL_OpenSSL-tests: NetSSL_OpenSSL-libexec cppunit
|
||||
@ -122,6 +131,30 @@ Data/ODBC-libexec: Foundation-libexec Data-libexec
|
||||
Data/ODBC-tests: Data/ODBC-libexec cppunit
|
||||
$(MAKE) -C $(POCO_BASE)/Data/ODBC/testsuite
|
||||
|
||||
Data/MySQL-libexec: Foundation-libexec Data-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/Data/MySQL
|
||||
|
||||
Data/MySQL-tests: Data/MySQL-libexec cppunit
|
||||
$(MAKE) -C $(POCO_BASE)/Data/MySQL/testsuite
|
||||
|
||||
Zip-libexec: Foundation-libexec Net-libexec Util-libexec XML-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/Zip
|
||||
|
||||
Zip-tests: Zip-libexec cppunit
|
||||
$(MAKE) -C $(POCO_BASE)/Zip/testsuite
|
||||
|
||||
Zip-samples: Zip-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/Zip/samples
|
||||
|
||||
PageCompiler-libexec: Net-libexec Util-libexec XML-libexec Foundation-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/PageCompiler
|
||||
|
||||
PageCompiler-samples: PageCompiler-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/PageCompiler/samples
|
||||
|
||||
PageCompiler/File2Page-libexec: Net-libexec Util-libexec XML-libexec Foundation-libexec
|
||||
$(MAKE) -C $(POCO_BASE)/PageCompiler/File2Page
|
||||
|
||||
clean:
|
||||
$(MAKE) -C $(POCO_BASE)/Foundation clean
|
||||
$(MAKE) -C $(POCO_BASE)/Foundation/testsuite clean
|
||||
@ -135,6 +168,9 @@ clean:
|
||||
$(MAKE) -C $(POCO_BASE)/Net clean
|
||||
$(MAKE) -C $(POCO_BASE)/Net/testsuite clean
|
||||
$(MAKE) -C $(POCO_BASE)/Net/samples clean
|
||||
$(MAKE) -C $(POCO_BASE)/Crypto clean
|
||||
$(MAKE) -C $(POCO_BASE)/Crypto/testsuite clean
|
||||
$(MAKE) -C $(POCO_BASE)/Crypto/samples clean
|
||||
$(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL clean
|
||||
$(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/testsuite clean
|
||||
$(MAKE) -C $(POCO_BASE)/NetSSL_OpenSSL/samples clean
|
||||
@ -145,6 +181,15 @@ clean:
|
||||
$(MAKE) -C $(POCO_BASE)/Data/SQLite/testsuite clean
|
||||
$(MAKE) -C $(POCO_BASE)/Data/ODBC clean
|
||||
$(MAKE) -C $(POCO_BASE)/Data/ODBC/testsuite clean
|
||||
$(MAKE) -C $(POCO_BASE)/Data/MySQL clean
|
||||
$(MAKE) -C $(POCO_BASE)/Data/MySQL/testsuite clean
|
||||
$(MAKE) -C $(POCO_BASE)/Zip clean
|
||||
$(MAKE) -C $(POCO_BASE)/Zip/testsuite clean
|
||||
$(MAKE) -C $(POCO_BASE)/Zip/samples clean
|
||||
$(MAKE) -C $(POCO_BASE)/PageCompiler clean
|
||||
$(MAKE) -C $(POCO_BASE)/PageCompiler/samples clean
|
||||
$(MAKE) -C $(POCO_BASE)/PageCompiler/File2Page clean
|
||||
$(MAKE) -C $(POCO_BASE)/CppUnit clean
|
||||
|
||||
distclean:
|
||||
rm -rf $(POCO_BUILD)/lib
|
||||
|
178
README
178
README
@ -1,9 +1,8 @@
|
||||
This is the README file for POCO - The C++ Portable Components.
|
||||
This is the README file for the POCO C++ Libraries.
|
||||
|
||||
In this document you will find a brief description of the directory layout,
|
||||
as well as a description necessary steps to build the C++ Portable Components.
|
||||
as well as a description necessary steps to build the POCO C++ Libraries.
|
||||
|
||||
The C++ Portable Components currently consist of four libraries.
|
||||
The Foundation library contains a platform abstraction layer (including classes
|
||||
for multithreading, file system access, logging, etc.), as well as
|
||||
a large number of useful utility classes, such various stream buffer and stream
|
||||
@ -12,22 +11,25 @@ The XML library contains an XML parser with SAX2 and DOM interfaces,
|
||||
as well as an XMLWriter.
|
||||
The Util library contains classes for working with configuration files and
|
||||
command line arguments, as well as various utility classes.
|
||||
The Net library contains network classes (sockets, HTTP, etc.)
|
||||
The Net library contains network classes (sockets, HTTP client/server, etc.).
|
||||
All libraries come with a test suite and a number of sample programs.
|
||||
|
||||
The directory layout is as follows:
|
||||
The basic directory layout is as follows:
|
||||
|
||||
build/ the build system for Unix/OpenVMS and additional utility scripts
|
||||
config/ build configurations for various Unix platforms
|
||||
rules/ common build rules for all platforms
|
||||
scripts/ build and utility scripts
|
||||
vms/ OpenVMS build system scripts
|
||||
vxconfig/ VxWorks build configurations
|
||||
|
||||
bin/ all executables (dynamic link libraries on Windows)
|
||||
bin64/ all 64-bit executables (and DLLs)
|
||||
|
||||
doc/ additional documentation
|
||||
|
||||
lib/ all libraries (import libraries on Windows)
|
||||
lib64/ all 64-bit libraries
|
||||
|
||||
CppUnit/ project and make/build files for the CppUnit unit testing framework
|
||||
doc/ additional documentation
|
||||
@ -38,7 +40,7 @@ CppUnit/ project and make/build files for the CppUnit unit tes
|
||||
|
||||
Foundation/ project and make/build files for the Foundation library
|
||||
include/
|
||||
Foundation/ header files for the Foundation library
|
||||
Poco/ header files for the Foundation library
|
||||
src/ source files for the Foundation library
|
||||
testsuite/ project and make/build files for the Foundation testsuite
|
||||
src/ source files for the Foundation testsuite
|
||||
@ -47,62 +49,127 @@ Foundation/ project and make/build files for the Foundation libra
|
||||
|
||||
XML/ project and make/build files for the XML library
|
||||
include/
|
||||
Foundation/ header files for the XML library
|
||||
Poco/
|
||||
XML/ header files for the core XML library
|
||||
SAX/ header files for SAX support
|
||||
DOM/ header files for DOM support
|
||||
src/ source files for the XML library
|
||||
testsuite/ project and make/build files for the XML testsuite
|
||||
src/ source files for the XML testsuite
|
||||
bin/ test suite executables
|
||||
samples/ sample applications for the XML library
|
||||
|
||||
Net/ project and make/build files for the Net library
|
||||
include/
|
||||
Poco/
|
||||
Net/ header files for the Net library
|
||||
src/ source files for the Net library
|
||||
testsuite/ project and make/build files for the Net testsuite
|
||||
src/ source files for the Net testsuite
|
||||
bin/ test suite executables
|
||||
samples/ sample applications for the Net library
|
||||
|
||||
|
||||
Depending on what package you have downloaded, there may be other libraries
|
||||
as well (such as Data, Crypto, NetSSL_OpenSSL and Zip).
|
||||
|
||||
|
||||
DOCUMENTATION
|
||||
=============
|
||||
|
||||
Online browsable reference documentation in HTML is available at
|
||||
<http://poco.appinf.com/docs/>. Additional documentation,
|
||||
including and overview and an introduction to the samples
|
||||
is available at <http://poco/appinf.com/documentation/>.
|
||||
Plenty of documentation (tutorial slides, articles and SDK reference)
|
||||
is available at <http://pocoproject.org/documentation/>.
|
||||
|
||||
|
||||
EXTERNAL DEPENDENCIES
|
||||
=====================
|
||||
|
||||
The following libraries require third-party software (header files and
|
||||
libraries) being installed to build properly:
|
||||
|
||||
- NetSSL_OpenSSL and Crypt require OpenSSL.
|
||||
- Data/ODBC requires ODBC
|
||||
(Microsoft ODBC on Windows, unixODBC or iODBC on Unix/Linux)
|
||||
- Data/MySQL requires the MySQL client.
|
||||
|
||||
Most Unix/Linux systems already have OpenSSL preinstalled. If your system
|
||||
does not have OpenSSL, please get it from http://www.openssl.org or
|
||||
another source. You do not have to build OpenSSL yourself - a binary
|
||||
distribution is fine (e.g., apt-get install openssl libssl-dev).
|
||||
|
||||
The easiest way to install OpenSSL on Windows is to use a binary
|
||||
(prebuild) release, for example the one from Shining Light
|
||||
Productions that comes with a Windows installer
|
||||
(http://www.slproweb.com/products/Win32OpenSSL.html).
|
||||
Depending on where you have installed the OpenSSL libraries,
|
||||
you might have to edit the build script (buildwin.cmd), or add the
|
||||
necessary paths to the INCLUDE and LIB environment variables.
|
||||
|
||||
The Data library requires ODBC support on your system if you want
|
||||
to build the ODBC connector (which is the default). On Windows
|
||||
platforms, ODBC should be readily available if you have the
|
||||
Windows SDK. On Unix/Linux platforms, you can use iODBC
|
||||
(preinstalled on Mac OS X) or unixODBC. For the MySQL connector,
|
||||
the MySQL client libraries and header files are required.
|
||||
|
||||
The Data/ODBC and Data/MySQL Makefiles will search for the ODBC
|
||||
and MySQL headers and libraries in various places. Nevertheless,
|
||||
the Makefiles may not be able to find the headers and libraries.
|
||||
In this case, please edit the Makefile in Data/ODBC and/or Data/MySQL
|
||||
accordingly.
|
||||
|
||||
|
||||
BUILDING ON WINDOWS
|
||||
===================
|
||||
|
||||
Microsoft Visual Studio 7.1 (2003) or 8.0 (2005) is required to build the C++ Portable Components
|
||||
on Windows platforms. Solution and project files for both versions are included.
|
||||
Microsoft Visual Studio 7.1 (2003), 8.0 (2005), 9.0 (2008) or 10.0 (2010) is required to
|
||||
build the POCO C++ Libraries on Windows platforms. Solution and project files for all
|
||||
versions are included. For Visual Studio 2008 and 2010, 64-bit (x64) builds are
|
||||
supported as well.
|
||||
You can either build from within Visual Studio (Build->Batch Build->Select All;Rebuild)
|
||||
or from the command line. To build from the command line, start the
|
||||
Visual Studio .NET 2003 (or 2005) Command Prompt and cd to the directory where you have
|
||||
extracted the C++ Portable Components sources. Then simply start the build_vs71.cmd (or
|
||||
build_vs80.cmd, respectively) batch file. This will build all libraries, test suites and
|
||||
sample programs, in both debug and release versions. The dynamic link libraries will be
|
||||
placed in the top-most bin directory. The import libraries will be placed in the top-most lib
|
||||
directory. The test suite executables will be placed in the testsuite/bin directories.
|
||||
The sample executables will be placed in the sample/*/bin directories.
|
||||
Visual Studio .NET 2003 (or 2005/2008/2010) Command Prompt and cd to the directory where you
|
||||
have extracted the POCO C++ Libraries sources. Then, simply start the buildwin.cmd script
|
||||
and pass as argument the version of visual studio (71, 80, 90 or 100). You can customize
|
||||
what is being built by buildwin.cmd by passing appropriate command line arguments to
|
||||
it. Call buildwin.cmd without arguments to see what is available.
|
||||
|
||||
To disable certain components (e.g., NetSSL_OpenSSL or Data/MySQL) from the build,
|
||||
edit the file named "components" and remove the respective lines.
|
||||
|
||||
Certain libraries, like NetSSL_OpenSSL, Crypto or Data/MySQL have dependencies
|
||||
to other libraries. Since the build script does not know where to find the necessary
|
||||
header files and import libraries, you have to either add the header file paths to
|
||||
the INCLUDE environment variable and the library path to the LIB environment variable,
|
||||
or you'll have to edit the buildwin.cmd script, where these environment variables can
|
||||
be set as well.
|
||||
|
||||
In order to run the test suite and the samples, the top-most bin directory containing
|
||||
the shared libraries must be in the PATH environment variable.
|
||||
|
||||
If you want to run the test suite or samples from within Visual Studio, we recommend that
|
||||
you download and install the free Solution Build Environment for Visual Studio .NET 2003,
|
||||
from <http://www.workspacewhiz.com/SolutionBuildEnvironmentReadme.html>.
|
||||
IMPORTANT NOTE: Please make sure that the path to the directory containing the
|
||||
POCO C++ Libraries source tree does not contain spaces. Otherwise, the Microsoft
|
||||
message compiler may fail when building the Foundation library.
|
||||
|
||||
You can then add the bin directory to the PATH environment variable in a .slnenv file,
|
||||
using the following entry.
|
||||
|
||||
POCO_BASE=p:\poco
|
||||
PATH=$(PATH);$(POCO_BASE)\bin
|
||||
BUILDING FOR WINDOWS CE
|
||||
|
||||
Of course you will have to change the path p:\poco so that it matches your environment.
|
||||
Building for Windows CE is supported with Microsoft Visual Studio 2008.
|
||||
Unless you have the Digi JumpStart Windows CE 6.0 SDK installed, you'll
|
||||
have to modify the included Visual Studio project and solution files.
|
||||
Please see the SDK Reference Documentation (http://pocoproject.org/documentation)
|
||||
for instructions.
|
||||
|
||||
|
||||
BUILDING ON UNIX/LINUX/MAC OS X
|
||||
===============================
|
||||
|
||||
For building on Unix platforms, the C++ Portable Components come with their own
|
||||
build system. The build system is based on GNU Make 3.80, with the help from a few
|
||||
shell scripts. If you do not have GNU Make 3.80 (or later) installed on your machine,
|
||||
you will need to download it from <http://directory.fsf.org/devel/build/make.html>,
|
||||
build and install it prior to building the C++ Portable Components.
|
||||
For building on Unix platforms, the POCO C++ Libraries come with their own
|
||||
build system. The build system is based on GNU Make 3.80 (or newer), with the help
|
||||
from a few shell scripts. If you do not have GNU Make 3.80 (or later) installed on
|
||||
your machine, you will need to download it from
|
||||
http://directory.fsf.org/devel/build/make.html>,
|
||||
build and install it prior to building the POCO C++ Libraries.
|
||||
|
||||
You can check the version of GNU Make installed on your system with
|
||||
|
||||
@ -122,6 +189,9 @@ To extract the sources and build all libraries, testsuites and samples, simply
|
||||
> gmake -s
|
||||
|
||||
See the configure script source for a list of possible options.
|
||||
For starters, we recommend --no-tests and --no-samples, to reduce build times.
|
||||
On a multicore or multiprocessor machine, use parallel makes to speed up
|
||||
the build (make -j4).
|
||||
|
||||
Once you have successfully built POCO, you can install it
|
||||
to /usr/local (or another directory specified as parameter
|
||||
@ -129,12 +199,28 @@ to configure --prefix=<path>):
|
||||
|
||||
> sudo gmake -s install
|
||||
|
||||
You can omit certain components from the build. For example, you might
|
||||
want to omit Data/ODBC or Data/MySQL if you do not have the corresponding
|
||||
third-party libraries (iodbc or unixodbc, mysqlclient) installed
|
||||
on your system. To do this, use the --omit argument to configure:
|
||||
|
||||
> ./configure --omit=Data/ODBC,Data/MySQL
|
||||
|
||||
|
||||
To build on Mac OS X 10.3 with GCC 3, do the following:
|
||||
(NOTE: This only affects 10.3; for 10.4/10.5 see above)
|
||||
|
||||
> ./configure --config=Darwin7
|
||||
> make -s
|
||||
|
||||
|
||||
IMPORTANT: Make sure that the path to the build directory does not
|
||||
contain symbolic links. Furthermore, on Mac OS X (or other systems
|
||||
with case insensitive filesystems), make sure that the characters in
|
||||
the path have the correct case. Otherwise you'll get an error saying
|
||||
"Current working directory not under $PROJECT_BASE.".
|
||||
|
||||
|
||||
BUILDING ON QNX NEUTRINO
|
||||
========================
|
||||
|
||||
@ -151,6 +237,20 @@ Service Pack 1 for QNX Neutrino 6.3 must be installed, otherwise compiling the
|
||||
Foundation library will fail due to a problem with the <list> header in the
|
||||
default (Dinkumware) C++ standard library.
|
||||
|
||||
When building on QNX, you might want to disable NetSSL_OpenSSL, Crypto and
|
||||
some Data connectors, unless you have the necessary third party components
|
||||
available:
|
||||
|
||||
> ./configure --omit=NetSSL_OpenSSL,Crypto,Data/ODBC,Data/MySQL
|
||||
|
||||
|
||||
BUILDING FOR VXWORKS
|
||||
====================
|
||||
|
||||
Please see the VxWorks Platform Notes in the Reference Documentation for
|
||||
more information. The Reference Documentation can be found online
|
||||
at <http://pocoproject.org/docs/>.
|
||||
|
||||
|
||||
BUILDING ON OPENVMS
|
||||
===================
|
||||
@ -159,12 +259,12 @@ OpenVMS is no longer supported in recent versions of POCO, due to both a
|
||||
lack of interest and a lack of contributors. The following
|
||||
instructions are here for historical reasons.
|
||||
|
||||
The C++ Portable Components come with their own build system for OpenVMS, implemented
|
||||
The POCO C++ Libraries come with their own build system for OpenVMS, implemented
|
||||
by a bunch of DCL scripts. The scripts can be found in the build/vms directory.
|
||||
|
||||
To build the C++ Portable Components on OpenVMS, follow the following steps.
|
||||
To build the POCO C++ Libraries on OpenVMS, follow the following steps.
|
||||
|
||||
1) Download the .zip distribution of the C++ Portable Components
|
||||
1) Download the .zip distribution of the POCO C++ Libraries
|
||||
|
||||
2) Unzip the archive
|
||||
$ unzip -aa poco-0_91_4.zip
|
||||
@ -186,9 +286,9 @@ versions, use
|
||||
MORE INFORMATION
|
||||
================
|
||||
|
||||
For more information, see the Applied Informatics C++ Portable Components website
|
||||
at <http://poco.appinf.com>.
|
||||
For more information, see the POCO C++ Libraries website
|
||||
at <http://pocoproject.org>.
|
||||
|
||||
|
||||
--
|
||||
$Id: //poco/Main/dist/README#9 $
|
||||
$Id: //poco/1.4/dist/README#3 $
|
||||
|
276
buildwin.cmd
276
buildwin.cmd
@ -4,16 +4,27 @@ setlocal
|
||||
rem
|
||||
rem buildwin.cmd
|
||||
rem
|
||||
rem command-line build script for MS Visual Studio
|
||||
rem POCO C++ Libraries command-line build script
|
||||
rem for MS Visual Studio 2003 to 2010
|
||||
rem
|
||||
rem $Id: //poco/1.4/dist/buildwin.cmd#1 $
|
||||
rem
|
||||
rem Copyright (c) 2006-2010 by Applied Informatics Software Engineering GmbH
|
||||
rem and Contributors.
|
||||
rem
|
||||
rem Original version by Aleksandar Fabijanic.
|
||||
rem Modified by Guenter Obiltschnig.
|
||||
rem
|
||||
rem Usage:
|
||||
rem ------
|
||||
rem buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [SAMPLES]
|
||||
rem VS_VERSION: 71|80|90
|
||||
rem buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIG] [PLATFORM] [SAMPLES] [DEVENV]
|
||||
rem VS_VERSION: 71|80|90|100
|
||||
rem ACTION: build|rebuild|clean
|
||||
rem LINKMODE: static|shared|both
|
||||
rem LINKMODE: static_mt|static_md|shared|all
|
||||
rem CONFIG: release|debug|both
|
||||
rem SAMPLES: yes|no
|
||||
rem PLATFORM: Win32|x64|WinCE
|
||||
rem SAMPLES: samples|nosamples
|
||||
rem DEVENV: devenv|vcexpress
|
||||
rem
|
||||
rem VS_VERSION is required argument. Default is build all.
|
||||
|
||||
@ -24,27 +35,36 @@ set OPENSSL_LIB=%OPENSSL_DIR%\lib\VC
|
||||
set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE%
|
||||
set LIB=%LIB%;%OPENSSL_LIB%
|
||||
|
||||
set POCOBASE=%CD%
|
||||
set POCO_BASE=%CD%
|
||||
set PATH=%POCO_BASE%\bin;%PATH%
|
||||
|
||||
rem VS version {71|80|90}
|
||||
rem VS version {71|80|90|100}
|
||||
if "%1"=="" goto usage
|
||||
set VS_VERSION=vs%1
|
||||
|
||||
if "%7"=="" goto use_devenv
|
||||
set BUILD_TOOL="%7"
|
||||
goto use_custom
|
||||
:use_devenv
|
||||
set BUILD_TOOL=devenv
|
||||
:use_custom
|
||||
|
||||
rem Action [build|rebuild|clean]
|
||||
set ACTION=%2
|
||||
if not "%ACTION%"=="build" (
|
||||
if not "%ACTION%"=="rebuild" (
|
||||
if not "%ACTION%"=="" (
|
||||
if not "%ACTION%"=="clean" goto usage)))
|
||||
if not "%ACTION%"=="clean" goto usage)))
|
||||
|
||||
if "%ACTION%"=="" (set ACTION="build")
|
||||
|
||||
rem Link mode [static|shared|both]
|
||||
set LINK_MODE=%3
|
||||
if not "%LINK_MODE%"=="static" (
|
||||
if not "%LINK_MODE%"=="static_mt" (
|
||||
if not "%LINK_MODE%"=="static_md" (
|
||||
if not "%LINK_MODE%"=="shared" (
|
||||
if not "%LINK_MODE%"=="" (
|
||||
if not "%LINK_MODE%"=="both" goto usage)))
|
||||
if not "%LINK_MODE%"=="all" goto usage))))
|
||||
|
||||
rem Configuration [release|debug|both]
|
||||
set CONFIGURATION=%4
|
||||
@ -53,14 +73,28 @@ if not "%CONFIGURATION%"=="debug" (
|
||||
if not "%CONFIGURATION%"=="" (
|
||||
if not "%CONFIGURATION%"=="both" goto usage)))
|
||||
|
||||
rem Samples [yes|no]
|
||||
set SAMPLES=%5
|
||||
if "%SAMPLES%"=="" (set SAMPLES=yes)
|
||||
rem Platform [Win32|x64|WinCE]
|
||||
set PLATFORM=%5%
|
||||
if not "%PLATFORM%"=="" (
|
||||
if not "%PLATFORM%"=="Win32" (
|
||||
if not "%PLATFORM%"=="x64" (
|
||||
if not "%PLATFORM%"=="WinCE" goto usage)))
|
||||
|
||||
if "%PLATFORM%"=="" (set PLATFORM_SUFFIX=) else (
|
||||
if "%PLATFORM%"=="Win32" (set PLATFORM_SUFFIX=) else (
|
||||
if "%PLATFORM%"=="x64" (set PLATFORM_SUFFIX=_x64) else (
|
||||
if "%PLATFORM%"=="WinCE" (set PLATFORM_SUFFIX=_CE))))
|
||||
|
||||
rem Samples [samples|nosamples]
|
||||
set SAMPLES=%6
|
||||
if "%SAMPLES%"=="" (set SAMPLES=samples)
|
||||
|
||||
set RELEASE_SHARED=0
|
||||
set DEBUG_SHARED=0
|
||||
set DEBUG_STATIC=0
|
||||
set RELEASE_STATIC=0
|
||||
set RELEASE_SHARED=0
|
||||
set DEBUG_STATIC_MT=0
|
||||
set RELEASE_STATIC_MT=0
|
||||
set DEBUG_STATIC_MD=0
|
||||
set RELEASE_STATIC_MD=0
|
||||
|
||||
if "%LINK_MODE%"=="shared" (
|
||||
if "%CONFIGURATION%"=="release" (set RELEASE_SHARED=1) else (
|
||||
@ -72,102 +106,166 @@ if "%CONFIGURATION%"=="debug" (set DEBUG_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="both" (set DEBUG_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="" (set DEBUG_SHARED=1))))
|
||||
|
||||
if "%LINK_MODE%"=="static" (
|
||||
if "%CONFIGURATION%"=="release" (set RELEASE_STATIC=1) else (
|
||||
if "%CONFIGURATION%"=="both" (set RELEASE_STATIC=1) else (
|
||||
if "%CONFIGURATION%"=="" (set RELEASE_STATIC=1))))
|
||||
if "%LINK_MODE%"=="static_mt" (
|
||||
if "%CONFIGURATION%"=="release" (set RELEASE_STATIC_MT=1) else (
|
||||
if "%CONFIGURATION%"=="both" (set RELEASE_STATIC_MT=1) else (
|
||||
if "%CONFIGURATION%"=="" (set RELEASE_STATIC_MT=1))))
|
||||
|
||||
if "%LINK_MODE%"=="static" (
|
||||
if "%CONFIGURATION%"=="debug" (set DEBUG_STATIC=1) else (
|
||||
if "%CONFIGURATION%"=="both" (set DEBUG_STATIC=1) else (
|
||||
if "%CONFIGURATION%"=="" (set DEBUG_STATIC=1))))
|
||||
if "%LINK_MODE%"=="static_md" (
|
||||
if "%CONFIGURATION%"=="release" (set RELEASE_STATIC_MD=1) else (
|
||||
if "%CONFIGURATION%"=="both" (set RELEASE_STATIC_MD=1) else (
|
||||
if "%CONFIGURATION%"=="" (set RELEASE_STATIC_MD=1))))
|
||||
|
||||
if "%LINK_MODE%"=="both" (
|
||||
if "%LINK_MODE%"=="static_mt" (
|
||||
if "%CONFIGURATION%"=="debug" (set DEBUG_STATIC_MT=1) else (
|
||||
if "%CONFIGURATION%"=="both" (set DEBUG_STATIC_MT=1) else (
|
||||
if "%CONFIGURATION%"=="" (set DEBUG_STATIC_MT=1))))
|
||||
|
||||
if "%LINK_MODE%"=="static_md" (
|
||||
if "%CONFIGURATION%"=="debug" (set DEBUG_STATIC_MD=1) else (
|
||||
if "%CONFIGURATION%"=="both" (set DEBUG_STATIC_MD=1) else (
|
||||
if "%CONFIGURATION%"=="" (set DEBUG_STATIC_MD=1))))
|
||||
|
||||
if "%LINK_MODE%"=="all" (
|
||||
if "%CONFIGURATION%"=="debug" (
|
||||
set DEBUG_STATIC=1
|
||||
set DEBUG_STATIC_MT=1
|
||||
set DEBUG_STATIC_MD=1
|
||||
set DEBUG_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="release" (
|
||||
set RELEASE_STATIC=1
|
||||
set RELEASE_STATIC_MT=1
|
||||
set RELEASE_STATIC_MD=1
|
||||
set RELEASE_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="both" (
|
||||
set DEBUG_STATIC=1
|
||||
set DEBUG_STATIC_MT=1
|
||||
set DEBUG_STATIC_MD=1
|
||||
set DEBUG_SHARED=1
|
||||
set RELEASE_STATIC=1
|
||||
set RELEASE_STATIC_MT=1
|
||||
set RELEASE_STATIC_MD=1
|
||||
set RELEASE_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="" (
|
||||
set DEBUG_STATIC=1
|
||||
set DEBUG_STATIC_MT=1
|
||||
set DEBUG_STATIC_MD=1
|
||||
set DEBUG_SHARED=1
|
||||
set RELEASE_STATIC=1
|
||||
set RELEASE_STATIC_MT=1
|
||||
set RELEASE_STATIC_MD=1
|
||||
set RELEASE_SHARED=1)))))
|
||||
|
||||
if "%LINK_MODE%"=="" (
|
||||
if "%CONFIGURATION%"=="debug" (
|
||||
set DEBUG_STATIC=1
|
||||
set DEBUG_STATIC_MT=1
|
||||
set DEBUG_STATIC_MD=1
|
||||
set DEBUG_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="release" (
|
||||
set RELEASE_STATIC=1
|
||||
set RELEASE_STATIC_MT=1
|
||||
set RELEASE_STATIC_MD=1
|
||||
set RELEASE_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="both" (
|
||||
set DEBUG_STATIC=1
|
||||
set DEBUG_STATIC_MT=1
|
||||
set DEBUG_STATIC_MD=1
|
||||
set DEBUG_SHARED=1
|
||||
set RELEASE_STATIC=1
|
||||
set RELEASE_STATIC_MT=1
|
||||
set RELEASE_STATIC_MD=1
|
||||
set RELEASE_SHARED=1) else (
|
||||
if "%CONFIGURATION%"=="" (
|
||||
set DEBUG_STATIC=1
|
||||
set DEBUG_STATIC_MT=1
|
||||
set DEBUG_STATIC_MD=1
|
||||
set DEBUG_SHARED=1
|
||||
set RELEASE_STATIC=1
|
||||
set RELEASE_STATIC_MT=1
|
||||
set RELEASE_STATIC_MD=1
|
||||
set RELEASE_SHARED=1)))))
|
||||
|
||||
echo.
|
||||
echo.
|
||||
echo ########################################################################
|
||||
echo ####
|
||||
echo #### STARTING VISUAL STUDIO BUILD (%VS_VERSION%, %PLATFORM%)
|
||||
echo ####
|
||||
echo ########################################################################
|
||||
echo.
|
||||
echo.
|
||||
echo The following configurations will be built:
|
||||
|
||||
echo Building:
|
||||
|
||||
if %DEBUG_SHARED%==1 (echo debug_shared)
|
||||
if %RELEASE_SHARED%==1 (echo release_shared)
|
||||
if %DEBUG_STATIC%==1 (echo debug_static)
|
||||
if %RELEASE_STATIC%==1 (echo release_static)
|
||||
if %DEBUG_SHARED%==1 (echo debug_shared)
|
||||
if %RELEASE_SHARED%==1 (echo release_shared)
|
||||
if %DEBUG_STATIC_MT%==1 (echo debug_static_mt)
|
||||
if %DEBUG_STATIC_MD%==1 (echo debug_static_md)
|
||||
if %RELEASE_STATIC_MT%==1 (echo release_static_mt)
|
||||
if %RELEASE_STATIC_MD%==1 (echo release_static_md)
|
||||
|
||||
rem build for up to 4 levels deep
|
||||
for /f %%G in ('findstr /R "." components') do (
|
||||
if exist %%G (
|
||||
cd %%G
|
||||
for /f "tokens=1,2,3,4 delims=/" %%Q in ("%%G") do (
|
||||
if exist %%Q_%VS_VERSION%.sln (
|
||||
if exist %%Q%PLATFORM_SUFFIX%_%VS_VERSION%.sln (
|
||||
echo.
|
||||
echo ========== Building %%G ==========
|
||||
if %DEBUG_SHARED%==1 (devenv /useenv /%ACTION% debug_shared %%Q_%VS_VERSION%.sln)
|
||||
if %RELEASE_SHARED%==1 (devenv /useenv /%ACTION% release_shared %%Q_%VS_VERSION%.sln)
|
||||
if %DEBUG_STATIC%==1 (devenv /useenv /%ACTION% debug_static %%Q_%VS_VERSION%.sln)
|
||||
if %RELEASE_STATIC%==1 (devenv /useenv /%ACTION% release_static %%Q_%VS_VERSION%.sln)
|
||||
echo.
|
||||
echo ########################################################################
|
||||
echo ####
|
||||
echo #### Building %%G
|
||||
echo ####
|
||||
echo ########################################################################
|
||||
echo.
|
||||
if %DEBUG_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_shared %%Q%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% release_shared %%Q%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_mt %%Q%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_mt %%Q%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_md %%Q%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_md %%Q%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
)
|
||||
|
||||
if exist %%R_%VS_VERSION%.sln (
|
||||
if exist %%R%PLATFORM_SUFFIX%_%VS_VERSION%.sln (
|
||||
echo.
|
||||
echo ========== Building %%G ==========
|
||||
if %DEBUG_SHARED%==1 (devenv /useenv /%ACTION% debug_shared %%R_%VS_VERSION%.sln)
|
||||
if %RELEASE_SHARED%==1 (devenv /useenv /%ACTION% release_shared %%R_%VS_VERSION%.sln)
|
||||
if %DEBUG_STATIC%==1 (devenv /useenv /%ACTION% debug_static %%R_%VS_VERSION%.sln)
|
||||
if %RELEASE_STATIC%==1 (devenv /useenv /%ACTION% release_static %%R_%VS_VERSION%.sln)
|
||||
)
|
||||
|
||||
if exist %%S_%VS_VERSION%.sln (
|
||||
echo.
|
||||
echo ========== Building %%G ==========
|
||||
if %DEBUG_SHARED%==1 (devenv /useenv /%ACTION% debug_shared %%S_%VS_VERSION%.sln)
|
||||
if %RELEASE_SHARED%==1 (devenv /useenv /%ACTION% release_shared %%S_%VS_VERSION%.sln)
|
||||
if %DEBUG_STATIC%==1 (devenv /useenv /%ACTION% debug_static %%S_%VS_VERSION%.sln)
|
||||
if %RELEASE_STATIC%==1 (devenv /useenv /%ACTION% release_static %%S_%VS_VERSION%.sln)
|
||||
echo ########################################################################
|
||||
echo ####
|
||||
echo #### Building %%G
|
||||
echo ####
|
||||
echo ########################################################################
|
||||
echo.
|
||||
if %DEBUG_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_shared %%R%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% release_shared %%R%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_mt %%R%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_mt %%R%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_md %%R%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_md %%R%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
)
|
||||
|
||||
if exist %%T_%VS_VERSION%.sln (
|
||||
if exist %%S%PLATFORM_SUFFIX%_%VS_VERSION%.sln (
|
||||
echo.
|
||||
echo ========== Building %%G ==========
|
||||
if %DEBUG_SHARED%==1 (devenv /useenv /%ACTION% debug_shared %%T_%VS_VERSION%.sln)
|
||||
if %RELEASE_SHARED%==1 (devenv /useenv /%ACTION% release_shared %%T_%VS_VERSION%.sln)
|
||||
if %DEBUG_STATIC%==1 (devenv /useenv /%ACTION% debug_static %%T_%VS_VERSION%.sln)
|
||||
if %RELEASE_STATIC%==1 (devenv /useenv /%ACTION% release_static %%T_%VS_VERSION%.sln)
|
||||
echo.
|
||||
echo ########################################################################
|
||||
echo ####
|
||||
echo #### Building %%G
|
||||
echo ####
|
||||
echo ########################################################################
|
||||
echo.
|
||||
if %DEBUG_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_shared %%S%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% release_shared %%S%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_mt %%S%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_mt %%S%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_md %%S%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_md %%S%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
)
|
||||
|
||||
if exist %%T%PLATFORM_SUFFIX%_%VS_VERSION%.sln (
|
||||
echo.
|
||||
echo.
|
||||
echo ########################################################################
|
||||
echo ####
|
||||
echo #### Building %%G
|
||||
echo ####
|
||||
echo ########################################################################
|
||||
echo.
|
||||
if %DEBUG_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_shared %%T%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% release_shared %%T%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_mt %%T%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_mt %%T%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_md %%T%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_md %%T%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
)
|
||||
)
|
||||
cd %POCOBASE%
|
||||
cd %POCO_BASE%
|
||||
)
|
||||
)
|
||||
|
||||
@ -175,15 +273,23 @@ if "%SAMPLES%"=="no" goto :EOF
|
||||
|
||||
rem root level component samples
|
||||
for /f %%G in ('findstr /R "." components') do (
|
||||
if exist %%G\samples\samples_%VS_VERSION%.sln (
|
||||
if exist %%G\samples\samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln (
|
||||
cd %%G\samples
|
||||
echo.
|
||||
echo ========== Building %%G/samples ==========
|
||||
if %DEBUG_SHARED%==1 devenv /useenv /%ACTION% debug_shared samples_%VS_VERSION%.sln
|
||||
if %RELEASE_SHARED%==1 devenv /useenv /%ACTION% release_shared samples_%VS_VERSION%.sln
|
||||
if %DEBUG_STATIC%==1 devenv /useenv /%ACTION% debug_static samples_%VS_VERSION%.sln
|
||||
if %RELEASE_STATIC%==1 devenv /useenv /%ACTION% release_static samples_%VS_VERSION%.sln
|
||||
cd %POCOBASE%
|
||||
echo.
|
||||
echo.
|
||||
echo ########################################################################
|
||||
echo ####
|
||||
echo #### Building %%G/samples
|
||||
echo ####
|
||||
echo ########################################################################
|
||||
echo.
|
||||
if %DEBUG_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_shared samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_SHARED%==1 (%BUILD_TOOL% /useenv /%ACTION% release_shared samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_mt samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MT%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_mt samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %DEBUG_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% debug_static_md samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
if %RELEASE_STATIC_MD%==1 (%BUILD_TOOL% /useenv /%ACTION% release_static_md samples%PLATFORM_SUFFIX%_%VS_VERSION%.sln && echo. && echo. && echo.)
|
||||
cd %POCO_BASE%
|
||||
)
|
||||
)
|
||||
|
||||
@ -192,12 +298,14 @@ goto :EOF
|
||||
:usage
|
||||
echo Usage:
|
||||
echo ------
|
||||
echo buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [SAMPLES]
|
||||
echo VS_VERSION: "71|80|90"
|
||||
echo buildwin VS_VERSION [ACTION] [LINKMODE] [CONFIGURATION] [PLATFORM] [SAMPLES] [DEVENV]
|
||||
echo VS_VERSION: "71|80|90|100"
|
||||
echo ACTION: "build|rebuild|clean"
|
||||
echo LINKMODE: "static|shared|both"
|
||||
echo LINKMODE: "static_mt|static_md|shared|all"
|
||||
echo CONFIG: "release|debug|both"
|
||||
echo SAMPLES: "yes|no"
|
||||
echo.
|
||||
echo PLATFORM: "Win32|x64|WinCE"
|
||||
echo SAMPLES: "samples|nosamples"
|
||||
echo DEVENV: "devenv|vcexpress"
|
||||
echo.
|
||||
echo Default is build all.
|
||||
endlocal
|
||||
endlocal
|
||||
|
@ -13,3 +13,5 @@ Zip
|
||||
ApacheConnector
|
||||
WebWidgets
|
||||
WebWidgets/ExtJS
|
||||
PageCompiler
|
||||
PageCompiler/File2Page
|
172
configure
vendored
172
configure
vendored
@ -2,7 +2,7 @@
|
||||
#
|
||||
# configure
|
||||
#
|
||||
# $Id: //poco/1.3/dist/configure#6 $
|
||||
# $Id: //poco/1.4/dist/configure#2 $
|
||||
#
|
||||
# Configuration script for POCO.
|
||||
#
|
||||
@ -43,15 +43,53 @@ Options:
|
||||
--no-wstring
|
||||
Compile with -DPOCO_NO_WSTRING.
|
||||
Useful if your C++ compiler does not support std::wstring
|
||||
(such as uclibc-based systems).
|
||||
(such as uClibc-based systems).
|
||||
|
||||
--no-fpenvironment
|
||||
Compile with -DPOCO_NO_FPENVIRONMENT.
|
||||
Useful if your C++ compiler has incomplete floating-point support
|
||||
(such as uclibc-based systems).
|
||||
(such as uClibc-based systems).
|
||||
|
||||
--no-sharedmemory
|
||||
Compile with -DPOCO_NO_SHAREDMEMORY.
|
||||
For systems that don't support shared memory API's,
|
||||
like uClibc-based Linux systems.
|
||||
|
||||
--no-sharedlibs
|
||||
Compile with -DPOCO_NO_SHAREDLIBS.
|
||||
For systems that don't support shared library loading.
|
||||
|
||||
--omit=<component>{,<component>}
|
||||
Do not build the specified component(s).
|
||||
Example: --omit=Data/MySQL,Data/ODBC,Zip
|
||||
|
||||
--include-path=<path>
|
||||
Add search path for header files.
|
||||
|
||||
--library-path=<path>
|
||||
Add search path for library files.
|
||||
|
||||
--cflags=<flags>
|
||||
Pass additional flags to compiler.
|
||||
Example: --cflags=-wall
|
||||
|
||||
--poquito
|
||||
Omit a few features for smaller codesize when linking
|
||||
statically for embedded targets.
|
||||
|
||||
--unbundled
|
||||
Use system-provided zlib, pcre, expat and sqlite instead of
|
||||
bundled ones.
|
||||
|
||||
--static
|
||||
Build static libraries. Overrides default mode, which
|
||||
depends upon target. Can be specified together
|
||||
with --shared to build both.
|
||||
|
||||
--shared
|
||||
Build shared libraries. Overrides default mode, which
|
||||
depends upon target. Can be specified together
|
||||
with --static to build both.
|
||||
|
||||
ENDHELP
|
||||
}
|
||||
@ -74,14 +112,19 @@ tests="tests"
|
||||
samples="samples"
|
||||
flags=""
|
||||
omit=""
|
||||
includepath=""
|
||||
librarypath=""
|
||||
unbundled=""
|
||||
static=""
|
||||
shared=""
|
||||
# parse arguments
|
||||
while [ "$1" != "" ] ; do
|
||||
val=`$EXPR "$1" : '--config=\(.*\)'`
|
||||
if [ "$val" != "$NOTFOUND" ] ; then
|
||||
config=$val;
|
||||
fi
|
||||
|
||||
val=`$EXPR "$1" : '--prefix=\(.*\)'`
|
||||
val=`$EXPR "$1" : '--config=\(.*\)'`
|
||||
if [ "$val" != "$NOTFOUND" ] ; then
|
||||
config=$val
|
||||
fi
|
||||
|
||||
val=`$EXPR "$1" : '--prefix=\(.*\)'`
|
||||
if [ "$val" != "$NOTFOUND" ] ; then
|
||||
prefix=$val
|
||||
fi
|
||||
@ -93,12 +136,27 @@ while [ "$1" != "" ] ; do
|
||||
|
||||
val=`$EXPR "$1" : '--omit=\(.*\)'`
|
||||
if [ "$val" != "$NOTFOUND" ] ; then
|
||||
omit="$omit `echo $val | tr ',;' ' '`"
|
||||
fi
|
||||
|
||||
if [ "$1" = "--no-samples" ] ; then
|
||||
samples=""
|
||||
fi
|
||||
omit="$omit `echo $val | tr ',;' ' '`"
|
||||
fi
|
||||
|
||||
val=`$EXPR "$1" : '--include-path=\(.*\)'`
|
||||
if [ "$val" != "$NOTFOUND" ] ; then
|
||||
includepath="$includepath `echo $val | tr ',;' ' '`"
|
||||
fi
|
||||
|
||||
val=`$EXPR "$1" : '--library-path=\(.*\)'`
|
||||
if [ "$val" != "$NOTFOUND" ] ; then
|
||||
librarypath="$librarypath `echo $val | tr ',;' ' '`"
|
||||
fi
|
||||
|
||||
val=`$EXPR "$1" : '--cflags=\(.*\)'`
|
||||
if [ "$val" != "$NOTFOUND" ] ; then
|
||||
flags="$flags $val"
|
||||
fi
|
||||
|
||||
if [ "$1" = "--no-samples" ] ; then
|
||||
samples=""
|
||||
fi
|
||||
|
||||
if [ "$1" = "--no-tests" ] ; then
|
||||
tests=""
|
||||
@ -109,12 +167,37 @@ while [ "$1" != "" ] ; do
|
||||
fi
|
||||
|
||||
if [ "$1" = "--no-fpenvironment" ] ; then
|
||||
flags="$flags -DPOCO_NO_FPENVIRONMENT"
|
||||
fi
|
||||
flags="$flags -DPOCO_NO_FPENVIRONMENT"
|
||||
fi
|
||||
|
||||
if [ "$1" = "--help" ] ; then
|
||||
showhelp
|
||||
exit 0
|
||||
if [ "$1" = "--no-sharedmemory" ] ; then
|
||||
flags="$flags -DPOCO_NO_SHAREDMEMORY"
|
||||
fi
|
||||
|
||||
if [ "$1" = "--no-sharedlibs" ] ; then
|
||||
flags="$flags -DPOCO_NO_SHAREDLIBS"
|
||||
fi
|
||||
|
||||
if [ "$1" = "--poquito" ] ; then
|
||||
flags="$flags -DPOCO_NO_FILECHANNEL -DPOCO_NO_SPLITTERCHANNEL -DPOCO_NO_SYSLOGCHANNEL -DPOCO_UTIL_NO_INIFILECONFIGURATION -DPOCO_UTIL_NO_XMLCONFIGURATION"
|
||||
fi
|
||||
|
||||
if [ "$1" = "--unbundled" ] ; then
|
||||
flags="$flags -DPOCO_UNBUNDLED"
|
||||
unbundled=1
|
||||
fi
|
||||
|
||||
if [ "$1" = "--static" ] ; then
|
||||
static=1
|
||||
fi
|
||||
|
||||
if [ "$1" = "--shared" ] ; then
|
||||
shared=1
|
||||
fi
|
||||
|
||||
if [ "$1" = "--help" ] ; then
|
||||
showhelp
|
||||
exit 0
|
||||
fi
|
||||
|
||||
shift
|
||||
@ -144,12 +227,27 @@ if [ ! -f "$base/build/config/$config" ] ; then
|
||||
fi
|
||||
|
||||
if [ "$prefix" = "" ] ; then
|
||||
prefix=/usr/local
|
||||
prefix=/usr/local
|
||||
fi
|
||||
|
||||
# check for patches
|
||||
if [ -d $base/patches/$config ] ; then
|
||||
echo "NOTE: There are patches for your configuration available. Please apply them before compiling."
|
||||
fi
|
||||
|
||||
# copy Makefile to build dir
|
||||
if [ "$base" != "$build" ] ; then
|
||||
cp $base/Makefile $build
|
||||
cp $base/Makefile $build
|
||||
fi
|
||||
|
||||
if [ "$static" != "" -a "$shared" != "" ] ; then
|
||||
linkmode=BOTH
|
||||
elif [ "$static" != "" ] ; then
|
||||
linkmode=STATIC
|
||||
elif [ "$shared" != "" ] ; then
|
||||
linkmode=SHARED
|
||||
else
|
||||
linkmode=""
|
||||
fi
|
||||
|
||||
# create config.make
|
||||
@ -161,18 +259,40 @@ echo "POCO_PREFIX = $prefix" >>$build/config.make
|
||||
echo "POCO_FLAGS = $flags" >>$build/config.make
|
||||
echo "OMIT = $omit" >>$build/config.make
|
||||
if [ "$stdcxx_base" != "" ] ; then
|
||||
echo "STDCXX_BASE = $stdcxx_base" >>$build/config.make
|
||||
echo "STDCXX_BASE = $stdcxx_base" >>$build/config.make
|
||||
fi
|
||||
if [ "$includepath" != "" ] ; then
|
||||
echo "POCO_ADD_INCLUDE = $includepath" >>$build/config.make
|
||||
fi
|
||||
if [ "$librarypath" != "" ] ; then
|
||||
echo "POCO_ADD_LIBRARY = $librarypath" >>$build/config.make
|
||||
fi
|
||||
if [ "$unbundled" != "" ] ; then
|
||||
echo "POCO_UNBUNDLED = 1" >>$build/config.make
|
||||
fi
|
||||
if [ "$linkmode" != "" ] ; then
|
||||
echo "LINKMODE = $linkmode" >>$build/config.make
|
||||
fi
|
||||
|
||||
echo "export POCO_CONFIG" >>$build/config.make
|
||||
echo "export POCO_BASE" >>$build/config.make
|
||||
echo "export POCO_BUILD" >>$build/config.make
|
||||
echo "export POCO_PREFIX" >>$build/config.make
|
||||
echo "export POCO_FLAGS" >>$build/config.make
|
||||
if [ "$stdcxx_base" != "" ] ; then
|
||||
echo "export STDCXX_BASE" >>$build/config.make
|
||||
echo "export STDCXX_BASE" >>$build/config.make
|
||||
fi
|
||||
if [ "$includepath" != "" ] ; then
|
||||
echo "export POCO_ADD_INCLUDE" >>$build/config.make
|
||||
fi
|
||||
if [ "$librarypath" != "" ] ; then
|
||||
echo "export POCO_ADD_LIBRARY" >>$build/config.make
|
||||
fi
|
||||
if [ "$unbundled" != "" ] ; then
|
||||
echo "export POCO_UNBUNDLED" >>$build/config.make
|
||||
fi
|
||||
if [ "$linkmode" != "" ] ; then
|
||||
echo "export LINKMODE" >>$build/config.make
|
||||
fi
|
||||
|
||||
echo ".PHONY: poco" >>$build/config.make
|
||||
echo "poco: libexecs $tests $samples" >>$build/config.make
|
||||
|
||||
|
@ -1 +1 @@
|
||||
6
|
||||
12
|
||||
|
Loading…
Reference in New Issue
Block a user