diff options
Diffstat (limited to 'llvm/tools/llvm-cov/CoverageViewOptions.h')
| -rw-r--r-- | llvm/tools/llvm-cov/CoverageViewOptions.h | 74 | 
1 files changed, 74 insertions, 0 deletions
diff --git a/llvm/tools/llvm-cov/CoverageViewOptions.h b/llvm/tools/llvm-cov/CoverageViewOptions.h new file mode 100644 index 0000000000000..dde0c692ab054 --- /dev/null +++ b/llvm/tools/llvm-cov/CoverageViewOptions.h @@ -0,0 +1,74 @@ +//===- CoverageViewOptions.h - Code coverage display options -------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_COV_COVERAGEVIEWOPTIONS_H +#define LLVM_COV_COVERAGEVIEWOPTIONS_H + +#include "llvm/Config/llvm-config.h" +#include "RenderingSupport.h" +#include <vector> + +namespace llvm { + +/// The options for displaying the code coverage information. +struct CoverageViewOptions { +  enum class OutputFormat { +    Text, +    HTML, +    Lcov +  }; + +  bool Debug; +  bool Colors; +  bool ShowLineNumbers; +  bool ShowLineStats; +  bool ShowRegionMarkers; +  bool ShowExpandedRegions; +  bool ShowFunctionInstantiations; +  bool ShowFullFilenames; +  bool ShowRegionSummary; +  bool ShowInstantiationSummary; +  bool ExportSummaryOnly; +  bool SkipExpansions; +  bool SkipFunctions; +  OutputFormat Format; +  std::string ShowOutputDirectory; +  std::vector<std::string> DemanglerOpts; +  uint32_t TabSize; +  std::string ProjectTitle; +  std::string CreatedTimeStr; +  unsigned NumThreads; + +  /// Change the output's stream color if the colors are enabled. +  ColoredRawOstream colored_ostream(raw_ostream &OS, +                                    raw_ostream::Colors Color) const { +    return llvm::colored_ostream(OS, Color, Colors); +  } + +  /// Check if an output directory has been specified. +  bool hasOutputDirectory() const { return !ShowOutputDirectory.empty(); } + +  /// Check if a demangler has been specified. +  bool hasDemangler() const { return !DemanglerOpts.empty(); } + +  /// Check if a project title has been specified. +  bool hasProjectTitle() const { return !ProjectTitle.empty(); } + +  /// Check if the created time of the profile data file is available. +  bool hasCreatedTime() const { return !CreatedTimeStr.empty(); } + +  /// Get the LLVM version string. +  std::string getLLVMVersionString() const { +    std::string VersionString = "Generated by llvm-cov -- llvm version "; +    VersionString += LLVM_VERSION_STRING; +    return VersionString; +  } +}; +} + +#endif // LLVM_COV_COVERAGEVIEWOPTIONS_H  | 
