BDE 4.14.0 Production release
Loading...
Searching...
No Matches
bblscm_version

Detailed Description

Outline

Purpose

Provide source control management (versioning) information.

Classes

Description

This component provides source control management (versioning) information for the bbl package group. In particular, this component embeds RCS-style and SCCS-style version strings in binary executable files that use one or more components from the bbl package group. This version information may be extracted from binary files using common UNIX utilities (e.g., ident and what). In addition, the version static member function in the bblscm::Version struct can be used to query version information for the bbl package group at runtime. The following usage examples illustrate these two basic capabilities.

Note that unless the version method will be called, it is not necessary to #include this component header file to get bbl version information embedded in an executable. It is only necessary to use one or more bbl components (and, hence, link in the bbl library).

Usage

This section illustrates intended use of this component.

Example 1: Embedding Version Information

The version of the bbl package group linked into a program can be obtained at runtime using the version static member function as follows:

#include <bblscm_version.h>
assert(0 != bblscm::Version::version());
bsl::cout << "BBL version: " << bblscm::Version::version()
<< bsl::endl;
static const char * version()
Definition bblscm_version.h:172

Output similar to the following will be printed to stdout:

BBL version: BLP_LIB_BDE_BBL_0.01.0

The "0.01.0" portion of the string distinguishes different versions of the bbl package group.

Example 2: Accessing the Embedded Version information

The versioning information embedded into a binary file by this component can be examined under UNIX using several well-known utilities. For example:

$ ident a.out
a.out:
$Id: BLP_LIB_BDE_BBL_0.01.0 $
$ what a.out | grep BBL
BLP_LIB_BDE_BBL_0.01.0
$ strings a.out | grep BBL
$Id: BLP_LIB_BDE_BBL_0.01.0 $
@(#)BLP_LIB_BDE_BBL_0.01.0
BLP_LIB_BDE_BBL_0.01.0

Note that ident and what typically will display many version strings unrelated to bbl depending on the libraries used by a.out.