浏览代码

Default install directory to 64-bit Program Files if appropriate

Closes gh-27
Thomas Kluyver 11 年之前
父节点
当前提交
19c9e6024e
共有 2 个文件被更改,包括 6 次插入10 次删除
  1. 1 0
      nsist/__init__.py
  2. 5 10
      nsist/template.nsi

+ 1 - 0
nsist/__init__.py

@@ -266,6 +266,7 @@ from {module} import {func}
                            'PY_VERSION': self.py_version,  # e.g. 3.4.1
                            'PY_VERSION': self.py_version,  # e.g. 3.4.1
                            'PY_MAJOR_VERSION': self.py_major_version,  #e.g. 3.4
                            'PY_MAJOR_VERSION': self.py_major_version,  #e.g. 3.4
                            'PY_QUALIFIER': self.py_qualifier,
                            'PY_QUALIFIER': self.py_qualifier,
+                           'BITNESS' : str(self.py_bitness),
                            'PRODUCT_ICON': os.path.basename(self.icon),
                            'PRODUCT_ICON': os.path.basename(self.icon),
                            'INSTALLER_NAME': self.installer_name,
                            'INSTALLER_NAME': self.installer_name,
                            'ARCH_TAG': '.amd64' if (self.py_bitness==64) else '',
                            'ARCH_TAG': '.amd64' if (self.py_bitness==64) else '',

+ 5 - 10
nsist/template.nsi

@@ -21,7 +21,7 @@ RequestExecutionLevel admin
 
 
 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
 Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
 OutFile "${INSTALLER_NAME}"
 OutFile "${INSTALLER_NAME}"
-InstallDir "$PROGRAMFILES\${PRODUCT_NAME}"
+InstallDir "$PROGRAMFILES${BITNESS}\${PRODUCT_NAME}"
 ShowInstDetails show
 ShowInstDetails show
 
 
 Section -SETTINGS
 Section -SETTINGS
@@ -29,17 +29,12 @@ Section -SETTINGS
   SetOverwrite ifnewer
   SetOverwrite ifnewer
 SectionEnd
 SectionEnd
 
 
-Var PyTargetDir
 Section "Python ${PY_VERSION}" sec_py
 Section "Python ${PY_VERSION}" sec_py
   File "python-${PY_VERSION}${ARCH_TAG}.msi"
   File "python-${PY_VERSION}${ARCH_TAG}.msi"
-  StrCmp "${ARCH_TAG}" ".amd64" 0 +4
-    StrCpy $PyTargetDir "$COMMONFILES64\Python\${PY_MAJOR_VERSION}"
-    DetailPrint "Installing Python ${PY_MAJOR_VERSION}, 64 bit"
-    Goto +3
-    StrCpy $PyTargetDir "$COMMONFILES32\Python\${PY_MAJOR_VERSION}"
-    DetailPrint "Installing Python ${PY_MAJOR_VERSION}, 32 bit"
-  ExecWait 'msiexec /i "$INSTDIR\python-${PY_VERSION}${ARCH_TAG}.msi" /qb ALLUSERS=1 TARGETDIR="$PyTargetDir"'
-  Delete $INSTDIR\python-${PY_VERSION}.msi
+  DetailPrint "Installing Python ${PY_MAJOR_VERSION}, ${BITNESS} bit"
+  ExecWait 'msiexec /i "$INSTDIR\python-${PY_VERSION}${ARCH_TAG}.msi" \
+            /qb ALLUSERS=1 TARGETDIR="$COMMONFILES${BITNESS}\Python\${PY_MAJOR_VERSION}"'
+  Delete $INSTDIR\python-${PY_VERSION}${ARCH_TAG}.msi
 SectionEnd
 SectionEnd
 
 
 ;PYLAUNCHER_INSTALL
 ;PYLAUNCHER_INSTALL