#pragma once #include #include #include class CompileCommands { public: class Command { public: boost::filesystem::path directory; std::vector arguments; boost::filesystem::path file; std::vector get_argument_values(const std::string &argument_name) const; }; CompileCommands(const boost::filesystem::path &build_path); std::vector commands; /// Return arguments for the given file using libclangmm static std::vector get_arguments(const boost::filesystem::path &build_path, const boost::filesystem::path &file_path); static bool is_header(const boost::filesystem::path &path); static bool is_source(const boost::filesystem::path &path); };