clang  6.0.0svn
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:
Inheritance graph
[legend]
Collaboration diagram for clang::tooling::FixedCompilationDatabase:
Collaboration graph
[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< CompileCommandgetCompileCommands (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< CompileCommandgetAllCompileCommands () const
 Returns all compile commands for all the files in the compilation database. More...
 

Static Public Member Functions

static std::unique_ptr< FixedCompilationDatabaseloadFromCommandLine (int &Argc, const char *const *Argv, std::string &ErrorMsg, Twine Directory=".")
 Creates a FixedCompilationDatabase from the arguments after "--". More...
 
static std::unique_ptr< FixedCompilationDatabaseloadFromFile (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< CompilationDatabaseloadFromDirectory (StringRef BuildDirectory, std::string &ErrorMessage)
 Loads a compilation database from a build directory. More...
 
static std::unique_ptr< CompilationDatabaseautoDetectFromSource (StringRef SourceFile, std::string &ErrorMessage)
 Tries to detect a compilation database location and load it. More...
 
static std::unique_ptr< CompilationDatabaseautoDetectFromDirectory (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 161 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 337 of file CompilationDatabase.cpp.

Referenced by loadFromFile().

Member Function Documentation

◆ getCompileCommands()

std::vector< CompileCommand > FixedCompilationDatabase::getCompileCommands ( StringRef  FilePath) const
overridevirtual

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 347 of file CompilationDatabase.cpp.

◆ 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
ArgcThe number of command line arguments - will be changed to the number of arguments before "--", if "--" was found in the argument list.
ArgvPoints to the command line arguments.
ErrorMsgContains error text if the function returns null pointer.
DirectoryThe base directory used in the FixedCompilationDatabase.

Definition at line 302 of file CompilationDatabase.cpp.

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 322 of file CompilationDatabase.cpp.

References FixedCompilationDatabase().


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