summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-01-11 20:48:24 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2011-01-11 20:48:24 (GMT)
commit3272d2d96fc047cbee7610ec8747f21f57752c1e (patch)
treef9e8b2fd45227579c0302985135240ce4b707ef2 /Source
parent7ebfa8218b58d0b835fa23a6e40afe8043a17d7e (diff)
parent1bbe4e69171f3155f262bb12f15437db4b71c207 (diff)
downloadCMake-3272d2d96fc047cbee7610ec8747f21f57752c1e.zip
CMake-3272d2d96fc047cbee7610ec8747f21f57752c1e.tar.gz
CMake-3272d2d96fc047cbee7610ec8747f21f57752c1e.tar.bz2
Merge topic 'fix-10644-cpack-menu-links'
1bbe4e6 CPack: Detect more URLs in CPACK_NSIS_MENU_LINKS (#10644)
Diffstat (limited to 'Source')
-rw-r--r--Source/CPack/cmCPackNSISGenerator.cxx31
1 files changed, 19 insertions, 12 deletions
diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx
index 97885d5..e5fe575 100644
--- a/Source/CPack/cmCPackNSISGenerator.cxx
+++ b/Source/CPack/cmCPackNSISGenerator.cxx
@@ -461,12 +461,14 @@ int cmCPackNSISGenerator::InitializeInternal()
cmCPackLogger(cmCPackLog::LOG_DEBUG, "CPACK_CREATE_DESKTOP_LINKS: "
<< "not set" << std::endl);
}
+
+ cmOStringStream str;
+ cmOStringStream deleteStr;
+
if ( cpackPackageExecutables )
{
cmCPackLogger(cmCPackLog::LOG_DEBUG, "The cpackPackageExecutables: "
<< cpackPackageExecutables << "." << std::endl);
- cmOStringStream str;
- cmOStringStream deleteStr;
std::vector<std::string> cpackPackageExecutablesVector;
cmSystemTools::ExpandListArgument(cpackPackageExecutables,
cpackPackageExecutablesVector);
@@ -509,11 +511,13 @@ int cmCPackNSISGenerator::InitializeInternal()
<< ".lnk\"" << std::endl;
}
}
- this->CreateMenuLinks(str, deleteStr);
- this->SetOptionIfNotSet("CPACK_NSIS_CREATE_ICONS", str.str().c_str());
- this->SetOptionIfNotSet("CPACK_NSIS_DELETE_ICONS",
- deleteStr.str().c_str());
}
+
+ this->CreateMenuLinks(str, deleteStr);
+ this->SetOptionIfNotSet("CPACK_NSIS_CREATE_ICONS", str.str().c_str());
+ this->SetOptionIfNotSet("CPACK_NSIS_DELETE_ICONS",
+ deleteStr.str().c_str());
+
this->SetOptionIfNotSet("CPACK_NSIS_COMPRESSOR", "lzma");
return this->Superclass::InitializeInternal();
@@ -542,22 +546,25 @@ void cmCPackNSISGenerator::CreateMenuLinks( cmOStringStream& str,
"<icon name>." << std::endl);
return;
}
+
+ cmsys::RegularExpression urlRegex;
+ urlRegex.compile("^(mailto:|(ftps?|https?|news)://).*$");
+
std::vector<std::string>::iterator it;
for ( it = cpackMenuLinksVector.begin();
it != cpackMenuLinksVector.end();
++it )
{
std::string sourceName = *it;
- bool url = false;
- if(sourceName.find("http:") == 0)
- {
- url = true;
- }
- /* convert / to \\ */
+ const bool url = urlRegex.find(sourceName);
+
+ // Convert / to \ in filenames, but not in urls:
+ //
if(!url)
{
cmSystemTools::ReplaceString(sourceName, "/", "\\");
}
+
++ it;
std::string linkName = *it;
if(!url)