#pragma once #include #include #include #include "llvm/ADT/StringRef.h" namespace clice { class CompilationUnit; struct CompilationParams; struct PCHInfo { /// The building time. std::int64_t mtime; /// The path of the output PCH file. std::string path; /// The content used to build this PCH. std::string preamble; /// The command used to build this PCH. std::string command; /// All files involved in building this PCH. std::vector deps; }; /// Compute the preamble bound of given content. We just /// run lex until we find first not directive. std::uint32_t computePreambleBound(llvm::StringRef content); /// Same as above, but return a group of bounds for chained PCH /// building. std::vector computePreambleBounds(llvm::StringRef content); } // namespace clice