diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx index b5f3d4484..4214132ad 100644 --- a/Source/cmSystemTools.cxx +++ b/Source/cmSystemTools.cxx @@ -1734,7 +1734,8 @@ std::string cmSystemTools::GetProgramPath(const char* in_name) */ void cmSystemTools::SplitProgramPath(const char* in_name, std::string& dir, - std::string& file) + std::string& file, + bool errorReport) { dir = in_name; file = ""; @@ -1758,9 +1759,13 @@ void cmSystemTools::SplitProgramPath(const char* in_name, { std::string oldDir = in_name; cmSystemTools::ConvertToUnixSlashes(oldDir); - cmSystemTools::Error("Error splitting file name off end of path:\n", - oldDir.c_str(), "\nDirectory not found: ", - dir.c_str()); + if(errorReport) + { + cmSystemTools::Error("Error splitting file name off end of path:\n", + oldDir.c_str(), "\nDirectory not found: ", + dir.c_str()); + } + dir = in_name; return; } @@ -1781,7 +1786,7 @@ std::string cmSystemTools::CollapseFullPath(const char* in_relative, const char* in_base) { std::string dir, file; - cmSystemTools::SplitProgramPath(in_relative, dir, file); + cmSystemTools::SplitProgramPath(in_relative, dir, file, false); // Save original working directory. std::string orig = cmSystemTools::GetCurrentWorkingDirectory(); diff --git a/Source/cmSystemTools.h b/Source/cmSystemTools.h index e513733b1..db4c3b46e 100644 --- a/Source/cmSystemTools.h +++ b/Source/cmSystemTools.h @@ -264,7 +264,8 @@ public: static std::string GetProgramPath(const char*); static void SplitProgramPath(const char* in_name, std::string& dir, - std::string& file); + std::string& file, + bool errorReport = true); static std::string CollapseFullPath(const char* in_relative); static std::string CollapseFullPath(const char* in_relative, const char* in_base);