cmTarget: Do not mistake a preceding error for a CMP0049 failure
After calls to ProcessSourceItemCMP0049, check for an empty return string to detect a failure instead of trusting GetErrorOccuredFlag. The latter could have been left from a preceding non-fatal error. Extend the RunCMake.Configure test to cover a case that exposed this problem.
This commit is contained in:
parent
8d1306cd1b
commit
b2282631f6
|
@ -927,10 +927,13 @@ void cmTarget::AddSources(std::vector<std::string> const& srcs)
|
|||
|
||||
if(!(src[0] == '$' && src[1] == '<'))
|
||||
{
|
||||
filename = this->ProcessSourceItemCMP0049(filename);
|
||||
if (cmSystemTools::GetErrorOccuredFlag())
|
||||
if(!filename.empty())
|
||||
{
|
||||
return;
|
||||
filename = this->ProcessSourceItemCMP0049(filename);
|
||||
if(filename.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
this->Makefile->GetOrCreateSource(filename);
|
||||
}
|
||||
|
@ -998,8 +1001,7 @@ std::string cmTarget::ProcessSourceItemCMP0049(const std::string& s)
|
|||
cmSourceFile* cmTarget::AddSourceCMP0049(const std::string& s)
|
||||
{
|
||||
std::string src = this->ProcessSourceItemCMP0049(s);
|
||||
|
||||
if (cmSystemTools::GetErrorOccuredFlag())
|
||||
if(!s.empty() && src.empty())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
1
|
|
@ -0,0 +1,9 @@
|
|||
^CMake Error at CustomTargetAfterError.cmake:1 \(message\):
|
||||
Error before add_custom_target
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)
|
||||
+
|
||||
CMake Error at CustomTargetAfterError.cmake:3 \(message\):
|
||||
Error after add_custom_target
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)$
|
|
@ -0,0 +1,3 @@
|
|||
message(SEND_ERROR "Error before add_custom_target")
|
||||
add_custom_target(foo COMMAND echo)
|
||||
message(SEND_ERROR "Error after add_custom_target")
|
|
@ -1,5 +1,6 @@
|
|||
include(RunCMake)
|
||||
|
||||
run_cmake(CustomTargetAfterError)
|
||||
run_cmake(ErrorLogs)
|
||||
run_cmake(FailCopyFileABI)
|
||||
|
||||
|
|
Loading…
Reference in New Issue