//===--- 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.
//
//===----------------------------------------------------------------------===//

#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);
