#ifndef SONARGRAPH_XSD_CMAKE_JSON_MODULE_H #define SONARGRAPH_XSD_CMAKE_JSON_MODULE_H #include "utility/sonargraph/SonargraphXsdAbstractModule.h" #include "utility/sonargraph/SonargraphXsdRootPathWithFiles.h" namespace Sonargraph { class XsdCmakeJsonModule : public XsdAbstractModule { public: static std::string getXsdTypeName(); static std::shared_ptr create(const TiXmlElement* element, std::weak_ptr parent); LanguageType getSupportedLanguage() const override; std::set getAllSourcePaths() const override; std::set getAllSourceFilePathsCanonical() const override; std::set getAllCxxHeaderSearchPathsCanonical() const override; std::vector> getIndexerCommands( std::shared_ptr sourceGroupSettings, std::shared_ptr appSettings) const override; protected: XsdCmakeJsonModule() = default; bool init(const TiXmlElement* element, std::weak_ptr parent); std::vector getIncludedSourceFilesForRootPath( std::shared_ptr rootPath, const FilePath& baseDir, const std::set& excludeFilters, const std::set& includeFilters) const; std::vector> getIndexerCommandsForRootPath( std::shared_ptr rootPath, const std::set indexedHeaderPaths, const std::string& languageStandard, const std::vector systemHeaderSearchPaths, const std::vector frameworkSearchPaths) const; std::vector> m_rootPathWithFiles; }; } #endif // SONARGRAPH_XSD_CMAKE_JSON_MODULE_H