Go to file
Joerg-Christian Boehme 612f092235 Cleanup cmake build system to use transitive dependency management from cmake (#2321)
* Some cleanup in the root CMakeLists.txt

* Cleanup cmake targets

* Add find openssl modul for older cmake version

* Set proper scope

* Change crypto default to off

* Fix openssl default to on

* Remove global setting of C99 standard

* Set from C11 to C99

* Fix for NetSSL win build

* Set C99 compile features

* Fix Windows build

* Fix windows build

* Cleanup poco unbundle definition

* Fix PDF build

* Remove unused set affinity

* Add _CRT_SECURE_NO_WARNINGS as target compile definitions

* Add _AFXDLL as target compile definitions

* Remove commented out line

* Refactor add_definitions to target_compile_definitons in Util

* Refactor add_definitions to target_compile_definitons in XML

* Remove THREADSAFE in data sql cmake build

* Refactor add_definitions to target_compile_definition in cmake mysql

* Refactor add_definitions to target_compile_definition in cmake odbc

* Refactor add_definitions to target_compile_definition in cmake sqlite

* Refactor add_definitions to target_compile_definitions in platform specific cmake

* Add _DEBUG as compile definition

* Add build dependencies between Foundation-testrunner and TestApp, TestLibrary in cmake build

* Use cmake property to build shared libs

* Cleanup POCO_NO_AUTOMATIC_LIBS. Set only for Windows in cmake build system

* cleanup LIB_MODE_DEFINITIONS in cmake buld system

* Add POCO_STATIC for CppUnit

* Cleanup target link libraries and add option dependencies.

* Add dependencies management in cmake

* Update cmake documentation

* Squashed commit of the following:

commit 38c233f93fc8e9ad6e24d686c905eb18c86e19a7

    Fix "invalid new-expression of abstract class type ApacheServerRequest" (#2231)

    - abstract method "bool secure() const" defined in HTTPServerRequest was implemented in ApacheServerRequest, one of its derived classes
     - a ap_log_error had one of its parameters changed for fixing a warning "passing NULL to non-pointer argument"
     - minor indentation problems corrected

commit 4cbdfbe828943871618172f9e042176f115d61d8

    Fix build dependencies

* Improve database cmake build dependencies

* Update doc

* Update doc

* Update cmake build commands

* Set public on target link libraries in cmake build system

* Fix PostgreSQL build

* Fix PostgreSQL build in cmake

* Fix PostgreSQL from SQL to Data

* Squashed commit of the following:

commit 1ba7d5dcbfb8d07860dd4efda33b31bedf6184c4

    Add missing cmake file

* Set path to PostgresSQL in AppVoyer

* Try to fix AppVeyor build

* show dir in appvoyer

* Disable PostgreSQL build on Appvoyer

* Refactor add_definitions to target_compile_definitions
2018-06-03 11:17:50 -05:00
ApacheConnector Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
appveyor Use develop branch syntax 2018-05-28 14:57:52 +02:00
build Backport from the develop branch 2018-05-26 08:25:45 +02:00
cmake Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
contrib Moved contributed CMake modules to "cmake" folder 2012-12-16 00:40:40 -02:00
CppParser Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
CppUnit Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
Crypto Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
Data Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
doc Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
Encodings Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
Foundation Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
gradle@fd7f69f2e7 Poco 1.9.1 assert true (#2255) 2018-03-29 11:12:54 -06:00
JSON Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
MongoDB Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
Net Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
NetSSL_OpenSSL Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
NetSSL_Win Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
openssl@0c6d16ec85 Fix openssl submodule reference 2018-04-17 21:00:29 +02:00
packaging Not needed anymore 2018-05-01 13:14:51 +02:00
PageCompiler Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
patches/AIX new trunk (base for 1.5) 2012-04-23 01:14:34 +00:00
PDF Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
PocoDoc Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
ProGen Remove CppUnit from proGen templates 2018-06-03 13:47:37 +02:00
Redis Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
release add Encodings lib to release script 2018-02-14 17:10:49 +01:00
SevenZip Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
travis Feature net udp (#2347) 2018-06-02 14:02:33 -05:00
Util Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
XML Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
Zip Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
.gitattributes more line ending fixes 2012-11-11 11:20:31 +01:00
.gitignore Feature net udp (#2347) 2018-06-02 14:02:33 -05:00
.gitmodules Use Gradle_4.6 2018-03-12 07:28:16 +01:00
.travis.yml Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
appveyor.yml Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
build_CE_vs90.cmd new trunk (base for 1.5) 2012-04-23 01:14:34 +00:00
build_cmake.cmd Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
build_cmake.sh Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
build_vcexpress2008.cmd "tests" are missing in build_vcexpress.cmd 2013-02-25 20:04:58 +09:00
build_vcexpress2010.cmd "tests" are missing in build_vcexpress.cmd 2013-02-25 20:04:58 +09:00
build_vs90.cmd some last minute changes 2012-12-26 18:30:52 -06:00
build_vs100.cmd Use defaulted 'msbuild' tool 2018-06-01 13:55:02 +02:00
build_vs110.cmd Use defaulted 'msbuild' tool 2018-06-01 13:55:02 +02:00
build_vs120.cmd Use defaulted 'msbuild' tool 2018-06-01 13:55:02 +02:00
build_vs140.cmd Use defaulted 'msbuild' tool 2018-06-01 13:55:02 +02:00
build_vs150.cmd Use defaulted 'msbuild' tool 2018-06-01 13:55:02 +02:00
build_wdexpress2012.cmd Support Visual Studio Express 2012 for Windows Desktop 2013-02-25 20:04:32 +09:00
build_wdexpress2013.cmd new build command for VS2013 Express Edition. 2014-09-07 11:42:12 +02:00
build.gradle Cleanup 2018-06-03 08:22:26 +02:00
build.gradle.win Add targets to Nuget packages 2018-05-21 09:47:33 +02:00
buildwin.cmd Add WinTestRunner progeneration 2018-05-31 06:21:58 +02:00
buildwin.ps1 build TestApp and Library 2018-05-31 21:21:50 +02:00
CHANGELOG updated version 2018-03-07 14:28:19 +01:00
CMakeLists.txt Cleanup cmake build system to use transitive dependency management from cmake (#2321) 2018-06-03 11:17:50 -05:00
CODE_OF_CONDUCT.md add CODE_OF_CONDUCT.md 2018-02-09 09:19:46 +01:00
components Add PostgreSQL as a component 2018-05-07 17:44:11 +02:00
configure remove duplicate files and remaining Id headers 2017-11-10 09:26:24 +01:00
CONTRIBUTING.md updated README and CONTRIBUTING 2016-09-13 07:42:41 +02:00
CONTRIBUTORS remove duplicate files and remaining Id headers 2017-11-10 09:26:24 +01:00
cppignore.cmd Remove CppUnit from proGen templates 2018-06-03 13:47:37 +02:00
DLLVersion.rc updated version 2018-03-07 14:28:19 +01:00
env.sh re-added MongoDB, improved buildwin and release scripts 2013-07-23 15:04:48 +02:00
gradle.properties Build Data/PostgreSQL 2018-05-12 14:19:39 +02:00
libversion updated version 2018-03-07 14:28:19 +01:00
LICENSE LICENSE: add info about SPDX-License-Identifier usage and use it 2014-05-14 08:38:09 +02:00
Makefile fix deps for PDF 2018-03-05 22:14:57 +01:00
NEWS Remove \$Id`$ headers 2017-09-09 11:14:06 +02:00
progen.bat Add modules progeneration 2018-06-01 14:00:38 +02:00
README updated README and getting started doc 2017-11-10 12:45:40 +01:00
README.md merge final changes from poco-1.9.0 2018-03-08 10:58:22 +01:00
settings.gradle Update for Data/PostgreSQL 2018-05-12 14:55:01 +02:00
settings.gradle.win Update Gradle 2018-05-07 21:09:22 +02:00
VERSION updated version 2018-03-07 14:28:19 +01:00

alt text

Travis Build Status Build status CII Best Practices

POCO (Portable Components) C++ Libraries are:

  • A collection of C++ class libraries, conceptually similar to the Java Class Library, the .NET Framework or Apples Cocoa.
  • Focused on solutions to frequently-encountered practical problems.
  • Focused on internet-age network-centric applications.
  • Written in efficient, modern, 100% ANSI/ISO Standard C++.
  • Based on and complementing the C++ Standard Library/STL.
  • Highly portable and available on many different platforms, from embedded to server.
  • Open Source, licensed under the Boost Software License.

alt text


To start using POCO, see the Guided Tour and Getting Started documents.


POCO has an active user and contributing community, please visit our web site and blog. Answers to POCO-related questions can also be found on Stack Overflow.

Please see CONTRIBUTING for submitting contributions, bugs reports, feature requests or security issues.


In regards to Boost, in spite of some functional overlapping, POCO is best thought of as a Boost complement (rather than replacement). Side-by-side use of Boost and POCO is a very common occurrence.