Introduction to SourcePro® C++ : Chapter 1 The SourcePro C++ Perspective : Software Requirements
Software Requirements
This section discusses the software requirements.
Compatibility
There are four SourcePro C++ products: SourcePro Core, SourcePro DB, SourcePro Net, and SourcePro Analysis. The modules of these products incorporate the functionality of many previous Rogue Wave products.
If you are migrating from Rogue Wave Software’s previous .h++ product line, you must recompile and relink your applications to the new SourcePro C++ libraries. Applications using new features in SourcePro C++ must also change internal logic. In this case, you must write to the new API, recompile, and relink.
If you are upgrading from an earlier release of SourcePro C++, please note that some aspects of each new release may not be binary-compatible with the previous edition. You may need to recompile your applications that use SourcePro C++ to link to the new versions of the libraries.
For additional information on compatibility, please consult the SourcePro C++ Release Notes. A PDF version of the release notes is in the top-level directory of the SourcePro C++ installation and also available on the Rogue Wave website at http://www.roguewave.com/support/product-documentation/sourcepro.aspx.
Rogue Wave tests the modules in each version for compatibility with one another. Rogue Wave does not test the compatibility of modules in a current version against a previous version. Web-only downloads between releases are generally compatible with the most recent release, but this is not guaranteed.
For information on building components and applications, please see the manuals Installing and Building Your SourcePro C++ Products and Rogue Wave Component Builder (RCB): Building Your Applications.
Deprecated APIs
SourcePro C++ continues to enhance and extend the APIs it provides. In some cases, new APIs have been introduced that supersede previous APIs. These new APIs often provide cleaner interfaces, improved performance, or improved safety compared to the older functions. In these scenarios, the older functions have been deprecated, and are no longer recommended by Rogue Wave.
Deprecated APIs are listed on a page of the SourcePro C++ API Reference Guide. Deprecated classes and members are still documented, but are clearly marked as deprecated at the beginning of their descriptions. The deprecation warning indicates the release in which the API became deprecated and suggests the new API to use.
To help you detect the use of deprecated APIs in your code, Rogue Wave provides a compilation macro RW_DISABLE_DEPRECATED. When RW_DISABLE_DEPRECATED is defined, all deprecated -SourcePro APIs are removed, causing compilation failures in any code that relies on them. You can use the information gained from these failures together with the guidance in the Class Reference documentation to update your code to rely on improved APIs.
NOTE >> Deprecated APIs are still supported by Rogue Wave, but be aware that they may be removed from the product in a future release.
Undocumented APIs
In addition to the publicly documented SourcePro APIs, you may discover undocumented APIs. These APIs are not supported for use in end-user code, and are subject to change or removal without warning in future releases.
Dependencies
The phrase “the X Module depends on the Y Module” means that the Y Module must be built before the X Module. The Rogue Wave Component Builder (RCB) checks that dependencies are selected and installed, and ensures that they are built in the proper order. If you are installing prebuilt libraries, the dependencies are already satisfied and included in the set of prebuilt libraries.
All Rogue Wave SourcePro C++ modules depend on the C++ Standard Library and the Essential Tools Module. Beginning with Edition 11 of SourcePro C++, all modules are built using the native C++ Standard Library that comes with your compiler. The only exception to this is on Sun Solaris platforms, where you have the option of using STLPort.
NOTE >> The Essential Tools Module is part of SourcePro Core, which comes with every Rogue Wave SourcePro C++ product.
In addition to dependency on the Essential Tools Module and the C++ Standard Library, individual modules may have other dependencies. These module-level dependencies are summarized in Table 1. Package-level dependencies are explained in the user’s guides of individual modules for the convenience of developers who prefer to specify builds by individual packages.
 
Table 1 – Module dependencies  
Name of Module
Dependencies
Essential Tools Module
n/a
NOTE: Specific component dependencies are given in the Tools Module User’s Guide
Internationalization Module
Essential Tools Module
Threads Module
Also requires: International Components for Unicode (ICU). ICU is a set of C and C++ libraries developed and maintained by IBM. Included in binary form with SourcePro Core.
Threads Module
Essential Tools Module
NOTE: Specific package dependencies are given in the Threads Module User’s Guide
Advanced Tools Module
Essential Tools Module
Threads Module
NOTE: Specific package dependencies are given in the Advanced Tools Module User’s Guide
XML Streams Module
Essential Tools Module
Advanced Tools Module
Threads Module
NOTE: Specific package dependencies are given in the XML Streams Module User’s Guide
DB Interface Module
Essential Tools Module
Also requires: Client software for your database must be installed before building this module.
DB Access Modules for DB2, MS SQL Server, ODBC, Oracle OCI, Sybase, MySQL, PostgreSQL
Essential Tools Module
DB Interface Module
Also requires: Client software for your database must be installed before building this module.
DB XA Module
DB Interface Module
At least one DB Access Module
Support for the DB XA Module is available only when Rogue Wave Consulting Services installs and configures the DB XA Module for specific platforms and XA-compliant Transaction Processing Monitors (TPMs). Please contact your Rogue Wave account representative for more information.
Essential Networking Module
Essential Tools Module
Internet Protocols Module
Essential Tools Module
Essential Networking Module
Threads Module
Secure Communication Module
Essential Tools Module
Threads Module
Essential Networking Module
Internet Protocols Module
Also requires the OpenSSL library, an open source offering available through http://www.openssl.org. Included in binary form with SourcePro Net. Consult the 3rd-party-licences.txt file in the 3rdparty directory for version requirements on this library.
Essential Math Module
Essential Tools Module
Linear Algebra Module
Essential Tools Module
Essential Math Module
Business Analysis Module
Essential Tools Module
Essential Math Module
Linear Algebra Module
Currency Module
Essential Tools Module
3rd-Party Software Use
SourcePro C++ uses open source or freely licensed code, and commercially licensed code, as detailed in the following sections. The text of the license agreements can be found in Appendix A. These licenses are also included in the product distribution, as identified in the file 3rd-party-licenses.txt in the installation 3rdparty directory. This file also identifies the exact version number currently installed in SourcePro C++
Open Source or Freely Licensed Code
Table 2 identifies the open source or freely licensed code shipped with SourcePro.
Table 2 – Open Source or Freely Licensed Software Shipped with SourcePro 
Software
License
Used In
Used For
OpenSSL and SSLeay
OpenSSL license. See “OpenSSL/SSLeay Licenses”.
SourcePro Net, Secure Communication Module
Bundled code. Provides network message security.
ICU
SourcePro Core, Internationalization Module
Bundled code. Prebuilt libraries provide support for i18n functionality.
CLAPACK
Netlib free -software. See “CLAPACK and BLAS”.
SourcePro Analysis
Embedded code. Provides low-level linear algebra routines written in C language.
BLAS
Netlib free -software. See “CLAPACK and BLAS”.
SourcePro Analysis
Embedded code. Provides low level basic linear algebra routines written in C language.
Snappy
Google Snappy license. See “Snappy”.
SourcePro Core
Bundled code. Provides data compression support.
MathJax
Apache License, Version 2.0. See “MathJax.”
SourcePro C++ Reference Guide
Bundled code. Renders mathematical formulas in Doxygen-based documentation.