BUG: Fix for issue #7470. Allow spaces in the path names of installed files with the NSIS CPack generator and component-based installs. Add an installed file to the CPackComponents test: it failed before the fix; now it passes.
This commit is contained in:
parent
7f92b77997
commit
03c940aeb3
|
@ -793,20 +793,25 @@ CreateComponentDescription(cmCPackComponent *component,
|
||||||
macrosOut << " IntCmp $" << component->Name << "_was_installed 0 noremove_"
|
macrosOut << " IntCmp $" << component->Name << "_was_installed 0 noremove_"
|
||||||
<< component->Name << "\n";
|
<< component->Name << "\n";
|
||||||
std::vector<std::string>::iterator pathIt;
|
std::vector<std::string>::iterator pathIt;
|
||||||
for (pathIt = component->Files.begin();
|
std::string path;
|
||||||
pathIt != component->Files.end();
|
for (pathIt = component->Files.begin();
|
||||||
++pathIt)
|
pathIt != component->Files.end();
|
||||||
|
++pathIt)
|
||||||
{
|
{
|
||||||
macrosOut << " Delete \"$INSTDIR\\"
|
path = *pathIt;
|
||||||
<< cmSystemTools::ConvertToWindowsOutputPath(pathIt->c_str())
|
cmSystemTools::ReplaceString(path, "/", "\\");
|
||||||
|
macrosOut << " Delete \"$INSTDIR\\"
|
||||||
|
<< path.c_str()
|
||||||
<< "\"\n";
|
<< "\"\n";
|
||||||
}
|
}
|
||||||
for (pathIt = component->Directories.begin();
|
for (pathIt = component->Directories.begin();
|
||||||
pathIt != component->Directories.end();
|
pathIt != component->Directories.end();
|
||||||
++pathIt)
|
++pathIt)
|
||||||
{
|
{
|
||||||
macrosOut << " RMDir \"$INSTDIR\\"
|
path = *pathIt;
|
||||||
<< cmSystemTools::ConvertToWindowsOutputPath(pathIt->c_str())
|
cmSystemTools::ReplaceString(path, "/", "\\");
|
||||||
|
macrosOut << " RMDir \"$INSTDIR\\"
|
||||||
|
<< path.c_str()
|
||||||
<< "\"\n";
|
<< "\"\n";
|
||||||
}
|
}
|
||||||
macrosOut << " noremove_" << component->Name << ":\n";
|
macrosOut << " noremove_" << component->Name << ":\n";
|
||||||
|
|
|
@ -39,6 +39,9 @@ install(TARGETS mylibapp
|
||||||
install(FILES mylib.h
|
install(FILES mylib.h
|
||||||
DESTINATION include
|
DESTINATION include
|
||||||
COMPONENT headers)
|
COMPONENT headers)
|
||||||
|
install(FILES "Issue 7470.html"
|
||||||
|
DESTINATION docs
|
||||||
|
COMPONENT documentation)
|
||||||
|
|
||||||
if(mylib_install_to_absolute_path)
|
if(mylib_install_to_absolute_path)
|
||||||
install(FILES mylib.cpp
|
install(FILES mylib.cpp
|
||||||
|
@ -77,6 +80,11 @@ cpack_add_component(applications
|
||||||
DESCRIPTION "An extremely useful application that makes use of MyLib"
|
DESCRIPTION "An extremely useful application that makes use of MyLib"
|
||||||
GROUP Runtime
|
GROUP Runtime
|
||||||
INSTALL_TYPES Full)
|
INSTALL_TYPES Full)
|
||||||
|
cpack_add_component(documentation
|
||||||
|
DISPLAY_NAME "MyLib Documentation"
|
||||||
|
DESCRIPTION "The extensive suite of MyLib Application documentation files"
|
||||||
|
GROUP Runtime
|
||||||
|
INSTALL_TYPES Full)
|
||||||
cpack_add_component(libraries
|
cpack_add_component(libraries
|
||||||
DISPLAY_NAME "Libraries"
|
DISPLAY_NAME "Libraries"
|
||||||
DESCRIPTION "Static libraries used to build programs with MyLib"
|
DESCRIPTION "Static libraries used to build programs with MyLib"
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
<html>
|
||||||
|
<body>
|
||||||
|
The install rule for this file demonstrates the problem described in<br/>
|
||||||
|
CMake issue #7470:<br/>
|
||||||
|
<br/>
|
||||||
|
<a href="http://public.kitware.com/Bug/view.php?id=7470">
|
||||||
|
http://public.kitware.com/Bug/view.php?id=7470</a><br/>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in New Issue