CPack/NSIS: Add support for 64-bit NSIS (#13203)
This commit is contained in:
parent
51da766a6d
commit
6ff730a498
|
@ -61,6 +61,8 @@ cmCPackGeneratorFactory::cmCPackGeneratorFactory()
|
|||
{
|
||||
this->RegisterGenerator("NSIS", "Null Soft Installer",
|
||||
cmCPackNSISGenerator::CreateGenerator);
|
||||
this->RegisterGenerator("NSIS64", "Null Soft Installer (64-bit)",
|
||||
cmCPackNSISGenerator::CreateGenerator64);
|
||||
}
|
||||
#ifdef __CYGWIN__
|
||||
if (cmCPackCygwinBinaryGenerator::CanGenerate())
|
||||
|
|
|
@ -33,8 +33,9 @@
|
|||
#endif
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
cmCPackNSISGenerator::cmCPackNSISGenerator()
|
||||
cmCPackNSISGenerator::cmCPackNSISGenerator(bool nsis64)
|
||||
{
|
||||
Nsis64 = nsis64;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
@ -359,6 +360,21 @@ int cmCPackNSISGenerator::InitializeInternal()
|
|||
bool gotRegValue = false;
|
||||
|
||||
#ifdef _WIN32
|
||||
if (Nsis64)
|
||||
{
|
||||
if ( !gotRegValue && cmsys::SystemTools::ReadRegistryValue(
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS\\Unicode", nsisPath,
|
||||
cmsys::SystemTools::KeyWOW64_64) )
|
||||
{
|
||||
gotRegValue = true;
|
||||
}
|
||||
if ( !gotRegValue && cmsys::SystemTools::ReadRegistryValue(
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS", nsisPath,
|
||||
cmsys::SystemTools::KeyWOW64_64) )
|
||||
{
|
||||
gotRegValue = true;
|
||||
}
|
||||
}
|
||||
if ( !gotRegValue && cmsys::SystemTools::ReadRegistryValue(
|
||||
"HKEY_LOCAL_MACHINE\\SOFTWARE\\NSIS\\Unicode", nsisPath,
|
||||
cmsys::SystemTools::KeyWOW64_32) )
|
||||
|
|
|
@ -27,10 +27,13 @@ class cmCPackNSISGenerator : public cmCPackGenerator
|
|||
public:
|
||||
cmCPackTypeMacro(cmCPackNSISGenerator, cmCPackGenerator);
|
||||
|
||||
static cmCPackGenerator* CreateGenerator64()
|
||||
{ return new cmCPackNSISGenerator(true); }
|
||||
|
||||
/**
|
||||
* Construct generator
|
||||
*/
|
||||
cmCPackNSISGenerator();
|
||||
cmCPackNSISGenerator(bool nsis64 = false);
|
||||
virtual ~cmCPackNSISGenerator();
|
||||
|
||||
protected:
|
||||
|
@ -77,6 +80,8 @@ protected:
|
|||
/// Translations any newlines found in the string into \\r\\n, so that the
|
||||
/// resulting string can be used within NSIS.
|
||||
static std::string TranslateNewlines(std::string str);
|
||||
|
||||
bool Nsis64;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue