| //===- 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 |
| }; |
| |
| enum class BranchOutputType { Count, Percent, Off }; |
| |
| bool Debug; |
| bool Colors; |
| bool ShowLineNumbers; |
| bool ShowLineStats; |
| bool ShowRegionMarkers; |
| bool ShowBranchCounts; |
| bool ShowBranchPercents; |
| bool ShowExpandedRegions; |
| bool ShowFunctionInstantiations; |
| bool ShowFullFilenames; |
| bool ShowBranchSummary; |
| bool ShowRegionSummary; |
| bool ShowInstantiationSummary; |
| bool ExportSummaryOnly; |
| bool SkipExpansions; |
| bool SkipFunctions; |
| OutputFormat Format; |
| BranchOutputType ShowBranches; |
| std::string ShowOutputDirectory; |
| std::vector<std::string> DemanglerOpts; |
| uint32_t TabSize; |
| std::string ProjectTitle; |
| std::string CreatedTimeStr; |
| unsigned NumThreads; |
| std::string CompilationDirectory; |
| |
| /// 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 |