1
0
mirror of https://github.com/VCMP-SqMod/SqMod.git synced 2024-11-08 00:37:15 +01:00
SqMod/vendor/POCO
2021-02-01 02:30:18 +02:00
..
ApacheConnector Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
appveyor Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
build Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
cmake Create cmake_uninstall.cmake.in 2021-01-31 23:02:15 +02:00
contrib Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
CppParser Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
CppUnit Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Crypto Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Data Some mysql installations don't have mysql_reset_connection 2021-02-01 02:30:18 +02:00
doc Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Encodings Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Foundation Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
JSON Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
JWT Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
MongoDB Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Net Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
NetSSL_OpenSSL Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
NetSSL_Win Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
packaging Add filex excluded by the gitignore. 2021-01-31 22:59:25 +02:00
PageCompiler Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
patches/AIX Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
PDF Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
PocoDoc Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
ProGen Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Redis Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
release Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
SevenZip Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
travis Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Util Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
XML Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Zip Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
.gitattributes Add filex excluded by the gitignore. 2021-01-31 22:59:25 +02:00
.gitignore Add filex excluded by the gitignore. 2021-01-31 22:59:25 +02:00
.gitmodules Add filex excluded by the gitignore. 2021-01-31 22:59:25 +02:00
.travis.yml Add filex excluded by the gitignore. 2021-01-31 22:59:25 +02:00
appveyor.yml Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
build_cmake.cmd Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
build_cmake.sh Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
build_vs140.cmd Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
build_vs150.cmd Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
build_vs160.cmd Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
buildwin.cmd Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
buildwin.ps1 Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
CHANGELOG Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
CMakeLists.txt Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
CODE_OF_CONDUCT.md Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
components Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
configure Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
CONTRIBUTING.md Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
CONTRIBUTORS Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
cppignore.lnx Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
cppignore.win Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
env.bat Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
env.sh Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
libversion Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
LICENSE Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
Makefile Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
NEWS Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
README Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
README.md Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02:00
VERSION Major plugin refactor and cleanup. 2021-01-30 08:51:39 +02: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 or the .NET Framework.
  • 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.

Quick Start (with CMake)

Prerequisites

  • CMake 3.5 or newer
  • A C++14 compiler (Visual C++ 2015, GCC 5.0, Clang 3.4, or newer)
  • OpenSSL headers and libraries (optional, but recommended)
  • MySQL, PostgreSQL and ODBC client libraries (optional)

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. For example, via Debian APT:

$ apt-get install openssl libssl-dev

On macOS, the easiest way to install OpenSSL is via Homebrew:

$ brew install openssl

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.

On Windows, POCO can also use the native Windows TLS APIs (SChannel).

Installing All Dependencies (Linux and macOS)

All dependencies can be installed with the following commands:

Debian Linux (including Ubuntu and Raspbian)

$ sudo apt-get -y update && sudo apt-get -y install git g++ make cmake libssl-dev

RedHat Linux

$ sudo yum install -y git gcc-c++ make cmake3 openssl-devel

macOS (with Homebrew)

$ brew install cmake openssl

Building with CMake (Linux, macOS, Windows)

CMake (version 3.5 or newer) is the recommended build system for building the POCO C++ Libraries.

$ git clone -b master https://github.com/pocoproject/poco.git
$ cd poco
$ mkdir cmake-build
$ cd cmake-build
$ cmake ..
$ cmake --build . --config Release

On macOS, it's necessary to tell CMake where to find the OpenSSL headers and libraries by setting the OPENSSL_ROOT_DIR CMake variable. For example, if OpenSSL has been installed with Homebrew, the cmake invocation becomes:

$ cmake .. -DOPENSSL_ROOT_DIR=/usr/local/opt/openssl

Other common ways of building with CMake (e.g., cmake-gui) will also work.

There are also a number of project-specific CMake variables that can be changed.

Cross-Compiling

With a proper CMake toolchain file (specified via the CMAKE_TOOLCHAIN_FILE CMake variable), the POCO C++ Libraries can be cross-compiled for embedded Linux systems:

$ cmake .. -DCMAKE_TOOLCHAIN_FILE=/path/to/mytoolchain.cmake -DCMAKE_INSTALL_PREFIX=/path/to/target

Installing

The POCO C++ Libraries headers and libraries can be optionally be installed by building the install target.

$ sudo cmake --build . --target install

The default install location is /usr/local/ on Linux and macOS and C:\Program Files (x64)\ on Windows and can be overridden by setting the CMAKE_INSTALL_PREFIX CMake variable.

Building Without CMake

If you do not want to or cannot use CMake, POCO can also be built with Visual Studio (project and solution files included) or GNU Make (Linux, macOS and other supported Unix platforms).

Please refer to the documentation for more information.

Getting POCO via a Package Manager

POCO can also be obtained via different package managers.

Community and Contributing

POCO has an active user and contributing community, please visit our website 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.

POCO vs. Boost

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.