docs: document coverage measurement
Add basic information about coverage measurement. Document build types,
shared library names and coverage measurement strategy. Measurement
instructions are to be added later.
Change-Id: Ie657d322941952a7152e65a2b6d651f3c7a986ad
Signed-off-by: Gyorgy Szing <gyorgy.szing@arm.com>
diff --git a/docs/developer/build-instructions.rst b/docs/developer/build-instructions.rst
index f52fe55..5e8e333 100644
--- a/docs/developer/build-instructions.rst
+++ b/docs/developer/build-instructions.rst
@@ -25,10 +25,12 @@
.. uml:: uml/BuildFlow.puml
+.. _`Selecting the build type`:
+
Selecting the build type
-------------------------
The build type selects code optimization and debug information related compiler settings. The build system follows the
-standard CMake methodology and uses the `CMAKE_BUILD_TYPE`_ variable.
+standard CMake methodology and can be controlled with the `CMAKE_BUILD_TYPE`_ variable.
The build system uses the following build types:
@@ -37,27 +39,43 @@
* - Build type
- Purpose
+ - Shared library suffix
- Description
* - Debug
- For debugging purposes.
+ - `d`
- Optimization is off, debugging information generation is enabled.
+ * - DebugCoverage
+ - For coverage measurement purposes.
+ - `c`
+ - Optimization is off, debugging information generation is enabled, code is compiled to enable gcov based coverage
+ measurement.
* - MinSizeRel
- Size optimized release build.
+ - None.
- Optimization is configured to prefer small code size, debugging information is not generated.
* - MinSizWithDebInfo
- For debugging size optimized release build.
+ - None.
- Optimization is configured to prefer small code size, debugging information generation is enabled.
* - Release
- Speed optimized release build.
+ - None.
- Optimization is configured to prefer execution speed, debugging information is not generated.
* - RelWithDebugInfo
- For debugging speed optimized release build.
+ - None.
- Optimization is configured to prefer execution speed, debugging information generation is enabled.
-Build type of external components can be configured with command line parameters. Parameter names follow this pattern:
+Build type of external components can be configured with command line arguments. Argument names follow this pattern:
``-D<upper case component name>_BUILD_TYPE=<value>`` e.g. ``-DNANOPB_BUILD_TYPE=Release``. Supported values are
component specific, please refer to the appropriate cmake file under ``<TS_ROOT>/external/<name>``.
+Binaries of the ``Debug`` and ``DebugCoverage`` build types will have a suffix appended to their base name. This allows
+multiple binaries to coexist on the same system at the same time. However the system integrator can only select
+a single "release" build type.
+
+
Building and Installing
-----------------------
When building from a clean environment where no generated build files exist, it is necessary to run