clang
3.9.0
|
A compilation database that returns a single compile command line. More...
#include <CompilationDatabase.h>
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... | |
std::vector< std::string > | getAllFiles () const override |
Returns the list of all files available in the compilation database. More... | |
std::vector< CompileCommand > | getAllCompileCommands () const override |
Returns all compile commands for all the files in the compilation database. More... | |
![]() | |
virtual | ~CompilationDatabase () |
Static Public Member Functions | |
static FixedCompilationDatabase * | loadFromCommandLine (int &Argc, const char *const *Argv, Twine Directory=".") |
Creates a FixedCompilationDatabase from the arguments after "--". More... | |
![]() | |
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... | |
A compilation database that returns a single compile command line.
Useful when we want a tool to behave more like a compiler invocation.
Definition at line 158 of file CompilationDatabase.h.
FixedCompilationDatabase::FixedCompilationDatabase | ( | Twine | Directory, |
ArrayRef< std::string > | CommandLine | ||
) |
Constructs a compilation data base from a specified directory and command line.
Definition at line 297 of file CompilationDatabase.cpp.
Referenced by loadFromCommandLine().
|
overridevirtual |
Returns all compile commands for all the files in the compilation database.
Note: This is always an empty list for the fixed compilation database.
Implements clang::tooling::CompilationDatabase.
Definition at line 319 of file CompilationDatabase.cpp.
|
overridevirtual |
Returns the list of all files available in the compilation database.
Note: This is always an empty list for the fixed compilation database.
Implements clang::tooling::CompilationDatabase.
Definition at line 314 of file CompilationDatabase.cpp.
|
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 306 of file CompilationDatabase.cpp.
References FilePath, and clang::Result.
|
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); ... }
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. |
Directory | The base directory used in the FixedCompilationDatabase. |
Definition at line 282 of file CompilationDatabase.cpp.
References CommandLine, FixedCompilationDatabase(), and stripPositionalArgs().