cmTarget: Fix buildsystem property empty value set and append operations

Refactoring in commit 1f54bc1c (cmTarget: Split storage of include
directories from genexes, 2015-08-04), commit 772ecef4 (cmTarget: Split
storage of compile options from genexes, 2015-08-04), commit 44e071ae
(cmTarget: Split storage of compile features from genexes, 2015-08-04),
and commit 197f4de1 (cmTarget: Split storage of compile definitions from
genexes, 2015-08-04) failed to account for value==NULL in SetProperty
and AppendProperty methods.
This commit is contained in:
Brad King 2015-09-02 16:24:52 -04:00
parent e7777cc563
commit cf74fc24d4
1 changed files with 48 additions and 24 deletions

View File

@ -1601,33 +1601,45 @@ void cmTarget::SetProperty(const std::string& prop, const char* value)
{ {
this->Internal->IncludeDirectoriesEntries.clear(); this->Internal->IncludeDirectoriesEntries.clear();
this->Internal->IncludeDirectoriesBacktraces.clear(); this->Internal->IncludeDirectoriesBacktraces.clear();
this->Internal->IncludeDirectoriesEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->IncludeDirectoriesBacktraces.push_back(lfbt); this->Internal->IncludeDirectoriesEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->IncludeDirectoriesBacktraces.push_back(lfbt);
}
} }
else if(prop == "COMPILE_OPTIONS") else if(prop == "COMPILE_OPTIONS")
{ {
this->Internal->CompileOptionsEntries.clear(); this->Internal->CompileOptionsEntries.clear();
this->Internal->CompileOptionsBacktraces.clear(); this->Internal->CompileOptionsBacktraces.clear();
this->Internal->CompileOptionsEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->CompileOptionsBacktraces.push_back(lfbt); this->Internal->CompileOptionsEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->CompileOptionsBacktraces.push_back(lfbt);
}
} }
else if(prop == "COMPILE_FEATURES") else if(prop == "COMPILE_FEATURES")
{ {
this->Internal->CompileFeaturesEntries.clear(); this->Internal->CompileFeaturesEntries.clear();
this->Internal->CompileFeaturesBacktraces.clear(); this->Internal->CompileFeaturesBacktraces.clear();
this->Internal->CompileFeaturesEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->CompileFeaturesBacktraces.push_back(lfbt); this->Internal->CompileFeaturesEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->CompileFeaturesBacktraces.push_back(lfbt);
}
} }
else if(prop == "COMPILE_DEFINITIONS") else if(prop == "COMPILE_DEFINITIONS")
{ {
this->Internal->CompileDefinitionsEntries.clear(); this->Internal->CompileDefinitionsEntries.clear();
this->Internal->CompileDefinitionsBacktraces.clear(); this->Internal->CompileDefinitionsBacktraces.clear();
this->Internal->CompileDefinitionsEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->CompileDefinitionsBacktraces.push_back(lfbt); this->Internal->CompileDefinitionsEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->CompileDefinitionsBacktraces.push_back(lfbt);
}
} }
else if(prop == "EXPORT_NAME" && this->IsImported()) else if(prop == "EXPORT_NAME" && this->IsImported())
{ {
@ -1693,27 +1705,39 @@ void cmTarget::AppendProperty(const std::string& prop, const char* value,
} }
else if(prop == "INCLUDE_DIRECTORIES") else if(prop == "INCLUDE_DIRECTORIES")
{ {
this->Internal->IncludeDirectoriesEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->IncludeDirectoriesBacktraces.push_back(lfbt); this->Internal->IncludeDirectoriesEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->IncludeDirectoriesBacktraces.push_back(lfbt);
}
} }
else if(prop == "COMPILE_OPTIONS") else if(prop == "COMPILE_OPTIONS")
{ {
this->Internal->CompileOptionsEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->CompileOptionsBacktraces.push_back(lfbt); this->Internal->CompileOptionsEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->CompileOptionsBacktraces.push_back(lfbt);
}
} }
else if(prop == "COMPILE_FEATURES") else if(prop == "COMPILE_FEATURES")
{ {
this->Internal->CompileFeaturesEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->CompileFeaturesBacktraces.push_back(lfbt); this->Internal->CompileFeaturesEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->CompileFeaturesBacktraces.push_back(lfbt);
}
} }
else if(prop == "COMPILE_DEFINITIONS") else if(prop == "COMPILE_DEFINITIONS")
{ {
this->Internal->CompileDefinitionsEntries.push_back(value); if (value)
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace(); {
this->Internal->CompileDefinitionsBacktraces.push_back(lfbt); this->Internal->CompileDefinitionsEntries.push_back(value);
cmListFileBacktrace lfbt = this->Makefile->GetBacktrace();
this->Internal->CompileDefinitionsBacktraces.push_back(lfbt);
}
} }
else if(prop == "EXPORT_NAME" && this->IsImported()) else if(prop == "EXPORT_NAME" && this->IsImported())
{ {