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 000000000000..dde0c692ab05 --- /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 |