Merge topic 'ninja-no-ranlib-windows'
ea598671 Run ranlib on archives only if the tool is available
This commit is contained in:
commit
8f3bd1f454
@ -676,7 +676,10 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules(
|
|||||||
i != archiveFinishCommands.end(); ++i) {
|
i != archiveFinishCommands.end(); ++i) {
|
||||||
std::string cmd = *i;
|
std::string cmd = *i;
|
||||||
this->LocalGenerator->ExpandRuleVariables(cmd, vars);
|
this->LocalGenerator->ExpandRuleVariables(cmd, vars);
|
||||||
real_link_commands.push_back(cmd);
|
// If there is no ranlib the command will be ":". Skip it.
|
||||||
|
if (!cmd.empty() && cmd[0] != ':') {
|
||||||
|
real_link_commands.push_back(cmd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Get the set of commands.
|
// Get the set of commands.
|
||||||
|
@ -144,6 +144,14 @@ std::string cmNinjaNormalTargetGenerator::LanguageLinkerRule() const
|
|||||||
this->GetGeneratorTarget()->GetName());
|
this->GetGeneratorTarget()->GetName());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
struct cmNinjaRemoveNoOpCommands
|
||||||
|
{
|
||||||
|
bool operator()(std::string const& cmd)
|
||||||
|
{
|
||||||
|
return cmd.empty() || cmd[0] == ':';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void cmNinjaNormalTargetGenerator::WriteLinkRule(bool useResponseFile)
|
void cmNinjaNormalTargetGenerator::WriteLinkRule(bool useResponseFile)
|
||||||
{
|
{
|
||||||
cmState::TargetType targetType = this->GetGeneratorTarget()->GetType();
|
cmState::TargetType targetType = this->GetGeneratorTarget()->GetType();
|
||||||
@ -231,6 +239,13 @@ void cmNinjaNormalTargetGenerator::WriteLinkRule(bool useResponseFile)
|
|||||||
i != linkCmds.end(); ++i) {
|
i != linkCmds.end(); ++i) {
|
||||||
this->GetLocalGenerator()->ExpandRuleVariables(*i, vars);
|
this->GetLocalGenerator()->ExpandRuleVariables(*i, vars);
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
// If there is no ranlib the command will be ":". Skip it.
|
||||||
|
std::vector<std::string>::iterator newEnd = std::remove_if(
|
||||||
|
linkCmds.begin(), linkCmds.end(), cmNinjaRemoveNoOpCommands());
|
||||||
|
linkCmds.erase(newEnd, linkCmds.end());
|
||||||
|
}
|
||||||
|
|
||||||
linkCmds.insert(linkCmds.begin(), "$PRE_LINK");
|
linkCmds.insert(linkCmds.begin(), "$PRE_LINK");
|
||||||
linkCmds.push_back("$POST_BUILD");
|
linkCmds.push_back("$POST_BUILD");
|
||||||
std::string linkCmd =
|
std::string linkCmd =
|
||||||
|
Loading…
x
Reference in New Issue
Block a user