Import project: Speed up if --file-filter has been provided
This commit is contained in:
parent
ff17cc2e8f
commit
e448cc68b5
|
@ -200,11 +200,11 @@ ImportProject::Type ImportProject::import(const std::string &filename, Settings
|
|||
importCompileCommands(fin);
|
||||
return ImportProject::Type::COMPILE_DB;
|
||||
} else if (endsWith(filename, ".sln", 4)) {
|
||||
importSln(fin,mPath);
|
||||
importSln(fin, mPath, settings->fileFilter);
|
||||
return ImportProject::Type::VS_SLN;
|
||||
} else if (endsWith(filename, ".vcxproj", 8)) {
|
||||
std::map<std::string, std::string, cppcheck::stricmp> variables;
|
||||
importVcxproj(filename, variables, emptyString);
|
||||
importVcxproj(filename, variables, emptyString, settings->fileFilter);
|
||||
return ImportProject::Type::VS_VCXPROJ;
|
||||
} else if (endsWith(filename, ".bpr", 4)) {
|
||||
importBcb6Prj(filename);
|
||||
|
@ -401,7 +401,7 @@ void ImportProject::importCompileCommands(std::istream &istr)
|
|||
}
|
||||
}
|
||||
|
||||
void ImportProject::importSln(std::istream &istr, const std::string &path)
|
||||
void ImportProject::importSln(std::istream &istr, const std::string &path, const std::string &fileFilter)
|
||||
{
|
||||
std::map<std::string,std::string,cppcheck::stricmp> variables;
|
||||
variables["SolutionDir"] = path;
|
||||
|
@ -419,7 +419,7 @@ void ImportProject::importSln(std::istream &istr, const std::string &path)
|
|||
std::string vcxproj(line.substr(pos1+1, pos-pos1+7));
|
||||
if (!Path::isAbsolute(vcxproj))
|
||||
vcxproj = path + vcxproj;
|
||||
importVcxproj(Path::fromNativeSeparators(vcxproj), variables, emptyString);
|
||||
importVcxproj(Path::fromNativeSeparators(vcxproj), variables, emptyString, fileFilter);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -602,7 +602,7 @@ static void loadVisualStudioProperties(const std::string &props, std::map<std::s
|
|||
}
|
||||
}
|
||||
|
||||
void ImportProject::importVcxproj(const std::string &filename, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories)
|
||||
void ImportProject::importVcxproj(const std::string &filename, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories, const std::string &fileFilter)
|
||||
{
|
||||
variables["ProjectDir"] = Path::simplifyPath(Path::getPathFromFilename(filename));
|
||||
|
||||
|
@ -661,6 +661,10 @@ void ImportProject::importVcxproj(const std::string &filename, std::map<std::str
|
|||
}
|
||||
|
||||
for (const std::string &c : compileList) {
|
||||
const std::string cfilename = Path::simplifyPath(Path::isAbsolute(c) ? c : Path::getPathFromFilename(filename) + c);
|
||||
if (!fileFilter.empty() && !matchglob(fileFilter, cfilename))
|
||||
continue;
|
||||
|
||||
for (const ProjectConfiguration &p : projectConfigurationList) {
|
||||
|
||||
if (!guiProject.checkVsConfigs.empty()) {
|
||||
|
@ -675,7 +679,7 @@ void ImportProject::importVcxproj(const std::string &filename, std::map<std::str
|
|||
}
|
||||
|
||||
FileSettings fs;
|
||||
fs.filename = Path::simplifyPath(Path::isAbsolute(c) ? c : Path::getPathFromFilename(filename) + c);
|
||||
fs.filename = cfilename;
|
||||
fs.cfg = p.name;
|
||||
fs.msc = true;
|
||||
fs.useMfc = useOfMfc;
|
||||
|
|
|
@ -109,8 +109,8 @@ protected:
|
|||
void importCompileCommands(std::istream &istr);
|
||||
bool importCppcheckGuiProject(std::istream &istr, Settings *settings);
|
||||
private:
|
||||
void importSln(std::istream &istr, const std::string &path);
|
||||
void importVcxproj(const std::string &filename, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories);
|
||||
void importSln(std::istream &istr, const std::string &path, const std::string &fileFilter);
|
||||
void importVcxproj(const std::string &filename, std::map<std::string, std::string, cppcheck::stricmp> &variables, const std::string &additionalIncludeDirectories, const std::string &fileFilter);
|
||||
void importBcb6Prj(const std::string &projectFilename);
|
||||
|
||||
std::string mPath;
|
||||
|
|
Loading…
Reference in New Issue