cmTargetPropCommandBase: Change the interface to return bool.
This is needed for the target_compile_features command, which may fail at configure time if an invalid feature is specified.
This commit is contained in:
parent
5412deded1
commit
4e6ca50445
|
@ -58,9 +58,10 @@ std::string cmTargetCompileDefinitionsCommand
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTargetCompileDefinitionsCommand
|
||||
bool cmTargetCompileDefinitionsCommand
|
||||
::HandleDirectContent(cmTarget *tgt, const std::vector<std::string> &content,
|
||||
bool, bool)
|
||||
{
|
||||
tgt->AppendProperty("COMPILE_DEFINITIONS", this->Join(content).c_str());
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ private:
|
|||
virtual void HandleImportedTarget(const std::string &tgt);
|
||||
virtual void HandleMissingTarget(const std::string &name);
|
||||
|
||||
virtual void HandleDirectContent(cmTarget *tgt,
|
||||
virtual bool HandleDirectContent(cmTarget *tgt,
|
||||
const std::vector<std::string> &content,
|
||||
bool prepend, bool system);
|
||||
virtual std::string Join(const std::vector<std::string> &content);
|
||||
|
|
|
@ -51,7 +51,7 @@ std::string cmTargetCompileOptionsCommand
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTargetCompileOptionsCommand
|
||||
bool cmTargetCompileOptionsCommand
|
||||
::HandleDirectContent(cmTarget *tgt, const std::vector<std::string> &content,
|
||||
bool, bool)
|
||||
{
|
||||
|
@ -59,4 +59,5 @@ void cmTargetCompileOptionsCommand
|
|||
this->Makefile->GetBacktrace(lfbt);
|
||||
cmValueWithOrigin entry(this->Join(content), lfbt);
|
||||
tgt->InsertCompileOption(entry);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ private:
|
|||
virtual void HandleImportedTarget(const std::string &tgt);
|
||||
virtual void HandleMissingTarget(const std::string &name);
|
||||
|
||||
virtual void HandleDirectContent(cmTarget *tgt,
|
||||
virtual bool HandleDirectContent(cmTarget *tgt,
|
||||
const std::vector<std::string> &content,
|
||||
bool prepend, bool system);
|
||||
virtual std::string Join(const std::vector<std::string> &content);
|
||||
|
|
|
@ -66,7 +66,7 @@ std::string cmTargetIncludeDirectoriesCommand
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTargetIncludeDirectoriesCommand
|
||||
bool cmTargetIncludeDirectoriesCommand
|
||||
::HandleDirectContent(cmTarget *tgt, const std::vector<std::string> &content,
|
||||
bool prepend, bool system)
|
||||
{
|
||||
|
@ -78,6 +78,7 @@ void cmTargetIncludeDirectoriesCommand
|
|||
{
|
||||
tgt->AddSystemIncludeDirectories(content);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
@ -45,7 +45,7 @@ private:
|
|||
virtual void HandleImportedTarget(const std::string &tgt);
|
||||
virtual void HandleMissingTarget(const std::string &name);
|
||||
|
||||
virtual void HandleDirectContent(cmTarget *tgt,
|
||||
virtual bool HandleDirectContent(cmTarget *tgt,
|
||||
const std::vector<std::string> &content,
|
||||
bool prepend, bool system);
|
||||
virtual void HandleInterfaceContent(cmTarget *tgt,
|
||||
|
|
|
@ -132,29 +132,31 @@ bool cmTargetPropCommandBase
|
|||
|| args[i] == "PRIVATE"
|
||||
|| args[i] == "INTERFACE" )
|
||||
{
|
||||
this->PopulateTargetProperies(scope, content, prepend, system);
|
||||
return true;
|
||||
return this->PopulateTargetProperies(scope, content, prepend, system);
|
||||
}
|
||||
content.push_back(args[i]);
|
||||
}
|
||||
this->PopulateTargetProperies(scope, content, prepend, system);
|
||||
return true;
|
||||
return this->PopulateTargetProperies(scope, content, prepend, system);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTargetPropCommandBase
|
||||
bool cmTargetPropCommandBase
|
||||
::PopulateTargetProperies(const std::string &scope,
|
||||
const std::vector<std::string> &content,
|
||||
bool prepend, bool system)
|
||||
{
|
||||
if (scope == "PRIVATE" || scope == "PUBLIC")
|
||||
{
|
||||
this->HandleDirectContent(this->Target, content, prepend, system);
|
||||
if (!this->HandleDirectContent(this->Target, content, prepend, system))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (scope == "INTERFACE" || scope == "PUBLIC")
|
||||
{
|
||||
this->HandleInterfaceContent(this->Target, content, prepend, system);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
|
|
@ -44,7 +44,7 @@ private:
|
|||
virtual void HandleImportedTarget(const std::string &tgt) = 0;
|
||||
virtual void HandleMissingTarget(const std::string &name) = 0;
|
||||
|
||||
virtual void HandleDirectContent(cmTarget *tgt,
|
||||
virtual bool HandleDirectContent(cmTarget *tgt,
|
||||
const std::vector<std::string> &content,
|
||||
bool prepend, bool system) = 0;
|
||||
|
||||
|
@ -52,7 +52,7 @@ private:
|
|||
|
||||
bool ProcessContentArgs(std::vector<std::string> const& args,
|
||||
unsigned int &argIndex, bool prepend, bool system);
|
||||
void PopulateTargetProperies(const std::string &scope,
|
||||
bool PopulateTargetProperies(const std::string &scope,
|
||||
const std::vector<std::string> &content,
|
||||
bool prepend, bool system);
|
||||
};
|
||||
|
|
|
@ -56,9 +56,10 @@ std::string cmTargetSourcesCommand
|
|||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void cmTargetSourcesCommand
|
||||
bool cmTargetSourcesCommand
|
||||
::HandleDirectContent(cmTarget *tgt, const std::vector<std::string> &content,
|
||||
bool, bool)
|
||||
{
|
||||
tgt->AppendProperty("SOURCES", this->Join(content).c_str());
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -45,7 +45,7 @@ private:
|
|||
virtual void HandleImportedTarget(const std::string &tgt);
|
||||
virtual void HandleMissingTarget(const std::string &name);
|
||||
|
||||
virtual void HandleDirectContent(cmTarget *tgt,
|
||||
virtual bool HandleDirectContent(cmTarget *tgt,
|
||||
const std::vector<std::string> &content,
|
||||
bool prepend, bool system);
|
||||
|
||||
|
|
Loading…
Reference in New Issue