Quick Links:

bal | bbl | bdl | bsl

Namespaces | Defines | Functions

Component bsls_buildtarget
[Package bsls]

Provide build-target information in object files. More...

Namespaces

namespace  bsls

Defines

#define BDE_BUILD_TARGET_EXC

Functions

 BSLS_LINKCOERCION_FORCE_SYMBOL_DEPENDENCY (const int, bsls_buildtarget_coerce_exc, bsls::BuildTargetExc::s_isBuildTargetExc) namespace bsls

Detailed Description

Outline
Purpose:
Provide build-target information in object files.
Macros:
BDE_BUILD_TARGET_EXC flag identifying exception-enabled builds
BDE_BUILD_TARGET_NO_EXC flag identifying exception-disabled builds
BDE_BUILD_TARGET_MT flag identifying multi-threaded builds
BDE_BUILD_TARGET_NO_MT flag identifying builds that do not support threads
BDE_OMIT_DEPRECATED legacy flag to deprecate a block of code
BDE_OMIT_INTERNAL_DEPRECATED legacy flag to deprecate internal-only code
BDE_OPENSOURCE_PUBLICATION marker for non-deprecated internal-only code
See also:
Component bsls_deprecate
Description:
The purpose of this component is to cause a link-time error when trying to link an executable with incompatible libraries. This component defines type names that indicate two build target parameters. These parameters determine whether the build was exception-enabled (which is the case unless overridden by defining the BDE_BUILD_TARGET_NO_EXC macro), and whether it was multi-threaded (which is enabled unless overridden by defining the BDE_BUILD_TARGET_NO_MT macro). The types defined by this component should not be used directly.
Deprecation Control Macros:
In addition to the BDE_BUILD_TARGET_* macros that determine the link-time compatibility of different libraries built on BDE, this component documents a macro that determines whether deprecated interfaces are available to programs built on BDE:
BDE_OMIT_DEPRECATED:
This macro, if defined, indicates that all code deprecated before BDE 3.2 will be either omitted from a build of the library (if the code has not been updated to use bsls_deprecate), or identified to the compiler as deprecated (if the code has been updated to use bsls_deprecate). New uses of this macro are not supported; use bsls_deprecate instead.
In addition to BDE_OMIT_DEPRECATED, there are two other macros that also determine whether deprecated interfaces are available to programs built on BDE:
BDE_OMIT_INTERNAL_DEPRECATED:
This macro, if defined, indicates that all internal-only code deprecated before BDE 3.2 will be either omitted from a build of the library (if the code has not been updated to use bsls_deprecate), or identified to the compiler as deprecated (if the code has been updated to use bsls_deprecate). This category consists almost entirely of code that was already deprecated at the time of a component's initial release to open-source. New uses of this macro are not supported; use bsls_deprecate instead.
BDE_OPENSOURCE_PUBLICATION:
This macro marks code that is not deprecated, but is nevertheless excluded from the open-source release of BDE. This category consists primarily of code that exists to support STLPort containers, which were not included in the open-source release, or that documents backward compatibility access to the package-prefix versions of non-deprecated symbols in BSL. BDE_OPENSOURCE_PUBLICATION exists for purposes of documentation only, and should not be defined for any build of the library. In particular, there is no guarantee that the library will build or will function correctly if BDE_OPENSOURCE_PUBLICATION is defined.
Together with BDE_OMIT_DEPRECATED, these macros divide the BDE codebase into four categories:
  +-----------------------------------------+------------------------------+
  | CATEGORY                                | LABEL                        |
  +=========================================+==============================+
  | universally distributed code            | no label                     |
  +-----------------------------------------+------------------------------+
  | Bloomberg-only code                     | BDE_OPENSOURCE_PUBLICATION   |
  +-----------------------------------------+------------------------------+
  | universally distributed code deprecated | BDE_OMIT_DEPRECATED          |
  | before BDE 3.2                          |                              |
  +-----------------------------------------+------------------------------+
  | Bloomberg-only code deprecated before   | BDE_OMIT_INTERNAL_DEPRECATED |
  | BDE 3.2                                 |                              |
  +-----------------------------------------+------------------------------+
By default, all code in BDE is both current and universally distributed. All code that is deprecated, excluded from our open-source distribution, or both, is surrounded with conditional compilation macros to allow test builds without that code, and/or to make it easy to prepare an open-source distribution from the full internal BDE codebase. The conditional compilation macros are:
Usage:
There is no usage example for this component since it is not meant for direct client use.

Define Documentation

#define BDE_BUILD_TARGET_EXC

Function Documentation

BSLS_LINKCOERCION_FORCE_SYMBOL_DEPENDENCY ( const   int,
bsls_buildtarget_coerce_exc  ,
bsls::BuildTargetExc::s_isBuildTargetExc   
)