From 33bb9cfa365f494bb76ff9c2c78ad625e77152ec Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 28 Jan 2016 22:10:23 +0100 Subject: [PATCH] Parser: Issue messages through cmake, not cmSystemTools Make these messages uniform with regard to other messages issued by cmake. --- Source/cmListFileCache.cxx | 70 +++++++++++-------- .../Syntax/BracketComment4-stderr.txt | 11 ++- .../Syntax/BracketNoSpace0-stderr.txt | 6 +- .../Syntax/BracketNoSpace1-stderr.txt | 6 +- .../Syntax/BracketNoSpace2-stderr.txt | 6 +- .../Syntax/BracketNoSpace3-stderr.txt | 6 +- .../Syntax/BracketNoSpace4-stderr.txt | 6 +- .../Syntax/BracketNoSpace5-stderr.txt | 6 +- .../RunCMake/Syntax/CommandError0-stderr.txt | 12 ++-- .../RunCMake/Syntax/CommandError1-stderr.txt | 11 ++- .../RunCMake/Syntax/CommandError2-stderr.txt | 12 ++-- Tests/RunCMake/Syntax/ParenInENV-stderr.txt | 8 +-- .../RunCMake/Syntax/ParenNoSpace1-stderr.txt | 18 ++--- .../RunCMake/Syntax/StringNoSpace-stderr.txt | 12 ++-- .../Syntax/UnterminatedBracket0-stderr.txt | 13 ++-- .../Syntax/UnterminatedBracket1-stderr.txt | 13 ++-- .../UnterminatedBracketComment-stderr.txt | 13 ++-- .../Syntax/UnterminatedCall1-stderr.txt | 11 ++- .../Syntax/UnterminatedCall2-stderr.txt | 11 ++- .../Syntax/UnterminatedString-stderr.txt | 13 ++-- 20 files changed, 115 insertions(+), 149 deletions(-) diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index 1a2ddaff4..9204d1480 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -24,6 +24,7 @@ struct cmListFileParser cmListFileParser(cmListFile* lf, cmMakefile* mf, const char* filename); ~cmListFileParser(); void IssueFileOpenError(std::string const& text) const; + void IssueError(std::string const& text) const; bool ParseFile(); bool ParseFunction(const char* name, long line); bool AddArgument(cmListFileLexer_Token* token, @@ -62,6 +63,18 @@ void cmListFileParser::IssueFileOpenError(const std::string& text) const this->Makefile->IssueMessage(cmake::FATAL_ERROR, text); } +void cmListFileParser::IssueError(const std::string& text) const +{ + cmListFileContext lfc; + lfc.FilePath = this->FileName; + lfc.Line = cmListFileLexer_GetCurrentLine(this->Lexer); + cmListFileBacktrace lfbt = this->Backtrace; + lfbt = lfbt.Push(lfc); + this->Makefile->GetCMakeInstance()->IssueMessage(cmake::FATAL_ERROR, text, + lfbt); + cmSystemTools::SetFatalErrorOccured(); +} + bool cmListFileParser::ParseFile() { // Open the file. @@ -98,22 +111,18 @@ bool cmListFileParser::ParseFile() } } else { std::ostringstream error; - error << "Error in cmake code at\n" - << this->FileName << ":" << token->line << ":\n" - << "Parse error. Expected a newline, got " + error << "Parse error. Expected a newline, got " << cmListFileLexer_GetTypeAsString(this->Lexer, token->type) << " with text \"" << token->text << "\"."; - cmSystemTools::Error(error.str().c_str()); + this->IssueError(error.str()); return false; } } else { std::ostringstream error; - error << "Error in cmake code at\n" - << this->FileName << ":" << token->line << ":\n" - << "Parse error. Expected a command name, got " + error << "Parse error. Expected a command name, got " << cmListFileLexer_GetTypeAsString(this->Lexer, token->type) << " with text \"" << token->text << "\"."; - cmSystemTools::Error(error.str().c_str()); + this->IssueError(error.str()); return false; } } @@ -156,18 +165,15 @@ bool cmListFileParser::ParseFunction(const char* name, long line) << cmListFileLexer_GetCurrentLine(this->Lexer) << ":\n" << "Parse error. Function missing opening \"(\"."; /* clang-format on */ - cmSystemTools::Error(error.str().c_str()); + this->IssueError(error.str()); return false; } if (token->type != cmListFileLexer_Token_ParenLeft) { std::ostringstream error; - error << "Error in cmake code at\n" - << this->FileName << ":" - << cmListFileLexer_GetCurrentLine(this->Lexer) << ":\n" - << "Parse error. Expected \"(\", got " + error << "Parse error. Expected \"(\", got " << cmListFileLexer_GetTypeAsString(this->Lexer, token->type) << " with text \"" << token->text << "\"."; - cmSystemTools::Error(error.str().c_str()); + this->IssueError(error.str()); return false; } @@ -219,25 +225,25 @@ bool cmListFileParser::ParseFunction(const char* name, long line) } else { // Error. std::ostringstream error; - error << "Error in cmake code at\n" - << this->FileName << ":" - << cmListFileLexer_GetCurrentLine(this->Lexer) << ":\n" - << "Parse error. Function missing ending \")\". " + error << "Parse error. Function missing ending \")\". " << "Instead found " << cmListFileLexer_GetTypeAsString(this->Lexer, token->type) << " with text \"" << token->text << "\"."; - cmSystemTools::Error(error.str().c_str()); + this->IssueError(error.str()); return false; } } std::ostringstream error; - error << "Error in cmake code at\n" - << this->FileName << ":" << lastLine << ":\n" - << "Parse error. Function missing ending \")\". " + cmListFileContext lfc; + lfc.FilePath = this->FileName; + lfc.Line = lastLine; + cmListFileBacktrace lfbt = this->Backtrace; + lfbt = lfbt.Push(lfc); + error << "Parse error. Function missing ending \")\". " << "End of file reached."; - cmSystemTools::Error(error.str().c_str()); - + this->Makefile->GetCMakeInstance()->IssueMessage(cmake::FATAL_ERROR, + error.str(), lfbt); return false; } @@ -252,17 +258,21 @@ bool cmListFileParser::AddArgument(cmListFileLexer_Token* token, bool isError = (this->Separation == SeparationError || delim == cmListFileArgument::Bracket); std::ostringstream m; - /* clang-format off */ - m << "Syntax " << (isError? "Error":"Warning") << " in cmake code at\n" - << " " << this->FileName << ":" << token->line << ":" - << token->column << "\n" + cmListFileContext lfc; + lfc.FilePath = this->FileName; + lfc.Line = token->line; + cmListFileBacktrace lfbt = this->Backtrace; + lfbt = lfbt.Push(lfc); + + m << "Syntax " << (isError ? "Error" : "Warning") << " in cmake code at " + << "column " << token->column << "\n" << "Argument not separated from preceding token by whitespace."; /* clang-format on */ if (isError) { - this->Makefile->IssueMessage(cmake::FATAL_ERROR, m.str()); + this->Makefile->GetCMakeInstance()->IssueMessage(cmake::FATAL_ERROR, m.str(), lfbt); return false; } - this->Makefile->IssueMessage(cmake::AUTHOR_WARNING, m.str()); + this->Makefile->GetCMakeInstance()->IssueMessage(cmake::AUTHOR_WARNING, m.str(), lfbt); return true; } diff --git a/Tests/RunCMake/Syntax/BracketComment4-stderr.txt b/Tests/RunCMake/Syntax/BracketComment4-stderr.txt index 8ba32c22c..6bbb980e6 100644 --- a/Tests/RunCMake/Syntax/BracketComment4-stderr.txt +++ b/Tests/RunCMake/Syntax/BracketComment4-stderr.txt @@ -1,7 +1,4 @@ -CMake Error: Error in cmake code at -.*/Tests/RunCMake/Syntax/BracketComment4.cmake:3: -Parse error. Expected a newline, got identifier with text "message". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: - - BracketComment4.cmake +CMake Error at BracketComment4.cmake:3: + Parse error. Expected a newline, got identifier with text "message". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/BracketNoSpace0-stderr.txt b/Tests/RunCMake/Syntax/BracketNoSpace0-stderr.txt index a28828004..0a52022ac 100644 --- a/Tests/RunCMake/Syntax/BracketNoSpace0-stderr.txt +++ b/Tests/RunCMake/Syntax/BracketNoSpace0-stderr.txt @@ -1,7 +1,5 @@ -CMake Error in BracketNoSpace0.cmake: - Syntax Error in cmake code at - - .*/Tests/RunCMake/Syntax/BracketNoSpace0.cmake:1:27 +CMake Error at BracketNoSpace0.cmake:1: + Syntax Error in cmake code at column 27 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/BracketNoSpace1-stderr.txt b/Tests/RunCMake/Syntax/BracketNoSpace1-stderr.txt index 391e11b7e..43bf99543 100644 --- a/Tests/RunCMake/Syntax/BracketNoSpace1-stderr.txt +++ b/Tests/RunCMake/Syntax/BracketNoSpace1-stderr.txt @@ -1,7 +1,5 @@ -CMake Error in BracketNoSpace1.cmake: - Syntax Error in cmake code at - - .*/Tests/RunCMake/Syntax/BracketNoSpace1.cmake:1:24 +CMake Error at BracketNoSpace1.cmake:1: + Syntax Error in cmake code at column 24 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/BracketNoSpace2-stderr.txt b/Tests/RunCMake/Syntax/BracketNoSpace2-stderr.txt index acaf7fe6e..f78b4bdf1 100644 --- a/Tests/RunCMake/Syntax/BracketNoSpace2-stderr.txt +++ b/Tests/RunCMake/Syntax/BracketNoSpace2-stderr.txt @@ -1,7 +1,5 @@ -CMake Error in BracketNoSpace2.cmake: - Syntax Error in cmake code at - - .*/Tests/RunCMake/Syntax/BracketNoSpace2.cmake:1:44 +CMake Error at BracketNoSpace2.cmake:1: + Syntax Error in cmake code at column 44 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/BracketNoSpace3-stderr.txt b/Tests/RunCMake/Syntax/BracketNoSpace3-stderr.txt index f12b2e50b..63ca600cd 100644 --- a/Tests/RunCMake/Syntax/BracketNoSpace3-stderr.txt +++ b/Tests/RunCMake/Syntax/BracketNoSpace3-stderr.txt @@ -1,7 +1,5 @@ -CMake Error in BracketNoSpace3.cmake: - Syntax Error in cmake code at - - .*/Tests/RunCMake/Syntax/BracketNoSpace3.cmake:1:45 +CMake Error at BracketNoSpace3.cmake:1: + Syntax Error in cmake code at column 45 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/BracketNoSpace4-stderr.txt b/Tests/RunCMake/Syntax/BracketNoSpace4-stderr.txt index 71577632d..318b0e344 100644 --- a/Tests/RunCMake/Syntax/BracketNoSpace4-stderr.txt +++ b/Tests/RunCMake/Syntax/BracketNoSpace4-stderr.txt @@ -1,7 +1,5 @@ -CMake Error in BracketNoSpace4.cmake: - Syntax Error in cmake code at - - .*/Tests/RunCMake/Syntax/BracketNoSpace4.cmake:1:44 +CMake Error at BracketNoSpace4.cmake:1: + Syntax Error in cmake code at column 44 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/BracketNoSpace5-stderr.txt b/Tests/RunCMake/Syntax/BracketNoSpace5-stderr.txt index c13969ddc..a68478a60 100644 --- a/Tests/RunCMake/Syntax/BracketNoSpace5-stderr.txt +++ b/Tests/RunCMake/Syntax/BracketNoSpace5-stderr.txt @@ -1,7 +1,5 @@ -CMake Error in BracketNoSpace5.cmake: - Syntax Error in cmake code at - - .*/Tests/RunCMake/Syntax/BracketNoSpace5.cmake:1:45 +CMake Error at BracketNoSpace5.cmake:1: + Syntax Error in cmake code at column 45 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/CommandError0-stderr.txt b/Tests/RunCMake/Syntax/CommandError0-stderr.txt index 24d7997ad..e584fb0df 100644 --- a/Tests/RunCMake/Syntax/CommandError0-stderr.txt +++ b/Tests/RunCMake/Syntax/CommandError0-stderr.txt @@ -1,8 +1,6 @@ -CMake Error: Error in cmake code at -.*/Tests/RunCMake/Syntax/CommandError0.cmake:2: -Parse error. Expected "\(", got newline with text " -". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: +CMake Error at CommandError0.cmake:2: + Parse error. Expected "\(", got newline with text " - CommandError0.cmake + ". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/CommandError1-stderr.txt b/Tests/RunCMake/Syntax/CommandError1-stderr.txt index 599f60021..c3bf93cce 100644 --- a/Tests/RunCMake/Syntax/CommandError1-stderr.txt +++ b/Tests/RunCMake/Syntax/CommandError1-stderr.txt @@ -1,7 +1,4 @@ -CMake Error: Error in cmake code at -.*/Tests/RunCMake/Syntax/CommandError1.cmake:1: -Parse error. Expected a newline, got identifier with text "message". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: - - CommandError1.cmake +CMake Error at CommandError1.cmake:1: + Parse error. Expected a newline, got identifier with text "message". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/CommandError2-stderr.txt b/Tests/RunCMake/Syntax/CommandError2-stderr.txt index f4dfc7749..4fe28a98c 100644 --- a/Tests/RunCMake/Syntax/CommandError2-stderr.txt +++ b/Tests/RunCMake/Syntax/CommandError2-stderr.txt @@ -1,7 +1,5 @@ -CMake Error: Error in cmake code at -.*/Tests/RunCMake/Syntax/CommandError2.cmake:1: -Parse error. Expected a command name, got bracket argument with text "oops-not-a-comment". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: - - CommandError2.cmake +CMake Error at CommandError2.cmake:1: + Parse error. Expected a command name, got bracket argument with text + "oops-not-a-comment". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/ParenInENV-stderr.txt b/Tests/RunCMake/Syntax/ParenInENV-stderr.txt index 37c5d6eb2..d7861e2eb 100644 --- a/Tests/RunCMake/Syntax/ParenInENV-stderr.txt +++ b/Tests/RunCMake/Syntax/ParenInENV-stderr.txt @@ -1,7 +1,5 @@ -CMake Warning \(dev\) in ParenInENV.cmake: - Syntax Warning in cmake code at - - .*/Tests/RunCMake/Syntax/ParenInENV.cmake:2:21 +CMake Warning \(dev\) at ParenInENV.cmake:2: + Syntax Warning in cmake code at column 21 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): @@ -11,7 +9,7 @@ This warning is for project developers. Use -Wno-dev to suppress it. CMake Error at ParenInENV.cmake:2 \(message\): Syntax error in cmake code at - .*/Tests/RunCMake/Syntax/ParenInENV.cmake:2 + .*Tests/RunCMake/Syntax/ParenInENV.cmake:2 when parsing string diff --git a/Tests/RunCMake/Syntax/ParenNoSpace1-stderr.txt b/Tests/RunCMake/Syntax/ParenNoSpace1-stderr.txt index 45b2e6a6a..79582494c 100644 --- a/Tests/RunCMake/Syntax/ParenNoSpace1-stderr.txt +++ b/Tests/RunCMake/Syntax/ParenNoSpace1-stderr.txt @@ -1,27 +1,21 @@ -CMake Warning \(dev\) in ParenNoSpace1.cmake: - Syntax Warning in cmake code at - - .*/Tests/RunCMake/Syntax/ParenNoSpace1.cmake:1:26 +CMake Warning \(dev\) at ParenNoSpace1.cmake:1: + Syntax Warning in cmake code at column 26 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) This warning is for project developers. Use -Wno-dev to suppress it. -CMake Warning \(dev\) in ParenNoSpace1.cmake: - Syntax Warning in cmake code at - - .*/Tests/RunCMake/Syntax/ParenNoSpace1.cmake:2:26 +CMake Warning \(dev\) at ParenNoSpace1.cmake:2: + Syntax Warning in cmake code at column 26 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) This warning is for project developers. Use -Wno-dev to suppress it. -CMake Error in ParenNoSpace1.cmake: - Syntax Error in cmake code at - - .*/Tests/RunCMake/Syntax/ParenNoSpace1.cmake:3:29 +CMake Error at ParenNoSpace1.cmake:3: + Syntax Error in cmake code at column 29 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/StringNoSpace-stderr.txt b/Tests/RunCMake/Syntax/StringNoSpace-stderr.txt index a4ec6e779..817fcfa3b 100644 --- a/Tests/RunCMake/Syntax/StringNoSpace-stderr.txt +++ b/Tests/RunCMake/Syntax/StringNoSpace-stderr.txt @@ -1,17 +1,13 @@ -CMake Warning \(dev\) in StringNoSpace.cmake: - Syntax Warning in cmake code at - - .*/Tests/RunCMake/Syntax/StringNoSpace.cmake:2:28 +CMake Warning \(dev\) at StringNoSpace.cmake:2: + Syntax Warning in cmake code at column 28 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) This warning is for project developers. Use -Wno-dev to suppress it. -CMake Warning \(dev\) in StringNoSpace.cmake: - Syntax Warning in cmake code at - - .*/Tests/RunCMake/Syntax/StringNoSpace.cmake:2:31 +CMake Warning \(dev\) at StringNoSpace.cmake:2: + Syntax Warning in cmake code at column 31 Argument not separated from preceding token by whitespace. Call Stack \(most recent call first\): diff --git a/Tests/RunCMake/Syntax/UnterminatedBracket0-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedBracket0-stderr.txt index 3559c1893..de33f7dff 100644 --- a/Tests/RunCMake/Syntax/UnterminatedBracket0-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedBracket0-stderr.txt @@ -1,8 +1,7 @@ -CMake Error: Error in cmake code at -.*/Syntax/UnterminatedBracket0.cmake:2: -Parse error. Function missing ending "\)". Instead found unterminated bracket with text "\) -". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: +CMake Error at UnterminatedBracket0.cmake:2: + Parse error. Function missing ending "\)". Instead found unterminated + bracket with text "\) - UnterminatedBracket0.cmake$ + ". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedBracket1-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedBracket1-stderr.txt index 55d458ba2..86bfa2a86 100644 --- a/Tests/RunCMake/Syntax/UnterminatedBracket1-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedBracket1-stderr.txt @@ -1,8 +1,7 @@ -CMake Error: Error in cmake code at -.*/Syntax/UnterminatedBracket1.cmake:2: -Parse error. Function missing ending "\)". Instead found unterminated bracket with text "\]\]\) -". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: +CMake Error at UnterminatedBracket1.cmake:2: + Parse error. Function missing ending "\)". Instead found unterminated + bracket with text "]]\) - UnterminatedBracket1.cmake$ + ". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedBracketComment-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedBracketComment-stderr.txt index 0a799eb5a..4ec78a17b 100644 --- a/Tests/RunCMake/Syntax/UnterminatedBracketComment-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedBracketComment-stderr.txt @@ -1,8 +1,7 @@ -CMake Error: Error in cmake code at -.*/Syntax/UnterminatedBracketComment.cmake:1: -Parse error. Expected a command name, got unterminated bracket with text "#\]\] -". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: +CMake Error at UnterminatedBracketComment.cmake:3: + Parse error. Expected a command name, got unterminated bracket with text + "#]] - UnterminatedBracketComment.cmake + ". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt index 281ce0da8..3f5224487 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt @@ -1,7 +1,4 @@ -CMake Error: Error in cmake code at -.*/Syntax/UnterminatedCall1.cmake:2: -Parse error. Function missing ending "\)". End of file reached. -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: - - UnterminatedCall1.cmake +CMake Error at UnterminatedCall1.cmake:2: + Parse error. Function missing ending "\)". End of file reached. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt index 065de30fc..18656f713 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt @@ -1,7 +1,4 @@ -CMake Error: Error in cmake code at -.*/Syntax/UnterminatedCall2.cmake:4: -Parse error. Function missing ending "\)". End of file reached. -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: - - UnterminatedCall2.cmake +CMake Error at UnterminatedCall2.cmake:4: + Parse error. Function missing ending "\)". End of file reached. +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedString-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedString-stderr.txt index d9250328d..79c3fd224 100644 --- a/Tests/RunCMake/Syntax/UnterminatedString-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedString-stderr.txt @@ -1,8 +1,7 @@ -CMake Error: Error in cmake code at -.*/Syntax/UnterminatedString.cmake:2: -Parse error. Function missing ending "\)". Instead found unterminated string with text "\) -". -CMake Error at CMakeLists.txt:3 \(include\): - include could not find load file: +CMake Error at UnterminatedString.cmake:2: + Parse error. Function missing ending "\)". Instead found unterminated + string with text "\) - UnterminatedString.cmake$ + ". +Call Stack \(most recent call first\): + CMakeLists.txt:3 \(include\)