CppDepend Tools Overview
========================

This package contains two tools:
- VisualCppDepend
- CppDepend.Console


------------------------------------------------------------
VisualCppDepend
------------------------------------------------------------

VisualCppDepend is the graphical user interface (GUI) version of CppDepend.
It allows developers to interactively analyze C/C++/Java codebases, explore
dependencies, metrics, and technical debt, and visualize results using
graphs, dashboards, and queries.

VisualCppDepend is intended for manual analysis, exploration, and reporting
through a desktop application.


------------------------------------------------------------
CppDepend.Console
------------------------------------------------------------

CppDepend.Console is the command-line version of CppDepend.
It is designed for automation scenarios such as CI/CD pipelines, build
servers, scripts, and headless environments.

CppDepend.Console performs static analysis on C/C++ projects and produces
reports, metrics, and issue data without requiring a graphical interface.


BASIC USAGE
----------------
    CppDepend.Console.exe <project.cdproj> [options]
    CppDepend.Console.exe <project.jdproj> [options]

The first argument is mandatory:
The path to the input .cdproj,.jdproj or .json project file.

Paths may be absolute, relative to the project file.

OPTIONAL ARGUMENTS
----------------------

/ViewReport
    Opens the generated HTML report after analysis.

/Silent
    Disables console output.

/HideConsole
    Suppresses console output (useful for automation).

/FullAnalysis
    Forces a full analysis regardless of previously cached results.

/LogTrendMetrics
    Forces logging of trend metrics to the trend store.

/TrendStoreDir <directory>
    Overrides the trend store directory specified in the project file.

/PersistHistoricAnalysisResult
    Forces persistence of historic analysis results.

/HistoricAnalysisResultsDir <directory>
    Overrides the historic analysis results directory specified in the project file.

/OutDir <directory>
    Overrides the output directory specified in the project file.

    Note: VisualCppDepend will not detect this overridden directory and will
    try to use the directory defined in the project file.

/XslForReport <file>
    Specifies a custom XSL file used to build reports.

/InDirs [/KeepProjectInDirs] dir1 [dir2 ...]
    Overrides input directories containing assemblies or binaries to analyze.
    Search is not recursive.

    /KeepProjectInDirs may be used to append instead of replace.

/CoverageFiles [/KeepProjectCoverageFiles] file1 [file2 ...]
    Overrides input code-coverage files.

    /KeepProjectCoverageFiles may be used to append instead of replace.

/CoverageDir <directory>
    Overrides the directory containing coverage files.

/RuleFiles [/KeepProjectRuleFiles] file1 [file2 ...]
    Overrides input rule files.

    /KeepProjectRuleFiles may be used to append instead of replace.

/PathVariables Name1 Value1 [Name2 Value2 ...]
    Overrides or declares CppDepend path variables.

/AnalysisResultToCompareWith <file.cdar>
    Specifies a previous analysis result for comparison.
    This option is typically used only in special situations where configuring
    the baseline inside the project file is not possible.

/Help
    Displays the built-in help message.


EXAMPLES
--------

Run a C++ analysis using a project file:
    CppDepend.Console.exe  MyProject.cdproj

Run an analysis and specify an output directory:
    CppDepend.Console.exe  MyProject.cdproj /OutDir AnalysisResults

Run a java analysis with a custom timeout:
    CppDepend.Console.exe  MyProject.jdproj


NOTES
-----

- CppDepend.Console is ideal for continuous integration environments.
- All rules, queries, and thresholds are taken from the specified project file.
- The console returns a non-zero exit code when critical issues are detected,
  allowing build pipelines to fail accordingly.

