# CTestCoverageCollectGCOV

This module provides the `ctest_coverage_collect_gcov` function.

This function runs gcov on all .gcda files found in the binary tree and packages the resulting .gcov files into a tar file. This tarball also contains the following:

- data.json defines the source and build directories for use by CDash.

- Labels.json indicates any `LABELS` that have been set on the source files.

- The uncovered directory holds any uncovered files found by `CTEST_EXTRA_COVERAGE_GLOB`.

After generating this tar file, it can be sent to CDash for display with the `ctest_submit(CDASH_UPLOAD)` command.

`ctest_coverage_collect_gcov`

      ctest_coverage_collect_gcov(TARBALL <tarfile>
        [SOURCE <source_dir>][BUILD <build_dir>]
        [GCOV_COMMAND <gcov_command>]
        [GCOV_OPTIONS <options>...]
        )

  Run gcov and package a tar file for CDash. The options are:

  `TARBALL <tarfile>`

    Specify the location of the `.tar` file to be created for later upload to CDash. Relative paths will be interpreted with respect to the top-level build directory.

  `SOURCE <source_dir>`

    Specify the top-level source directory for the build. Default is the value of `CTEST_SOURCE_DIRECTORY`.

  `BUILD <build_dir>`

    Specify the top-level build directory for the build. Default is the value of `CTEST_BINARY_DIRECTORY`.

  `GCOV_COMMAND <gcov_command>`

    Specify the full path to the `gcov` command on the machine. Default is the value of `CTEST_COVERAGE_COMMAND`.

  `GCOV_OPTIONS <options>...`

    Specify options to be passed to gcov. The `gcov` command is run as `gcov <options>... -o <gcov-dir> <file>.gcda`. If not specified, the default option is just `-b -x`.

  `GLOB`

    Recursively search for .gcda files in build_dir rather than determining search locations by reading TargetDirectories.txt.

  `DELETE`

    Delete coverage files after they’ve been packaged into the .tar.

  `QUIET`

    Suppress non-error messages that otherwise would have been printed out by this function.