mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
Merge branch 'touch-after-ranlib' into release-3.14
Merge-request: !3283
This commit is contained in:
@@ -537,6 +537,20 @@ std::vector<std::string> cmNinjaNormalTargetGenerator::ComputeLinkCmd()
|
||||
std::string const& linkCmd = mf->GetRequiredDefinition(linkCmdVar);
|
||||
cmSystemTools::ExpandListArgument(linkCmd, linkCmds);
|
||||
}
|
||||
#ifdef __APPLE__
|
||||
// On macOS ranlib truncates the fractional part of the static archive
|
||||
// file modification time. If the archive and at least one contained
|
||||
// object file were created within the same second this will make look
|
||||
// the archive older than the object file. On subsequent ninja runs this
|
||||
// leads to re-achiving and updating dependent targets.
|
||||
// As a work-around we touch the archive after ranlib (see #19222).
|
||||
{
|
||||
std::string cmakeCommand =
|
||||
this->GetLocalGenerator()->ConvertToOutputFormat(
|
||||
cmSystemTools::GetCMakeCommand(), cmOutputConverter::SHELL);
|
||||
linkCmds.push_back(cmakeCommand + " -E touch $TARGET_FILE");
|
||||
}
|
||||
#endif
|
||||
return linkCmds;
|
||||
}
|
||||
case cmStateEnums::SHARED_LIBRARY:
|
||||
|
||||
Reference in New Issue
Block a user