| //===--- CustomCompilationDatabase.h --------------------------------------===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // This file contains a hook to supply a custom \c CompilationDatabase |
| // implementation. |
| // |
| // The mechanism can be used by IDEs or non-public code bases to integrate with |
| // their build system. Currently we support statically linking in an |
| // implementation of \c findCompilationDatabaseForDirectory and enabling it |
| // with -DUSE_CUSTOM_COMPILATION_DATABASE when compiling the Tooling library. |
| // |
| // FIXME: The strategy forward is to provide a plugin system that can load |
| // custom compilation databases and make enabling that a build option. |
| // |
| //===----------------------------------------------------------------------===// |
| #ifndef LLVM_CLANG_TOOLING_CUSTOM_COMPILATION_DATABASE_H |
| #define LLVM_CLANG_TOOLING_CUSTOM_COMPILATION_DATABASE_H |
| |
| #include "llvm/ADT/StringRef.h" |
| |
| namespace clang { |
| namespace tooling { |
| class CompilationDatabase; |
| |
| /// \brief Returns a CompilationDatabase for the given \c Directory. |
| /// |
| /// \c Directory can be any directory within a project. This methods will |
| /// then try to find compilation database files in \c Directory or any of its |
| /// parents. If a compilation database cannot be found or loaded, returns NULL. |
| clang::tooling::CompilationDatabase *findCompilationDatabaseForDirectory( |
| llvm::StringRef Directory); |
| |
| } // namespace tooling |
| } // namespace clang |
| |
| #endif // LLVM_CLANG_TOOLING_CUSTOM_COMPILATION_DATABASE_H |