Merge topic 'fix-8210-find-makensis-in-path'

cd9aa73 CPack: look for makensis in the PATH (#8210)
This commit is contained in:
Brad King 2010-12-21 13:59:58 -05:00 committed by CMake Topic Stage
commit 17025ebda1
1 changed files with 23 additions and 9 deletions

View File

@ -337,6 +337,7 @@ int cmCPackNSISGenerator::InitializeInternal()
<< std::endl);
std::vector<std::string> path;
std::string nsisPath;
bool gotRegValue = true;
#ifdef _WIN32
if ( !cmsys::SystemTools::ReadRegistryValue(
@ -346,24 +347,37 @@ int cmCPackNSISGenerator::InitializeInternal()
if ( !cmsys::SystemTools::ReadRegistryValue(
"HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS", nsisPath) )
{
cmCPackLogger
(cmCPackLog::LOG_ERROR,
"Cannot find NSIS registry value. This is usually caused by NSIS "
"not being installed. Please install NSIS from "
"http://nsis.sourceforge.net"
<< std::endl);
return 0;
gotRegValue = false;
}
}
path.push_back(nsisPath);
if (gotRegValue)
{
path.push_back(nsisPath);
}
#endif
nsisPath = cmSystemTools::FindProgram("makensis", path, false);
if ( nsisPath.empty() )
{
cmCPackLogger(cmCPackLog::LOG_ERROR, "Cannot find NSIS compiler"
cmCPackLogger(cmCPackLog::LOG_ERROR,
"Cannot find NSIS compiler makensis: likely it is not installed, "
"or not in your PATH"
<< std::endl);
if (!gotRegValue)
{
cmCPackLogger(cmCPackLog::LOG_ERROR,
"Could not read NSIS registry value. This is usually caused by "
"NSIS not being installed. Please install NSIS from "
"http://nsis.sourceforge.net"
<< std::endl);
}
return 0;
}
std::string nsisCmd = "\"" + nsisPath + "\" " NSIS_OPT "VERSION";
cmCPackLogger(cmCPackLog::LOG_VERBOSE, "Test NSIS version: "
<< nsisCmd.c_str() << std::endl);