install: Write the entire installation manifest at once
Avoid a separate open/close for each file installed. Use a single file(WRITE) instead of a loop with file(APPEND).
This commit is contained in:
parent
99575c9ac1
commit
c48141744e
|
@ -1907,7 +1907,10 @@ protected:
|
|||
std::string Manifest;
|
||||
void ManifestAppend(std::string const& file)
|
||||
{
|
||||
this->Manifest += ";";
|
||||
if (!this->Manifest.empty())
|
||||
{
|
||||
this->Manifest += ";";
|
||||
}
|
||||
this->Manifest += file.substr(this->DestDirLength);
|
||||
}
|
||||
|
||||
|
|
|
@ -535,17 +535,12 @@ void cmLocalGenerator::GenerateInstallRules()
|
|||
"${CMAKE_INSTALL_COMPONENT}.txt\")\n"
|
||||
"else()\n"
|
||||
" set(CMAKE_INSTALL_MANIFEST \"install_manifest.txt\")\n"
|
||||
"endif()\n\n";
|
||||
fout
|
||||
<< "file(WRITE \""
|
||||
<< homedir << "/${CMAKE_INSTALL_MANIFEST}\" "
|
||||
<< "\"\")" << std::endl;
|
||||
fout
|
||||
<< "foreach(file ${CMAKE_INSTALL_MANIFEST_FILES})" << std::endl
|
||||
<< " file(APPEND \""
|
||||
<< homedir << "/${CMAKE_INSTALL_MANIFEST}\" "
|
||||
<< "\"${file}\\n\")" << std::endl
|
||||
<< "endforeach()" << std::endl;
|
||||
"endif()\n"
|
||||
"\n"
|
||||
"string(REPLACE \";\" \"\\n\" CMAKE_INSTALL_MANIFEST_CONTENT\n"
|
||||
" \"${CMAKE_INSTALL_MANIFEST_FILES}\")\n"
|
||||
"file(WRITE \"" << homedir << "/${CMAKE_INSTALL_MANIFEST}\"\n"
|
||||
" \"${CMAKE_INSTALL_MANIFEST_CONTENT}\")\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue