/* 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;
}
