diff options
author | Robert Goulet <robert.goulet@autodesk.com> | 2015-02-26 19:18:04 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-02-26 20:04:07 (GMT) |
commit | c48141744e7b14940dc55ec98da631c4d2356dd7 (patch) | |
tree | 620ee7c35bd8e2144edba07cc4b96f0edd1277dc /Source | |
parent | 99575c9ac114e6f5d388e1ee7b9a3f788d773c9e (diff) | |
download | CMake-c48141744e7b14940dc55ec98da631c4d2356dd7.zip CMake-c48141744e7b14940dc55ec98da631c4d2356dd7.tar.gz CMake-c48141744e7b14940dc55ec98da631c4d2356dd7.tar.bz2 |
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).
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmFileCommand.cxx | 5 | ||||
-rw-r--r-- | Source/cmLocalGenerator.cxx | 17 |
2 files changed, 10 insertions, 12 deletions
diff --git a/Source/cmFileCommand.cxx b/Source/cmFileCommand.cxx index 579e715..d994659 100644 --- a/Source/cmFileCommand.cxx +++ b/Source/cmFileCommand.cxx @@ -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); } diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 7ca7684..d9dcad4 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -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"; } } |