From cfceb21e7e2bd14b32e2c36e3e86e7d33560fd27 Mon Sep 17 00:00:00 2001 From: wrongway88 Date: Thu, 25 Feb 2016 12:40:18 +0100 Subject: [PATCH] logic: vs solution parsing hotfix Fixed bugged path building when project items have absolute paths Based on, but not a fix for UrHo3D parsing crash bug id = 30 --- bin/test/data/log/test_log.txt | 167 ++++++++++++++++++ .../solution/SolutionParserVisualStudio.cpp | 12 ++ 2 files changed, 179 insertions(+) diff --git a/bin/test/data/log/test_log.txt b/bin/test/data/log/test_log.txt index 3ef756d5..951a83d6 100644 --- a/bin/test/data/log/test_log.txt +++ b/bin/test/data/log/test_log.txt @@ -1,22 +1,189 @@ +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config. +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:11 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:1:13 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:7:15 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:5:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:48 CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:7:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:3:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml CxxDeclNameResolver.cpp ERROR: could not resolve name of decl at: input.cc:4:20 +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml +Settings.cpp WARNING: File for Settings not found: data/TestSettings.xml Token.cpp ERROR: Location Id was not referenced by this Token. Node.cpp WARNING: Cannot change NodeType after it was already set from namespace to class Edge.cpp ERROR: Nodes are not plain copies. diff --git a/src/lib/utility/solution/SolutionParserVisualStudio.cpp b/src/lib/utility/solution/SolutionParserVisualStudio.cpp index 71ee46c0..7ea6d5c8 100644 --- a/src/lib/utility/solution/SolutionParserVisualStudio.cpp +++ b/src/lib/utility/solution/SolutionParserVisualStudio.cpp @@ -208,6 +208,12 @@ std::vector SolutionParserVisualStudio::findProjectItems() { std::string filePath = child->Attribute("Include"); + if (boost::filesystem::exists(filePath) && checkValidFileExtension(filePath, validFileExtensions)) + { + projectItems.push_back(filePath); + continue; + } + if (relativeProjectPaths[i].size() > 0) { filePath = relativeProjectPaths[i] + "/" + filePath; @@ -226,6 +232,12 @@ std::vector SolutionParserVisualStudio::findProjectItems() { std::string filePath = child->Attribute("Include"); + if (boost::filesystem::exists(filePath) && checkValidFileExtension(filePath, validFileExtensions)) + { + projectItems.push_back(filePath); + continue; + } + if (relativeProjectPaths[i].size() > 0) { filePath = relativeProjectPaths[i] + "/" + filePath;