cmArchiveWrite: Remove ./ suffix from zip archives

Fixes: #20238
This commit is contained in:
Cristian Adam
2020-01-26 22:26:51 +01:00
parent 55ea8f6b1b
commit 830a7d8803

View File

@@ -200,8 +200,10 @@ bool cmArchiveWrite::Add(std::string path, size_t skip, const char* prefix,
bool cmArchiveWrite::AddPath(const char* path, size_t skip, const char* prefix,
bool recursive)
{
if (!this->AddFile(path, skip, prefix)) {
return false;
if (strcmp(path, ".") != 0 || this->Format != "zip") {
if (!this->AddFile(path, skip, prefix)) {
return false;
}
}
if ((!cmSystemTools::FileIsDirectory(path) || !recursive) ||
cmSystemTools::FileIsSymlink(path)) {
@@ -210,6 +212,9 @@ bool cmArchiveWrite::AddPath(const char* path, size_t skip, const char* prefix,
cmsys::Directory d;
if (d.Load(path)) {
std::string next = cmStrCat(path, '/');
if (next == "./" && this->Format == "zip") {
next.clear();
}
std::string::size_type end = next.size();
unsigned long n = d.GetNumberOfFiles();
for (unsigned long i = 0; i < n; ++i) {