Improved windows installer scripts from Steve.
svn: r8592
This commit is contained in:
parent
5d4434fda0
commit
5ccf7a65df
@ -56,14 +56,19 @@ rem *****************************************************
|
|||||||
rem * MAKE ALL ADJUSTMENTS IN THIS SECTION! *
|
rem * MAKE ALL ADJUSTMENTS IN THIS SECTION! *
|
||||||
|
|
||||||
rem version (also used for location
|
rem version (also used for location
|
||||||
set VERSION=2
|
set VERSION=0
|
||||||
set VERSIONSUB=1
|
set VERSIONSUB=0
|
||||||
set VERSIONPT=90
|
set VERSIONPT=0
|
||||||
|
set VERSIONBUILD=0
|
||||||
|
|
||||||
rem path to Nullsoft Installer (NSIS)
|
rem path to Nullsoft Installer (NSIS)
|
||||||
set NSIS=C:\PROGRA~1\NSIS
|
set NSIS=C:\PROGRA~1\NSIS
|
||||||
rem path to Nullsoft customized files
|
rem path to Nullsoft customized files
|
||||||
set NSISFIXES=C:\DOCUME~1\HALLS~1.PER\_seh\devel\gramps
|
set CUSTOM=C:\DOCUME~1\HALLS~1.PER\_seh\devel\gramps
|
||||||
|
|
||||||
|
rem path to Python
|
||||||
|
if "%PYTHONPATH%"=="" echo Manually setting $PYTHONPATH...
|
||||||
|
if "%PYTHONPATH%"=="" set PYTHONPATH=C:\Python25
|
||||||
|
|
||||||
rem * END OF ADJUSTMENTS SECTION *
|
rem * END OF ADJUSTMENTS SECTION *
|
||||||
rem ******************************************************
|
rem ******************************************************
|
||||||
@ -94,7 +99,7 @@ echo.
|
|||||||
echo %%BUILDPATH%% : %BUILDPATH%
|
echo %%BUILDPATH%% : %BUILDPATH%
|
||||||
echo %%VERSIONNAME%% : %VERSIONNAME%
|
echo %%VERSIONNAME%% : %VERSIONNAME%
|
||||||
echo %%NSIS%% : %NSIS%
|
echo %%NSIS%% : %NSIS%
|
||||||
echo %%NSISFIXES%% : %NSISFIXES%
|
echo %%CUSTOM%% : %CUSTOM%
|
||||||
|
|
||||||
rem date
|
rem date
|
||||||
for /F "TOKENS=1* DELIMS= " %%A in ('date/t') do set MYDAYNAME=%%A
|
for /F "TOKENS=1* DELIMS= " %%A in ('date/t') do set MYDAYNAME=%%A
|
||||||
@ -107,6 +112,7 @@ rem time
|
|||||||
for /F "TOKENS=2* DELIMS=: " %%A in ('time/t') do set MYMINUTE=%%A
|
for /F "TOKENS=2* DELIMS=: " %%A in ('time/t') do set MYMINUTE=%%A
|
||||||
echo Date : %MYYEAR%-%MYMONTH%-%MYDAY%
|
echo Date : %MYYEAR%-%MYMONTH%-%MYDAY%
|
||||||
echo Time : %MYHOUR%:%MYMINUTE%
|
echo Time : %MYHOUR%:%MYMINUTE%
|
||||||
|
echo Build version : %VERSIONBUILD%
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
set TRY=gzip.exe
|
set TRY=gzip.exe
|
||||||
@ -152,7 +158,7 @@ rem CHOOSE {{{1
|
|||||||
cls
|
cls
|
||||||
echo.
|
echo.
|
||||||
echo ______________________________________________________________________________
|
echo ______________________________________________________________________________
|
||||||
echo Updated: 2006-07-10
|
echo Updated: 2007-06-18 07:09:16-0400
|
||||||
echo.
|
echo.
|
||||||
echo Please select a choice:
|
echo Please select a choice:
|
||||||
echo.
|
echo.
|
||||||
@ -245,12 +251,40 @@ echo.
|
|||||||
rem TODO: This should happen on the user's machine, since the process
|
rem TODO: This should happen on the user's machine, since the process
|
||||||
rem apparently embeds a number of paths into the result.
|
rem apparently embeds a number of paths into the result.
|
||||||
|
|
||||||
rem cd "%BUILDPATH%\%VERSIONNAME%"
|
echo.
|
||||||
rem
|
echo Translations...
|
||||||
rem python grampsSetup.py -c
|
echo.
|
||||||
|
|
||||||
|
rem TODO: Brian's script doesn't work for me...
|
||||||
|
rem cd "%BUILDPATH%\%VERSIONNAME%"
|
||||||
|
rem if exist "%CUSTOM%\grampsSetup.py" copy /Y "%CUSTOM%\grampsSetup.py" "%BUILDPATH%\%VERSIONNAME%"
|
||||||
|
rem if exist "%CUSTOM%\grampsSetup.py" echo Setting up language files (this could take a while)...
|
||||||
|
rem rem Use Brian's grampsSetup.py utility...
|
||||||
|
rem rem switches:
|
||||||
|
rem rem -r :: release
|
||||||
|
rem rem -c :: compile
|
||||||
|
rem rem -t :: set up the language files
|
||||||
|
rem rem Note: we use only "-t", we don't want to compile
|
||||||
|
rem if exist "%CUSTOM%\grampsSetup.py" python grampsSetup.py -t
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo Setting up language files...
|
||||||
|
echo.
|
||||||
|
cd "%BUILDPATH%\%VERSIONNAME%\po"
|
||||||
|
rem create the directories
|
||||||
|
for %%A in (*.po) do if not exist lang\%%~nA\LC_MESSAGES mkdir lang\%%~nA\LC_MESSAGES
|
||||||
|
rem convert .po to gramps.mo (in directories)
|
||||||
|
for %%A in (*.po) do %PYTHONPATH%\python %PYTHONPATH%\Tools\i18n\msgfmt.py -o lang\%%~nA\LC_MESSAGES\gramps.mo %%A & echo processing language %%~nA...
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo Attempting to update build level in const.py to "%VERSIONBUILD%"...
|
||||||
|
echo.
|
||||||
|
cd "%BUILDPATH%\%VERSIONNAME%\src"
|
||||||
|
sed -i -e "s/^\(version \s\+= \"%VERSION%\.%VERSIONSUB%\.%VERSIONPT%-\).\+\"/\1%VERSIONBUILD%\"/g" const.py
|
||||||
|
rem ren sedDOSSUX const.py
|
||||||
|
|
||||||
if not "%RETURN%"=="no" echo.
|
if not "%RETURN%"=="no" echo.
|
||||||
if not "%RETURN%"=="no" echo Nothing to do. (Build occurs on target on first run.)
|
if not "%RETURN%"=="no" echo Did we enjoy building?
|
||||||
if not "%RETURN%"=="no" pause
|
if not "%RETURN%"=="no" pause
|
||||||
if not "%RETURN%"=="no" goto CHOOSE
|
if not "%RETURN%"=="no" goto CHOOSE
|
||||||
|
|
||||||
@ -272,15 +306,15 @@ echo copying customized NSIS files...
|
|||||||
rem copy /Y "%NSIS%\Contrib\Graphics\Icons\classic-install.ico" "%BUILDPATH%\%VERSIONNAME%\nsis\classic-install.ico"
|
rem copy /Y "%NSIS%\Contrib\Graphics\Icons\classic-install.ico" "%BUILDPATH%\%VERSIONNAME%\nsis\classic-install.ico"
|
||||||
rem copy /Y "%NSIS%\Contrib\Graphics\Icons\classic-uninstall.ico" "%BUILDPATH%\%VERSIONNAME%\nsis\classic-uninstall.ico"
|
rem copy /Y "%NSIS%\Contrib\Graphics\Icons\classic-uninstall.ico" "%BUILDPATH%\%VERSIONNAME%\nsis\classic-uninstall.ico"
|
||||||
rem copy /Y "%NSIS%\Contrib\Graphics\Header\win.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\win.bmp"
|
rem copy /Y "%NSIS%\Contrib\Graphics\Header\win.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\win.bmp"
|
||||||
rem if exist "%NSISFIXES%\nsis-splash.bmp" copy /Y "%NSISFIXES%\nsis-splash.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-splash.bmp"
|
rem if exist "%CUSTOM%\nsis-splash.bmp" copy /Y "%CUSTOM%\nsis-splash.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-splash.bmp"
|
||||||
rem if exist "%NSISFIXES%\nsis-checkboxes.bmp" copy /Y "%NSISFIXES%\nsis-checkboxes.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-checkboxes.bmp"
|
rem if exist "%CUSTOM%\nsis-checkboxes.bmp" copy /Y "%CUSTOM%\nsis-checkboxes.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-checkboxes.bmp"
|
||||||
|
|
||||||
rem TODO:
|
rem TODO:
|
||||||
echo copying temporary, should end up in 2.1.8(?)
|
echo copying temporary, should end up in next release (?)
|
||||||
if not exist "%BUILDPATH%\%VERSIONNAME%\nsis\CON" mkdir "%BUILDPATH%\%VERSIONNAME%\nsis"
|
if not exist "%BUILDPATH%\%VERSIONNAME%\nsis\CON" mkdir "%BUILDPATH%\%VERSIONNAME%\nsis"
|
||||||
if exist "%NSISFIXES%\gramps.nsi" copy /Y "%NSISFIXES%\gramps.nsi" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gramps.nsi"
|
if exist "%CUSTOM%\gramps.nsi" copy /Y "%CUSTOM%\gramps.nsi" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gramps.nsi"
|
||||||
if exist "%NSISFIXES%\ped24.ico" copy /Y "%NSISFIXES%\ped24.ico" /Y "%BUILDPATH%\%VERSIONNAME%\src\images\ped24.ico"
|
if exist "%CUSTOM%\ped24.ico" copy /Y "%CUSTOM%\ped24.ico" /Y "%BUILDPATH%\%VERSIONNAME%\src\images\ped24.ico"
|
||||||
if exist "%NSISFIXES%\gcheck.py" copy /Y "%NSISFIXES%\gcheck.py" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gcheck.py"
|
if exist "%CUSTOM%\gcheck.py" copy /Y "%CUSTOM%\gcheck.py" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gcheck.py"
|
||||||
|
|
||||||
echo building installer...
|
echo building installer...
|
||||||
cd "%BUILDPATH%\%VERSIONNAME%\nsis"
|
cd "%BUILDPATH%\%VERSIONNAME%\nsis"
|
||||||
@ -300,9 +334,13 @@ echo -----------------------------------------------------------------
|
|||||||
echo Removing existing installation
|
echo Removing existing installation
|
||||||
echo.
|
echo.
|
||||||
|
|
||||||
|
echo removing "%ProgramFiles%\gramps"
|
||||||
if exist "%ProgramFiles%\gramps" rmdir /s /q "%ProgramFiles%\gramps"
|
if exist "%ProgramFiles%\gramps" rmdir /s /q "%ProgramFiles%\gramps"
|
||||||
|
echo removing "%USERPROFILE%\Start Menu\Programs\GRAMPS"
|
||||||
if exist "%USERPROFILE%\Start Menu\Programs\GRAMPS" rmdir /s /q "%USERPROFILE%\Start Menu\Programs\GRAMPS"
|
if exist "%USERPROFILE%\Start Menu\Programs\GRAMPS" rmdir /s /q "%USERPROFILE%\Start Menu\Programs\GRAMPS"
|
||||||
|
echo removing "%TEMP%\gramps-install.ini"
|
||||||
if exist "%TEMP%\gramps-install.ini" del "%TEMP%\gramps-install.ini"
|
if exist "%TEMP%\gramps-install.ini" del "%TEMP%\gramps-install.ini"
|
||||||
|
echo removing "%TEMP%\gcheck.py"
|
||||||
if exist "%TEMP%\gcheck.py" del "%TEMP%\gcheck.py"
|
if exist "%TEMP%\gcheck.py" del "%TEMP%\gcheck.py"
|
||||||
|
|
||||||
if not "%RETURN%"=="no" echo.
|
if not "%RETURN%"=="no" echo.
|
||||||
@ -336,7 +374,7 @@ rem clear variables
|
|||||||
set MYDAYNAME=
|
set MYDAYNAME=
|
||||||
set MDY=
|
set MDY=
|
||||||
set NSIS=
|
set NSIS=
|
||||||
set NSISFIXES=
|
set CUSTOM=
|
||||||
rem set PATHORIG=
|
rem set PATHORIG=
|
||||||
set RETURN=
|
set RETURN=
|
||||||
set TRY=
|
set TRY=
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
# Filename: gramps.nsi
|
# Filename: gramps.nsi
|
||||||
#
|
#
|
||||||
# Description: Nullsoft Installer (NSIS) file to build Windows installer:
|
# Description: Nullsoft Installer (NSIS) file to build Windows installer:
|
||||||
# Updated: 2006-07-26 13:12:28-0400
|
# Updated: 2007-06-18 07:09:38-0400
|
||||||
# Author: Steve Hall [ digitect dancingpaper com ]
|
# Author: Steve Hall [ digitect dancingpaper com ]
|
||||||
#
|
#
|
||||||
# Requires: NSIS version 2.0 or later.
|
# Requires: NSIS version 2.0 or later.
|
||||||
@ -12,6 +12,16 @@
|
|||||||
# o WARNING: Except the uninstaller. That re-paths for some reason.
|
# o WARNING: Except the uninstaller. That re-paths for some reason.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# ToDo {{{1
|
||||||
|
#
|
||||||
|
# o Option to remove existing installation prior to installing new
|
||||||
|
# o More refined dependency checking (versioning)
|
||||||
|
# o Add .gramps and .gpkg as extensions
|
||||||
|
# * => Need separate icons for them?
|
||||||
|
# o Add uninstall to Windows XP manifest list
|
||||||
|
#
|
||||||
|
|
||||||
|
# 1}}}
|
||||||
# Installer Attributes
|
# Installer Attributes
|
||||||
# 0. Base Settings {{{1
|
# 0. Base Settings {{{1
|
||||||
|
|
||||||
@ -19,13 +29,14 @@
|
|||||||
!define GRAMPS_VER_MAJOR $%VERSION%
|
!define GRAMPS_VER_MAJOR $%VERSION%
|
||||||
!define GRAMPS_VER_MINOR $%VERSIONSUB%
|
!define GRAMPS_VER_MINOR $%VERSIONSUB%
|
||||||
!define GRAMPS_VER_POINT $%VERSIONPT%
|
!define GRAMPS_VER_POINT $%VERSIONPT%
|
||||||
|
!define GRAMPS_VER_BUILD $%VERSIONBUILD%
|
||||||
|
|
||||||
# adds Native Language Support
|
# adds Native Language Support
|
||||||
!define HAVE_NLS
|
!define HAVE_NLS
|
||||||
|
|
||||||
# output file
|
# output file
|
||||||
Name "GRAMPS"
|
Name "GRAMPS"
|
||||||
OutFile gramps-${GRAMPS_VER_MAJOR}.${GRAMPS_VER_MINOR}.${GRAMPS_VER_POINT}.exe
|
OutFile gramps-${GRAMPS_VER_MAJOR}.${GRAMPS_VER_MINOR}.${GRAMPS_VER_POINT}-${GRAMPS_VER_BUILD}.exe
|
||||||
|
|
||||||
# self ensure we don't have a corrupted file
|
# self ensure we don't have a corrupted file
|
||||||
CRCCheck on
|
CRCCheck on
|
||||||
@ -40,6 +51,8 @@ SetDatablockOptimize on
|
|||||||
# comment next line if you don't have UPX (http://upx.sourceforge.net)
|
# comment next line if you don't have UPX (http://upx.sourceforge.net)
|
||||||
!packhdr temp.dat "upx --best --compress-icons=0 temp.dat"
|
!packhdr temp.dat "upx --best --compress-icons=0 temp.dat"
|
||||||
|
|
||||||
|
SetOverwrite try
|
||||||
|
|
||||||
# don't allow installation into C:\
|
# don't allow installation into C:\
|
||||||
AllowRootDirInstall false
|
AllowRootDirInstall false
|
||||||
|
|
||||||
@ -72,7 +85,6 @@ SilentInstall normal
|
|||||||
# 1. Header file (Begin Modern User Interface) {{{1
|
# 1. Header file (Begin Modern User Interface) {{{1
|
||||||
!include "MUI.nsh"
|
!include "MUI.nsh"
|
||||||
|
|
||||||
|
|
||||||
# 2. Interface Configuration {{{1
|
# 2. Interface Configuration {{{1
|
||||||
|
|
||||||
# installer/uninstaller icons (these must match in size!)
|
# installer/uninstaller icons (these must match in size!)
|
||||||
@ -97,7 +109,7 @@ SilentInstall normal
|
|||||||
!define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(^DirBrowseText)
|
!define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(^DirBrowseText)
|
||||||
!define MUI_DIRECTORYPAGE_VERIFYONLEAVE
|
!define MUI_DIRECTORYPAGE_VERIFYONLEAVE
|
||||||
|
|
||||||
!define MUI_FINISHPAGE_RUN "python"
|
!define MUI_FINISHPAGE_RUN "$3"
|
||||||
!define MUI_FINISHPAGE_RUN_PARAMETERS "$\"$INSTDIR\gramps.py$\""
|
!define MUI_FINISHPAGE_RUN_PARAMETERS "$\"$INSTDIR\gramps.py$\""
|
||||||
|
|
||||||
!define MUI_ABORTWARNING
|
!define MUI_ABORTWARNING
|
||||||
@ -123,55 +135,50 @@ SilentInstall normal
|
|||||||
|
|
||||||
# 5. Language files {{{1
|
# 5. Language files {{{1
|
||||||
|
|
||||||
# Languages
|
# Latin1
|
||||||
# TODO: These are pretty badly broken at the moment.
|
|
||||||
# Note: This appears to be due to building on Win95 which does not
|
|
||||||
# support Unicode:
|
|
||||||
# (http://nsis.sf.net/archive/nsisweb.php?page=247&instances=0,235)
|
|
||||||
#
|
|
||||||
# So what happens if we use only ASCII?
|
|
||||||
#
|
|
||||||
#!insertmacro MUI_LANGUAGE "Arabic"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Bulgarian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Catalan"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Croatian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Czech"
|
|
||||||
!insertmacro MUI_LANGUAGE "Danish"
|
!insertmacro MUI_LANGUAGE "Danish"
|
||||||
#!insertmacro MUI_LANGUAGE "Default"
|
|
||||||
!insertmacro MUI_LANGUAGE "Dutch"
|
!insertmacro MUI_LANGUAGE "Dutch"
|
||||||
!insertmacro MUI_LANGUAGE "English"
|
!insertmacro MUI_LANGUAGE "English"
|
||||||
#!insertmacro MUI_LANGUAGE "Estonian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Farsi"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Finnish"
|
|
||||||
!insertmacro MUI_LANGUAGE "French"
|
!insertmacro MUI_LANGUAGE "French"
|
||||||
!insertmacro MUI_LANGUAGE "German"
|
!insertmacro MUI_LANGUAGE "German"
|
||||||
#!insertmacro MUI_LANGUAGE "Greek"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Hebrew"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Hungarian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Indonesian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Italian"
|
!insertmacro MUI_LANGUAGE "Italian"
|
||||||
#!insertmacro MUI_LANGUAGE "Japanese"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Korean"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Latvian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Lithuanian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Macedonian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Norwegian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Polish"
|
|
||||||
!insertmacro MUI_LANGUAGE "Portuguese"
|
!insertmacro MUI_LANGUAGE "Portuguese"
|
||||||
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
||||||
#!insertmacro MUI_LANGUAGE "Romanian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Russian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Serbian"
|
|
||||||
#!insertmacro MUI_LANGUAGE "SerbianLatin"
|
|
||||||
#!insertmacro MUI_LANGUAGE "SimpChinese"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Slovak"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Slovenian"
|
|
||||||
!insertmacro MUI_LANGUAGE "Spanish"
|
!insertmacro MUI_LANGUAGE "Spanish"
|
||||||
#!insertmacro MUI_LANGUAGE "Swedish"
|
|
||||||
#!insertmacro MUI_LANGUAGE "Thai"
|
# non-Latin1 below (bugs in NSIS?)
|
||||||
#!insertmacro MUI_LANGUAGE "TradChinese"
|
!insertmacro MUI_LANGUAGE "Arabic"
|
||||||
#!insertmacro MUI_LANGUAGE "Turkish"
|
!insertmacro MUI_LANGUAGE "Bulgarian"
|
||||||
#!insertmacro MUI_LANGUAGE "Ukrainian"
|
!insertmacro MUI_LANGUAGE "Catalan"
|
||||||
|
!insertmacro MUI_LANGUAGE "Croatian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Czech"
|
||||||
|
#!insertmacro MUI_LANGUAGE "Default" <= WHAT IS THIS?
|
||||||
|
!insertmacro MUI_LANGUAGE "Estonian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Farsi"
|
||||||
|
!insertmacro MUI_LANGUAGE "Finnish"
|
||||||
|
!insertmacro MUI_LANGUAGE "Greek"
|
||||||
|
!insertmacro MUI_LANGUAGE "Hebrew"
|
||||||
|
!insertmacro MUI_LANGUAGE "Hungarian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Indonesian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Japanese"
|
||||||
|
!insertmacro MUI_LANGUAGE "Korean"
|
||||||
|
!insertmacro MUI_LANGUAGE "Latvian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Lithuanian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Macedonian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Norwegian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Polish"
|
||||||
|
!insertmacro MUI_LANGUAGE "Romanian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Russian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Serbian"
|
||||||
|
!insertmacro MUI_LANGUAGE "SerbianLatin"
|
||||||
|
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||||
|
!insertmacro MUI_LANGUAGE "Slovak"
|
||||||
|
!insertmacro MUI_LANGUAGE "Slovenian"
|
||||||
|
!insertmacro MUI_LANGUAGE "Swedish"
|
||||||
|
!insertmacro MUI_LANGUAGE "Thai"
|
||||||
|
!insertmacro MUI_LANGUAGE "TradChinese"
|
||||||
|
!insertmacro MUI_LANGUAGE "Turkish"
|
||||||
|
!insertmacro MUI_LANGUAGE "Ukrainian"
|
||||||
|
|
||||||
# 6. Reserve Files {{{1
|
# 6. Reserve Files {{{1
|
||||||
|
|
||||||
@ -191,19 +198,25 @@ SectionIn 1 2 3 RO
|
|||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
# Icons, menus and shortcuts {{{1
|
# Menus and shortcuts {{{1
|
||||||
|
|
||||||
SubSection "Icons, menus and shortcuts" MenusAndIcons
|
SubSection "Menus and shortcuts" MenusAndIcons
|
||||||
|
|
||||||
Section "Add GRAMPS to the Start Menu" MenuStart
|
Section "Add GRAMPS to the Start Menu" MenuStart
|
||||||
SectionIn 1 3
|
SectionIn 1 3
|
||||||
# determines "Start In" location for shortcuts
|
# determines "Start In" location for shortcuts
|
||||||
SetOutPath $INSTDIR
|
SetOutPath $INSTDIR
|
||||||
|
|
||||||
|
StrCpy $0 "GRAMPS"
|
||||||
|
|
||||||
CreateDirectory "$SMPROGRAMS\GRAMPS\"
|
IfFileExists "$SMPROGRAMS\$0" 0 skipStartMenuRemove
|
||||||
CreateShortCut "$SMPROGRAMS\GRAMPS\GRAMPS.lnk" "$3" "$\"$INSTDIR\gramps.py$\"" "$INSTDIR\images\ped24.ico" "0" "" "" "GRAMPS"
|
RMDir /r "$SMPROGRAMS\$0\"
|
||||||
WriteINIStr "$SMPROGRAMS\GRAMPS\GRAMPS Website.url" "InternetShortcut" "URL" "http://www.gramps-project.org/"
|
skipStartMenuRemove:
|
||||||
CreateShortCut "$SMPROGRAMS\GRAMPS\Uninstall GRAMPS.lnk" "$\"$INSTDIR\uninstall.exe$\"" "" "" "0" "" "" "Uninstall GRAMPS"
|
|
||||||
|
CreateDirectory "$SMPROGRAMS\$0\"
|
||||||
|
CreateShortCut "$SMPROGRAMS\$0\GRAMPS ${GRAMPS_VER_MAJOR}.${GRAMPS_VER_MINOR}.${GRAMPS_VER_POINT}-${GRAMPS_VER_BUILD}.lnk" "$3" "$\"$INSTDIR\gramps.py$\"" "$INSTDIR\images\ped24.ico" "0" "" "" "GRAMPS"
|
||||||
|
WriteINIStr "$SMPROGRAMS\$0\GRAMPS Website.url" "InternetShortcut" "URL" "http://www.gramps-project.org/"
|
||||||
|
CreateShortCut "$SMPROGRAMS\$0\Uninstall GRAMPS.lnk" "$\"$INSTDIR\uninstall.exe$\"" "" "" "0" "" "" "Uninstall GRAMPS"
|
||||||
|
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
@ -211,11 +224,203 @@ Section "Add Desktop icon" Desktop
|
|||||||
#SectionIn 1 3
|
#SectionIn 1 3
|
||||||
# determines "Start In" location for shortcuts
|
# determines "Start In" location for shortcuts
|
||||||
SetOutPath $INSTDIR
|
SetOutPath $INSTDIR
|
||||||
CreateShortCut "$DESKTOP\GRAMPS.lnk" "$3" "$\"$INSTDIR\gramps.py$\"" "$INSTDIR\images\ped24.ico" "0" "" "" "GRAMPS"
|
CreateShortCut "$DESKTOP\GRAMPS ${GRAMPS_VER_MAJOR}.${GRAMPS_VER_MINOR}.${GRAMPS_VER_POINT}-${GRAMPS_VER_BUILD}.lnk" "$3" "$\"$INSTDIR\gramps.py$\"" "$INSTDIR\images\ped24.ico" "0" "" "" "GRAMPS"
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
SubSectionEnd
|
SubSectionEnd
|
||||||
|
|
||||||
|
# Language Files {{{1
|
||||||
|
|
||||||
|
Section "Language Files" LangFiles
|
||||||
|
|
||||||
|
#CreateDirectory $INSTDIR\lang
|
||||||
|
SetOutPath $INSTDIR
|
||||||
|
File /r ..\po\*.mo
|
||||||
|
|
||||||
|
#MessageBox MB_OK "Setting up languages..."
|
||||||
|
# setup
|
||||||
|
; switches:
|
||||||
|
; -c
|
||||||
|
; -t :: setup the language files
|
||||||
|
; -r
|
||||||
|
;
|
||||||
|
; pythonw grampsSetup.py -c -t
|
||||||
|
#Exec '"$3" $\"$INSTDIR\grampsSetup.py -c -t -r$\"'
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
# File Association {{{1
|
||||||
|
|
||||||
|
# FileAssoc.nsh macro {{{2
|
||||||
|
;
|
||||||
|
; FileAssoc.nsh (http://nsis.sourceforge.net/FileAssoc)
|
||||||
|
; File association helper macros
|
||||||
|
; Written by Saivert
|
||||||
|
;
|
||||||
|
; Features automatic backup system and UPDATEFILEASSOC macro for
|
||||||
|
; shell change notification.
|
||||||
|
;
|
||||||
|
; |> How to use <|
|
||||||
|
; To associate a file with an application so you can double-click it in explorer, use
|
||||||
|
; the APP_ASSOCIATE macro like this:
|
||||||
|
;
|
||||||
|
; Example:
|
||||||
|
; !insertmacro APP_ASSOCIATE \
|
||||||
|
; "txt" \
|
||||||
|
; "myapp.textfile" \
|
||||||
|
; "myapp tiny description" \
|
||||||
|
; "$INSTDIR\myapp.exe,0" \
|
||||||
|
; "Open with myapp" \
|
||||||
|
; "$INSTDIR\myapp.exe $\"%1$\""
|
||||||
|
;
|
||||||
|
; Never insert the APP_ASSOCIATE macro multiple times, it is only ment
|
||||||
|
; to associate an application with a single file and using the
|
||||||
|
; the "open" verb as default. To add more verbs (actions) to a file
|
||||||
|
; use the APP_ASSOCIATE_ADDVERB macro.
|
||||||
|
;
|
||||||
|
; Example:
|
||||||
|
; !insertmacro APP_ASSOCIATE_ADDVERB "myapp.textfile" "edit" "Edit with myapp" \
|
||||||
|
; "$INSTDIR\myapp.exe /edit $\"%1$\""
|
||||||
|
;
|
||||||
|
; To have access to more options when registering the file association use the
|
||||||
|
; APP_ASSOCIATE_EX macro. Here you can specify the verb and what verb is to be the
|
||||||
|
; standard action (default verb).
|
||||||
|
;
|
||||||
|
; And finally: To remove the association from the registry use the APP_UNASSOCIATE
|
||||||
|
; macro. Here is another example just to wrap it up:
|
||||||
|
; !insertmacro APP_UNASSOCIATE "txt" "myapp.textfile"
|
||||||
|
;
|
||||||
|
; |> Note <|
|
||||||
|
; When defining your file class string always use the short form of your application title
|
||||||
|
; then a period (dot) and the type of file. This keeps the file class sort of unique.
|
||||||
|
; Examples:
|
||||||
|
; Winamp.Playlist
|
||||||
|
; NSIS.Script
|
||||||
|
; Photoshop.JPEGFile
|
||||||
|
;
|
||||||
|
; |> Tech info <|
|
||||||
|
; The registry key layout for a file association is:
|
||||||
|
; HKEY_CLASSES_ROOT
|
||||||
|
; <applicationID> = <"description">
|
||||||
|
; shell
|
||||||
|
; <verb> = <"menu-item text">
|
||||||
|
; command = <"command string">
|
||||||
|
;
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE EXT FILECLASS DESCRIPTION ICON COMMANDTEXT COMMAND
|
||||||
|
; Backup the previously associated file class
|
||||||
|
ReadRegStr $R0 HKCR ".${EXT}" ""
|
||||||
|
WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0"
|
||||||
|
|
||||||
|
WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}"
|
||||||
|
WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell" "" "open"
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\open" "" `${COMMANDTEXT}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\open\command" "" `${COMMAND}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_EX EXT FILECLASS DESCRIPTION ICON VERB DEFAULTVERB SHELLNEW COMMANDTEXT COMMAND
|
||||||
|
; Backup the previously associated file class
|
||||||
|
ReadRegStr $R0 HKCR ".${EXT}" ""
|
||||||
|
WriteRegStr HKCR ".${EXT}" "${FILECLASS}_backup" "$R0"
|
||||||
|
|
||||||
|
WriteRegStr HKCR ".${EXT}" "" "${FILECLASS}"
|
||||||
|
StrCmp "${SHELLNEW}" "0" +2
|
||||||
|
WriteRegStr HKCR ".${EXT}\ShellNew" "NullFile" ""
|
||||||
|
|
||||||
|
WriteRegStr HKCR "${FILECLASS}" "" `${DESCRIPTION}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\DefaultIcon" "" `${ICON}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell" "" `${DEFAULTVERB}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_ADDVERB FILECLASS VERB COMMANDTEXT COMMAND
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}" "" `${COMMANDTEXT}`
|
||||||
|
WriteRegStr HKCR "${FILECLASS}\shell\${VERB}\command" "" `${COMMAND}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_REMOVEVERB FILECLASS VERB
|
||||||
|
DeleteRegKey HKCR `${FILECLASS}\shell\${VERB}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
|
||||||
|
!macro APP_UNASSOCIATE EXT FILECLASS
|
||||||
|
; Backup the previously associated file class
|
||||||
|
ReadRegStr $R0 HKCR ".${EXT}" `${FILECLASS}_backup`
|
||||||
|
WriteRegStr HKCR ".${EXT}" "" "$R0"
|
||||||
|
|
||||||
|
DeleteRegKey HKCR `${FILECLASS}`
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro APP_ASSOCIATE_GETFILECLASS OUTPUT EXT
|
||||||
|
ReadRegStr ${OUTPUT} HKCR ".${EXT}" ""
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
|
||||||
|
; !defines for use with SHChangeNotify
|
||||||
|
!ifdef SHCNE_ASSOCCHANGED
|
||||||
|
!undef SHCNE_ASSOCCHANGED
|
||||||
|
!endif
|
||||||
|
!define SHCNE_ASSOCCHANGED 0x08000000
|
||||||
|
!ifdef SHCNF_FLUSH
|
||||||
|
!undef SHCNF_FLUSH
|
||||||
|
!endif
|
||||||
|
!define SHCNF_FLUSH 0x1000
|
||||||
|
|
||||||
|
!macro UPDATEFILEASSOC
|
||||||
|
; Using the system.dll plugin to call the SHChangeNotify Win32 API function so we
|
||||||
|
; can update the shell.
|
||||||
|
System::Call "shell32::SHChangeNotify(i,i,i,i) (${SHCNE_ASSOCCHANGED}, ${SHCNF_FLUSH}, 0, 0)"
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
;EOF
|
||||||
|
|
||||||
|
# 2}}}
|
||||||
|
|
||||||
|
Section "File Association" FileAssoc
|
||||||
|
SectionIn 1 3
|
||||||
|
# depends on FileAssoc.nsh, by Saivert (http://nsis.sourceforge.net/FileAssoc)
|
||||||
|
|
||||||
|
# .grdb
|
||||||
|
!insertmacro APP_ASSOCIATE \
|
||||||
|
"grdb" \
|
||||||
|
"application/x-gramps-database" \
|
||||||
|
"GRAMPS database file" \
|
||||||
|
"$INSTDIR\images\ped24.ico" \
|
||||||
|
"Open with GRAMPS" \
|
||||||
|
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
|
||||||
|
|
||||||
|
# .gramps
|
||||||
|
!insertmacro APP_ASSOCIATE \
|
||||||
|
"gramps" \
|
||||||
|
"application/x-gramps-file" \
|
||||||
|
"GRAMPS application file" \
|
||||||
|
"$INSTDIR\images\ped24.ico" \
|
||||||
|
"Open with GRAMPS" \
|
||||||
|
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
|
||||||
|
|
||||||
|
# .gpkg
|
||||||
|
!insertmacro APP_ASSOCIATE \
|
||||||
|
"gpkg" \
|
||||||
|
"application/x-gramps-package" \
|
||||||
|
"GRAMPS package file" \
|
||||||
|
"$INSTDIR\images\ped24.ico" \
|
||||||
|
"Open with GRAMPS" \
|
||||||
|
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
|
||||||
|
|
||||||
|
# .ged
|
||||||
|
!insertmacro APP_ASSOCIATE \
|
||||||
|
"ged" \
|
||||||
|
"application/x-gramps-gedcom" \
|
||||||
|
"GEnealogical Data COMmunication (GEDCOM) file" \
|
||||||
|
"$INSTDIR\images\ped24.ico" \
|
||||||
|
"Open with GRAMPS" \
|
||||||
|
"$\"$3$\" $\"$INSTDIR\gramps.py$\" $\"%1$\""
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
# Uninstall {{{1
|
# Uninstall {{{1
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
@ -247,64 +452,95 @@ SectionEnd
|
|||||||
|
|
||||||
Function .onInit
|
Function .onInit
|
||||||
|
|
||||||
; test for dependencies
|
#MessageBox MB_OK "Testing dependencies..."
|
||||||
MessageBox MB_OK "Testing dependencies..."
|
|
||||||
|
|
||||||
; look for python.exe
|
; look for pythonw.exe
|
||||||
; NOTE: This is set to $3 if it exists.
|
; NOTE: This is set to $3 if it exists.
|
||||||
|
|
||||||
; on path
|
; on path
|
||||||
SearchPath $3 python.exe
|
SearchPath $3 pythonw.exe
|
||||||
#MessageBox MB_OK "DEBUG: Testing python.exe on path...$\n$\nFound: $\"$3$\""
|
#MessageBox MB_OK "DEBUG: Testing pythonw.exe on path...$\n$\nFound: $\"$3$\""
|
||||||
IfFileExists $3 HavePython 0
|
IfFileExists $3 HavePython 0
|
||||||
|
|
||||||
; registry keys (these are confirmed possibilities)
|
; registry keys (these are confirmed possibilities)
|
||||||
; reg key
|
|
||||||
ReadRegStr $3 HKCR 'Applications\python.exe\shell\open\command' ""
|
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
|
||||||
IfFileExists $3 HavePython 0
|
|
||||||
; reg key
|
; reg key
|
||||||
ReadRegStr $3 HKLM 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe' ""
|
ReadRegStr $3 HKLM 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe' ""
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key (updated on 2.5 upgrade)
|
||||||
|
ReadRegStr $3 HKCR 'Python.File\shell\open\command' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key (updated on 2.5 upgrade)
|
||||||
|
ReadRegStr $3 HKCU 'Software\Classes\Python.File\shell\open\command' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKCU 'Software\Microsoft\Windows\Current version\App Paths\Python.exe' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKCU 'Software\Microsoft\Windows\ShellNoRoam\MUICache (data:python)' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key (Python version 2.5)
|
||||||
|
ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.5\InstallPath' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key (Python version 2.4)
|
||||||
|
ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.4\InstallPath' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
# these hold compound paths
|
||||||
|
#; reg key (Python version 2.5)
|
||||||
|
#ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.5\PythonPath' ""
|
||||||
|
#StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
#IfFileExists $3 HavePython 0
|
||||||
|
#; reg key (Python version 2.4)
|
||||||
|
#ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.4\PythonPath' ""
|
||||||
|
#StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
#IfFileExists $3 HavePython 0
|
||||||
|
|
||||||
|
; Keys not prone to be properly updated on upgrades
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKCR 'Applications\python.exe\shell\open\command' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key (not updated on 2.5 upgrade)
|
||||||
|
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.5\PythonPath' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4\PythonPath' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.5' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
IfFileExists $3 HavePython 0
|
IfFileExists $3 HavePython 0
|
||||||
; reg key
|
; reg key
|
||||||
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4' ""
|
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4' ""
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
|
IfFileExists $3 HavePython 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.5\InstallPath' ""
|
||||||
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
IfFileExists $3 HavePython 0
|
IfFileExists $3 HavePython 0
|
||||||
; reg key
|
; reg key
|
||||||
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4\InstallPath' ""
|
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4\InstallPath' ""
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||||
IfFileExists $3 HavePython 0
|
|
||||||
; reg key
|
|
||||||
ReadRegStr $3 HKCR 'Python.File\shell\open\command' ""
|
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
|
||||||
IfFileExists $3 HavePython 0
|
|
||||||
; reg key
|
|
||||||
ReadRegStr $3 HKCU 'Software\Classes\Python.File\shell\open\command' ""
|
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
|
||||||
IfFileExists $3 HavePython 0
|
|
||||||
; reg key
|
|
||||||
ReadRegStr $3 HKCU 'Software\Microsoft\Windows\Current version\App Paths\Python.exe' ""
|
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
|
||||||
IfFileExists $3 HavePython 0
|
|
||||||
; reg key
|
|
||||||
ReadRegStr $3 HKCU 'Software\Microsoft\Windows\ShellNoRoam\MUICache (data:python)' ""
|
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
|
||||||
IfFileExists $3 HavePython 0
|
|
||||||
; reg key
|
|
||||||
ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.4\InstallPath' ""
|
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
|
||||||
IfFileExists $3 HavePython 0
|
|
||||||
; reg key
|
|
||||||
ReadRegStr $3 HKCU 'Software\Python\PythonCore\2.4\PythonPath' ""
|
|
||||||
StrCpy $3 "$3python.exe" ; append "python.exe"
|
|
||||||
IfFileExists $3 HavePython 0
|
IfFileExists $3 HavePython 0
|
||||||
|
|
||||||
|
|
||||||
; TODO: request path from user/browse (can NSIS do this?)
|
; TODO: request path from user/browse (can NSIS do this?)
|
||||||
MessageBox MB_OK "Python not found, unable to continue."
|
MessageBox MB_OK "GRAMPS requires Python to be installed, please see:$\n \
|
||||||
|
$\n \
|
||||||
|
http://gramps-project.org/windows/ $\n \
|
||||||
|
$\n \
|
||||||
|
for installation help. Unable to continue installation."
|
||||||
Abort
|
Abort
|
||||||
HavePython:
|
HavePython:
|
||||||
|
#MessageBox MB_OK "DEBUG: Final path for pythonw.exe...$\n$\nFound: $\"$3$\""
|
||||||
|
|
||||||
; extract gcheck
|
; extract gcheck
|
||||||
SetOutPath $TEMP
|
SetOutPath $TEMP
|
||||||
@ -316,12 +552,12 @@ Function .onInit
|
|||||||
; run gcheck
|
; run gcheck
|
||||||
Exec '"$3" $TEMP\gcheck.py $1'
|
Exec '"$3" $TEMP\gcheck.py $1'
|
||||||
|
|
||||||
; Note The Exec above is a fork, meaning the following file test
|
; Note The Exec above is a fork, meaning the following file test
|
||||||
; will fail because it happens faster than the Exec can run
|
; will fail because it happens faster than the Exec can run
|
||||||
; to create it!
|
; to create it!
|
||||||
DetailPrint "pausing..."
|
DetailPrint "Pausing for gcheck.py exectution..."
|
||||||
Sleep 1000
|
; sleep
|
||||||
|
Sleep 6000
|
||||||
|
|
||||||
; verify INI created
|
; verify INI created
|
||||||
IfFileExists $1 YesINI 0
|
IfFileExists $1 YesINI 0
|
||||||
@ -330,18 +566,44 @@ Function .onInit
|
|||||||
YesINI:
|
YesINI:
|
||||||
|
|
||||||
; verify environment test results
|
; verify environment test results
|
||||||
; GTK+
|
; GTK+ and pygtk
|
||||||
ReadINIStr $0 $1 tests gtk
|
ReadINIStr $0 $1 tests gtk
|
||||||
StrCmp $0 "yes" HaveGTK 0
|
StrCmp $0 "yes" HaveGTK 0
|
||||||
MessageBox MB_OK "GTK+ not installed, unable to continue."
|
|
||||||
|
; TODO: if no, perhaps just have GTK+ installed, check registry
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKCU 'Environment\GTK_BASEPATH' ""
|
||||||
|
IfFileExists $3\*.* NoHavePyGTK 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKCU 'Software\GTK\2.0\Path' ""
|
||||||
|
IfFileExists $3\*.* NoHavePyGTK 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKLM 'Software\GTK\2.0\Path' ""
|
||||||
|
IfFileExists $3\*.* NoHavePyGTK 0
|
||||||
|
; reg key
|
||||||
|
ReadRegStr $3 HKLM 'Software\GTK\2.0\DllPath' ""
|
||||||
|
IfFileExists $3\*.* NoHavePyGTK 0
|
||||||
|
|
||||||
|
; if we make it this far, we don't have GTK+
|
||||||
|
MessageBox MB_OK "GRAMPS requires GTK+ and PyGTK to be installed, please see:$\n \
|
||||||
|
$\n \
|
||||||
|
http://gramps-project.org/windows/ $\n \
|
||||||
|
$\n \
|
||||||
|
for installation help. Unable to continue installation."
|
||||||
Abort
|
Abort
|
||||||
|
|
||||||
|
NoHavePyGTK:
|
||||||
|
MessageBox MB_OK "GTK+/PyGTK import failed (GTK+ found on system), please see:$\n \
|
||||||
|
$\n \
|
||||||
|
http://gramps-project.org/windows/ $\n \
|
||||||
|
$\n \
|
||||||
|
for installation help. Unable to continue installation."
|
||||||
|
Abort
|
||||||
|
|
||||||
HaveGTK:
|
HaveGTK:
|
||||||
; pygtk
|
|
||||||
ReadINIStr $0 $1 tests pygtk
|
# NOTE: we can not detect just pygtk via gcheck.py
|
||||||
StrCmp $0 "yes" Havepygtk 0
|
|
||||||
MessageBox MB_OK "pygtk not installed, unable to continue."
|
|
||||||
Abort
|
|
||||||
Havepygtk:
|
|
||||||
; glade
|
; glade
|
||||||
ReadINIStr $0 $1 tests glade
|
ReadINIStr $0 $1 tests glade
|
||||||
StrCmp $0 "yes" Haveglade 0
|
StrCmp $0 "yes" Haveglade 0
|
||||||
@ -363,8 +625,10 @@ Function .onInit
|
|||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
Function .onInstSuccess
|
Function .onInstSuccess
|
||||||
|
|
||||||
# write uninstaller
|
# write uninstaller
|
||||||
WriteUninstaller $INSTDIR\uninstall.exe
|
WriteUninstaller $INSTDIR\uninstall.exe
|
||||||
|
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
Function .onInstFailed
|
Function .onInstFailed
|
||||||
@ -382,7 +646,6 @@ Function WarnDirExists
|
|||||||
DirExistsOK:
|
DirExistsOK:
|
||||||
FunctionEnd
|
FunctionEnd
|
||||||
|
|
||||||
|
|
||||||
# Uninstaller {{{1
|
# Uninstaller {{{1
|
||||||
#####################################################################
|
#####################################################################
|
||||||
|
|
||||||
@ -415,6 +678,8 @@ FunctionEnd
|
|||||||
LangString DESC_MenusAndIcons ${LANG_ENGLISH} "General Desktop and Start Menu shortcut options."
|
LangString DESC_MenusAndIcons ${LANG_ENGLISH} "General Desktop and Start Menu shortcut options."
|
||||||
LangString DESC_Desktop ${LANG_ENGLISH} "Add icon to the Desktop."
|
LangString DESC_Desktop ${LANG_ENGLISH} "Add icon to the Desktop."
|
||||||
LangString DESC_MenuStart ${LANG_ENGLISH} "Add icons to the Start Menu."
|
LangString DESC_MenuStart ${LANG_ENGLISH} "Add icons to the Start Menu."
|
||||||
|
LangString DESC_LangFiles ${LANG_ENGLISH} "Set up non-English languages."
|
||||||
|
LangString DESC_FileAssoc ${LANG_ENGLISH} "Associate GRAMPS with .grdb, .gramps, .gpkg, and .ged files."
|
||||||
LangString DESC_Prog ${LANG_ENGLISH} "GRAMPS..."
|
LangString DESC_Prog ${LANG_ENGLISH} "GRAMPS..."
|
||||||
|
|
||||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||||
@ -423,6 +688,8 @@ FunctionEnd
|
|||||||
!insertmacro MUI_DESCRIPTION_TEXT ${MenusAndIcons} $(DESC_MenusAndIcons)
|
!insertmacro MUI_DESCRIPTION_TEXT ${MenusAndIcons} $(DESC_MenusAndIcons)
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${Desktop} $(DESC_Desktop)
|
!insertmacro MUI_DESCRIPTION_TEXT ${Desktop} $(DESC_Desktop)
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${MenuStart} $(DESC_MenuStart)
|
!insertmacro MUI_DESCRIPTION_TEXT ${MenuStart} $(DESC_MenuStart)
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${LangFiles} $(DESC_LangFiles)
|
||||||
|
!insertmacro MUI_DESCRIPTION_TEXT ${FileAssoc} $(DESC_FileAssoc)
|
||||||
!insertmacro MUI_DESCRIPTION_TEXT ${Prog} $(DESC_Prog)
|
!insertmacro MUI_DESCRIPTION_TEXT ${Prog} $(DESC_Prog)
|
||||||
|
|
||||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||||
|
Loading…
Reference in New Issue
Block a user