diff options
Diffstat (limited to 'Source/CPack/cmCPackComponentGroup.cxx')
-rw-r--r-- | Source/CPack/cmCPackComponentGroup.cxx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/Source/CPack/cmCPackComponentGroup.cxx b/Source/CPack/cmCPackComponentGroup.cxx new file mode 100644 index 0000000..f888a5f --- /dev/null +++ b/Source/CPack/cmCPackComponentGroup.cxx @@ -0,0 +1,31 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmCPackComponentGroup.h" + +#include "cmSystemTools.h" + +#include <string> + +unsigned long cmCPackComponent::GetInstalledSize( + const std::string& installDir) const +{ + if (this->TotalSize != 0) { + return this->TotalSize; + } + + for (std::string const& file : this->Files) { + std::string path = installDir; + path += '/'; + path += file; + this->TotalSize += cmSystemTools::FileLength(path); + } + + return this->TotalSize; +} + +unsigned long cmCPackComponent::GetInstalledSizeInKbytes( + const std::string& installDir) const +{ + unsigned long result = (GetInstalledSize(installDir) + 512) / 1024; + return result ? result : 1; +} |