3636
3737class Settings ;
3838struct Suppressions ;
39- namespace tinyxml2 {
40- class XMLDocument ;
41- }
4239
4340// / @addtogroup Core
4441// / @{
@@ -56,11 +53,14 @@ namespace cppcheck {
5653 }
5754}
5855
56+ using VariablesMap = std::map<std::string, std::string, cppcheck::stricmp>;
57+
5958/* *
6059 * @brief Importing project settings.
6160 */
6261class CPPCHECKLIB WARN_UNUSED ImportProject {
6362public:
63+
6464 enum class Type : std::uint8_t {
6565 NONE ,
6666 UNKNOWN ,
@@ -76,7 +76,7 @@ class CPPCHECKLIB WARN_UNUSED ImportProject {
7676
7777protected:
7878 static void fsSetDefines (FileSettings& fs, std::string defs);
79- static void fsSetIncludePaths (FileSettings& fs, const std::string &basepath, const std::list<std::string> &in, std::map<std::string, std::string, cppcheck::stricmp> &variables);
79+ static void fsSetIncludePaths (FileSettings& fs, const std::string &basepath, const std::list<std::string> &in, VariablesMap &variables);
8080
8181public:
8282 std::list<FileSettings> fileSettings;
@@ -106,28 +106,22 @@ class CPPCHECKLIB WARN_UNUSED ImportProject {
106106 void ignoreOtherConfigs (const std::string &cfg);
107107
108108 Type import (const std::string &filename, Settings *settings=nullptr , Suppressions *supprs=nullptr );
109+
109110protected:
110111 bool importCompileCommands (std::istream &istr);
111112 bool importCppcheckGuiProject (std::istream &istr, Settings &settings, Suppressions &supprs);
112113 static std::string collectArgs (const std::string &cmd, std::vector<std::string> &args);
113114 void setRelativePaths (const std::string &filename);
114115
115- struct SharedItemsProject {
116- bool successful = false ;
117- std::string pathToProjectFile;
118- std::vector<std::string> includePaths;
119- std::vector<std::string> sourceFiles;
120- };
116+ VariablesMap mVariables ;
121117
122- bool importVcxproj (const std::string &filename, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories, const std::vector<std::string> &fileFilters, std::vector<SharedItemsProject> &cache);
123- bool importVcxproj (const std::string &filename, const tinyxml2::XMLDocument &doc, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories, const std::vector<std::string> &fileFilters, std::vector<SharedItemsProject> &cache);
118+ bool importVcxproj (const std::string &filename, VariablesMap &variables, const std::vector<std::string> &fileFilters);
124119
125120private:
126121 static void parseArgs (FileSettings &fs, const std::vector<std::string> &args);
127122
128123 bool importSln (std::istream &istr, const std::string &path, const std::vector<std::string> &fileFilters);
129124 bool importSlnx (const std::string& filename, const std::vector<std::string>& fileFilters);
130- SharedItemsProject importVcxitems (const std::string &filename, const std::vector<std::string> &fileFilters, std::vector<SharedItemsProject> &cache);
131125 bool importBcb6Prj (const std::string &projectFilename);
132126
133127 std::string mPath ;
0 commit comments