Requirements

C++ Language Requirements

Generally, the Platinum C++ framework can be compiled for any platform, which provides an ISO C++ implementation. Some C++ features are only supported on some systems or have an impact on application code using the framwork. The following section will discuss, what constructs you will find in the source code.

Standard Template Library and IOStreams

The C++ standard library (STL and IOStreams) is used, so that it works with the native implementations on many platforms. Some platforms omit support for std::locale and its use in the IOStreams library. In that case Pt can be built with or without support for it.

Templates

C++ Templates are used extensively in the Pt source code. Support for templates has improved enormously in the past years, only very few features are still not available on all platforms. Some advanced template features required to build Pt are full and partial template specialization and default template parameters.

Exceptions

Exception support is a strong requirement, i.e. it will never be possible to build the framework without support for exceptions. In fact, exceptions have such a profound impact on reliability and performance, that ignoring them would reduce the quality of implementation by orders of magnitude. Exception handling can not be left out without giving up high-performance and high-reliability and all other forms of error handling are simply not competitive.

Runtime Type Information

At the moment, RTTI is required, but might be optional in the future. It is not dynamic_cast that is required, but rather the typeid operator. It might be possible the provide a library based fallback for systems that do not support it.

Library Specific Requirements

Some of the frameworks library modules have no dependencies besides standard c++ as described before, others have dependencies to system libraries or external libraries. Dependencies to system libraries are usually resolved when the developer tools are installed. If your system is listed on the "Supported Platforms" page you should easily be able to install the missing dependencies, if any are missing at all.

The build system will detect if a dependency is not available and skip the respective library module in the build. Installing the missing dependency will make the library module available for the build. The following sections list the external dependencies.

OpenSSL

The openssl library is required to build the Pt-Ssl library. On some systems, openssl has the status of a systems library, and using the implementation provided by the vendor is preferred. A built-in version is distributed with the Pt source code for systems that do not have openssl.

Freetype

The freetype library is required to build the Pt-Gfx library. Especially on systems with the X11 windowing system, the locally installed version must be used for compatibility reasons. A built-in version of freetype is provided for platforms that do not have freetype by default.

Required Tools

It is useful to install subversion on the build host to get the source code directly from the repository. If you want to build the documentation you need to install doxygen.