summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@gmail.com>2020-01-26 21:26:51 (GMT)
committerCristian Adam <cristian.adam@gmail.com>2020-01-27 15:53:46 (GMT)
commit830a7d88032822a7a1601735ac013999fff53b9a (patch)
treeacf904b3fbc24ce8423ca78b683847a93d4694d2 /Source
parent55ea8f6b1b3756de32334d80ea000f21ddc4d5c7 (diff)
downloadCMake-830a7d88032822a7a1601735ac013999fff53b9a.zip
CMake-830a7d88032822a7a1601735ac013999fff53b9a.tar.gz
CMake-830a7d88032822a7a1601735ac013999fff53b9a.tar.bz2
cmArchiveWrite: Remove ./ suffix from zip archives
Fixes: #20238
Diffstat (limited to 'Source')
-rw-r--r--Source/cmArchiveWrite.cxx9
1 files changed, 7 insertions, 2 deletions
diff --git a/Source/cmArchiveWrite.cxx b/Source/cmArchiveWrite.cxx
index e5eea79..f8d1aa7 100644
--- a/Source/cmArchiveWrite.cxx
+++ b/Source/cmArchiveWrite.cxx
@@ -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) {