#pragma once #include #include #include class CompileCommands { public: class FindSystemIncludePaths { int exit_status; public: std::vector include_paths; std::vector framework_paths; operator bool() const { return exit_status == 0; } FindSystemIncludePaths(); }; class Command { public: boost::filesystem::path directory; std::vector parameters; boost::filesystem::path file; std::vector parameter_values(const std::string ¶meter_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); };