clang 10.0.0git

Public Member Functions | Static Public Member Functions | List of all members
clang::tooling::FixedCompilationDatabase Class Reference

A compilation database that returns a single compile command line. More...

`#include "clang/Tooling/CompilationDatabase.h"`

Inheritance diagram for clang::tooling::FixedCompilationDatabase:
[legend]
Collaboration diagram for clang::tooling::FixedCompilationDatabase:
[legend]

## Public Member Functions
| FixedCompilationDatabase (Twine Directory, ArrayRef< std::string > CommandLine)
| Constructs a compilation data base from a specified directory and command line. More...
std::vector< CompileCommand > | getCompileCommands (StringRef FilePath) const override
| Returns the given compile command. More...
Public Member Functions inherited from clang::tooling::CompilationDatabase
virtual | ~CompilationDatabase ()
virtual std::vector< std::string > | getAllFiles () const
| Returns the list of all files available in the compilation database. More...
virtual std::vector< CompileCommand > | getAllCompileCommands () const
| Returns all compile commands for all the files in the compilation database. More...

## Static Public Member Functions
static std::unique_ptr< FixedCompilationDatabase > | loadFromCommandLine (int &Argc, const char *const *Argv, std::string &ErrorMsg, Twine Directory=".")
| Creates a FixedCompilationDatabase from the arguments after "--". More...
static std::unique_ptr< FixedCompilationDatabase > | loadFromFile (StringRef Path, std::string &ErrorMsg)
| Reads flags from the given file, one-per line. More...
Static Public Member Functions inherited from clang::tooling::CompilationDatabase
static std::unique_ptr< CompilationDatabase > | loadFromDirectory (StringRef BuildDirectory, std::string &ErrorMessage)
| Loads a compilation database from a build directory. More...
static std::unique_ptr< CompilationDatabase > | autoDetectFromSource (StringRef SourceFile, std::string &ErrorMessage)
| Tries to detect a compilation database location and load it. More...
static std::unique_ptr< CompilationDatabase > | autoDetectFromDirectory (StringRef SourceDir, std::string &ErrorMessage)
| Tries to detect a compilation database location and load it. More...

## Detailed Description

A compilation database that returns a single compile command line.

Useful when we want a tool to behave more like a compiler invocation. This compilation database is not enumerable: getAllFiles() returns {}.

Definition at line 154 of file CompilationDatabase.h.

## Constructor & Destructor Documentation

## ◆ FixedCompilationDatabase()

FixedCompilationDatabase::FixedCompilationDatabase | ( | Twine | Directory,
|  | ArrayRef< std::string > | CommandLine
| ) |  |

Constructs a compilation data base from a specified directory and command line.

Definition at line 378 of file CompilationDatabase.cpp.

Referenced by loadFromFile().

## Member Function Documentation

## ◆ getCompileCommands()

std::vector< CompileCommand > FixedCompilationDatabase::getCompileCommands | ( | StringRef | FilePath | ) | const
| override virtual

Returns the given compile command.

Will always return a vector with one entry that contains the directory and command line specified at construction with "clang-tool" as argv[0] and 'FilePath' as positional argument.

Implements clang::tooling::CompilationDatabase.

Definition at line 388 of file CompilationDatabase.cpp.

References clang::tooling::JSONAnchorSource, clang::tooling::CompilationDatabase::loadFromDirectory(), loadFromFile(), and clang::tooling::X().

## ◆ loadFromCommandLine()

std::unique_ptr< FixedCompilationDatabase > FixedCompilationDatabase::loadFromCommandLine | ( | int & | Argc,
|  | const char *const * | Argv,
|  | std::string & | ErrorMsg,
|  | Twine | Directory = `"."`
| ) |  |
| static

Creates a FixedCompilationDatabase from the arguments after "--".

Parses the given command line for "--". If "--" is found, the rest of the arguments will make up the command line in the returned FixedCompilationDatabase. The arguments after "--" must not include positional parameters or the argv[0] of the tool. Those will be added by the FixedCompilationDatabase when a CompileCommand is requested. The argv[0] of the returned command line will be "clang-tool".

Returns NULL in case "--" is not found.

The argument list is meant to be compatible with normal llvm command line parsing in main methods. int main(int argc, char **argv) { std::unique_ptr<FixedCompilationDatabase> Compilations( FixedCompilationDatabase::loadFromCommandLine(argc, argv)); cl::ParseCommandLineOptions(argc, argv); ... }

Parameters

  Argc | The number of command line arguments - will be changed to the number of arguments before "--", if "--" was found in the argument list.
  Argv | Points to the command line arguments.
  ErrorMsg | Contains error text if the function returns null pointer.
  Directory | The base directory used in the FixedCompilationDatabase.

Definition at line 343 of file CompilationDatabase.cpp.

References stripPositionalArgs().

Referenced by clang::tooling::ArgumentsAdjustingCompilations::getAllCompileCommands().

## ◆ loadFromFile()

std::unique_ptr< FixedCompilationDatabase > FixedCompilationDatabase::loadFromFile | ( | StringRef | Path,
|  | std::string & | ErrorMsg
| ) |  |
| static

Reads flags from the given file, one-per line.

Returns nullptr and sets ErrorMessage if we can't read the file.

Definition at line 363 of file CompilationDatabase.cpp.

References FixedCompilationDatabase().

Referenced by getCompileCommands().

The documentation for this class was generated from the following files:

- include/clang/Tooling/CompilationDatabase.h
- lib/Tooling/CompilationDatabase.cpp