From 12123b5b6bc460b3ec6d88d72a62da31d69ea37b Mon Sep 17 00:00:00 2001 From: Deniz Bahadir Date: Tue, 30 Apr 2024 18:36:25 +0200 Subject: [PATCH] cmCPackGenerator: Refactor copying of package files into own function --- Source/CPack/cmCPackGenerator.cxx | 43 +++++++++++++++++-------------- Source/CPack/cmCPackGenerator.h | 2 ++ 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index 38aa2ba598..8b584ae807 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -993,6 +993,29 @@ bool cmCPackGenerator::GenerateChecksumFile(cmCryptoHash& crypto, return true; } +bool cmCPackGenerator::CopyPackageFile(const std::string& srcFilePath, + cm::string_view filename) const +{ + std::string destFilePath = + cmStrCat(this->GetOption("CPACK_OUTPUT_FILE_PREFIX"), "/", filename); + cmCPackLogger(cmCPackLog::LOG_DEBUG, + "Copy final package(s): " + << (!srcFilePath.empty() ? srcFilePath : "(NULL)") << " to " + << (!destFilePath.empty() ? destFilePath : "(NULL)") + << std::endl); + if (!cmSystemTools::CopyFileIfDifferent(srcFilePath, destFilePath)) { + cmCPackLogger( + cmCPackLog::LOG_ERROR, + "Problem copying the package: " + << (!srcFilePath.empty() ? srcFilePath : "(NULL)") << " to " + << (!destFilePath.empty() ? destFilePath : "(NULL)") << std::endl); + return false; + } + cmCPackLogger(cmCPackLog::LOG_OUTPUT, + "- package: " << destFilePath << " generated." << std::endl); + return true; +} + bool cmCPackGenerator::ReadListFile(const char* moduleName) { bool retval; @@ -1172,28 +1195,10 @@ int cmCPackGenerator::DoPackage() << "]:" << std::endl); /* now copy package one by one */ for (std::string const& pkgFileName : this->packageFileNames) { - std::string tmpPF(this->GetOption("CPACK_OUTPUT_FILE_PREFIX")); std::string filename(cmSystemTools::GetFilenameName(pkgFileName)); - tempPackageFileName = cmValue(pkgFileName); - tmpPF += "/" + filename; - const char* packageFileName = tmpPF.c_str(); - cmCPackLogger(cmCPackLog::LOG_DEBUG, - "Copy final package(s): " - << (tempPackageFileName ? *tempPackageFileName : "(NULL)") - << " to " << (packageFileName ? packageFileName : "(NULL)") - << std::endl); - if (!cmSystemTools::CopyFileIfDifferent(pkgFileName, tmpPF)) { - cmCPackLogger( - cmCPackLog::LOG_ERROR, - "Problem copying the package: " - << (tempPackageFileName ? *tempPackageFileName : "(NULL)") << " to " - << (packageFileName ? packageFileName : "(NULL)") << std::endl); + if (!this->CopyPackageFile(pkgFileName, filename)) { return 0; } - cmCPackLogger(cmCPackLog::LOG_OUTPUT, - "- package: " << packageFileName << " generated." - << std::endl); - /* Generate checksum file */ if (crypto) { if (!this->GenerateChecksumFile(*crypto, filename)) { diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h index be945c40a2..c9af776ffb 100644 --- a/Source/CPack/cmCPackGenerator.h +++ b/Source/CPack/cmCPackGenerator.h @@ -185,6 +185,8 @@ protected: bool GenerateChecksumFile(cmCryptoHash& crypto, cm::string_view filename) const; + bool CopyPackageFile(const std::string& srcFilePath, + cm::string_view filename) const; std::string FindTemplate(cm::string_view name, cm::optional alt = cm::nullopt);