From 2f87b38e2e6cd6ad5eef03684153ffe1a423277d Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 21 Jan 2014 12:01:37 +0100 Subject: [PATCH] Adapt Windows installer for 64 bit --- Makefile.am | 2 +- configure.ac | 6 ++++++ share/setup.nsi.in | 24 ++++++++++++++++++++---- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/Makefile.am b/Makefile.am index 243166b3f7..98e3fef051 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,7 +6,7 @@ GZIP_ENV="-9n" BITCOIND_BIN=$(top_builddir)/src/bitcoind$(EXEEXT) BITCOIN_QT_BIN=$(top_builddir)/src/qt/bitcoin-qt$(EXEEXT) -BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win32-setup$(EXEEXT) +BITCOIN_WIN_INSTALLER=$(PACKAGE)-$(PACKAGE_VERSION)-win$(WINDOWS_BITS)-setup$(EXEEXT) OSX_APP=Bitcoin-Qt.app OSX_DMG=Bitcoin-Qt.dmg diff --git a/configure.ac b/configure.ac index 973f4398df..d4ca3b1c20 100644 --- a/configure.ac +++ b/configure.ac @@ -193,6 +193,12 @@ case $host in if test "x$CXXFLAGS_overridden" = "xno"; then CXXFLAGS="$CXXFLAGS -w" fi + case $host in + i?86-*) WINDOWS_BITS=32 ;; + x86_64-*) WINDOWS_BITS=64 ;; + *) AC_MSG_ERROR("Could not determine win32/win64 for installer") ;; + esac + AC_SUBST(WINDOWS_BITS) ;; *darwin*) TARGET_OS=darwin diff --git a/share/setup.nsi.in b/share/setup.nsi.in index dd37862382..d29d957154 100644 --- a/share/setup.nsi.in +++ b/share/setup.nsi.in @@ -1,4 +1,4 @@ -Name @PACKAGE_NAME@ +Name "@PACKAGE_NAME@ (@WINDOWS_BITS@-bit)" RequestExecutionLevel highest SetCompressor /SOLID lzma @@ -6,7 +6,7 @@ SetCompressor /SOLID lzma # General Symbol Definitions !define REGKEY "SOFTWARE\$(^Name)" !define VERSION @CLIENT_VERSION_MAJOR@.@CLIENT_VERSION_MINOR@.@CLIENT_VERSION_REVISION@ -!define COMPANY "Bitcoin project" +!define COMPANY "Bitcoin Core project" !define URL http://www.bitcoin.org/ # MUI Symbol Definitions @@ -28,6 +28,9 @@ SetCompressor /SOLID lzma # Included files !include Sections.nsh !include MUI2.nsh +!if "@WINDOWS_BITS@" == "64" +!include x64.nsh +!endif # Variables Var StartMenuGroup @@ -45,14 +48,18 @@ Var StartMenuGroup !insertmacro MUI_LANGUAGE English # Installer attributes -OutFile @abs_top_srcdir@/bitcoin-${VERSION}-win32-setup.exe +OutFile @abs_top_srcdir@/bitcoin-${VERSION}-win@WINDOWS_BITS@-setup.exe +!if "@WINDOWS_BITS@" == "64" +InstallDir $PROGRAMFILES64\Bitcoin +!else InstallDir $PROGRAMFILES\Bitcoin +!endif CRCCheck on XPStyle on BrandingText " " ShowInstDetails show VIProductVersion ${VERSION}.@CLIENT_VERSION_BUILD@ -VIAddVersionKey ProductName Bitcoin +VIAddVersionKey ProductName "Bitcoin Core" VIAddVersionKey ProductVersion "${VERSION}" VIAddVersionKey CompanyName "${COMPANY}" VIAddVersionKey CompanyWebsite "${URL}" @@ -152,6 +159,15 @@ SectionEnd # Installer functions Function .onInit InitPluginsDir +!if "@WINDOWS_BITS@" == "64" + ${If} ${RunningX64} + ; disable registry redirection (enable access to 64-bit portion of registry) + SetRegView 64 + ${Else} + MessageBox MB_OK|MB_ICONSTOP "Cannot install 64-bit version on a 32-bit system." + Abort + ${EndIf} +!endif FunctionEnd # Uninstaller functions