clarify these old files are not for the current Windows AIO package
This commit is contained in:
5
windows/nonAIO/nsis/README.txt
Normal file
5
windows/nonAIO/nsis/README.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
|
||||
** The files in this folder ([SVNRoot]\windows\nsis) are deprecated. **
|
||||
|
||||
They remain here for reference only and will be removed at a later date.
|
||||
|
49
windows/nonAIO/nsis/gcheck.py
Normal file
49
windows/nonAIO/nsis/gcheck.py
Normal file
@@ -0,0 +1,49 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2008 Steve Hall
|
||||
# Copyright (C) 2008 Stephen George
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
import sys
|
||||
|
||||
fn = sys.argv[1]
|
||||
f = open(fn,"w")
|
||||
|
||||
f.write('[tests]\n')
|
||||
|
||||
try:
|
||||
from gi.repository import Gtk
|
||||
f.write('gtk=yes\n')
|
||||
f.write('gtkver=%d.%d.%d\n' % Gtk.gtk_version)
|
||||
f.write('pygtk=yes\n')
|
||||
f.write('pygtkver=%d.%d.%d\n' % Gtk.pygtk_version)
|
||||
except ImportError:
|
||||
f.write('gtk=no\n')
|
||||
f.write('gtkver=no\n')
|
||||
f.write('pygtk=no\n')
|
||||
f.write('pygtkver=no\n')
|
||||
|
||||
try:
|
||||
import cairo
|
||||
f.write('pycairo=yes\n')
|
||||
#f.write('pycairover=%s\n' % cairo.version_info)
|
||||
f.write('pycairover=%s\n' % str(cairo.version_info) )
|
||||
except ImportError:
|
||||
f.write('pycairo=no\n')
|
||||
f.write('pycairover=no\n')
|
||||
f.close()
|
||||
|
393
windows/nonAIO/nsis/gramps-build.bat
Normal file
393
windows/nonAIO/nsis/gramps-build.bat
Normal file
@@ -0,0 +1,393 @@
|
||||
@echo off
|
||||
rem
|
||||
rem Filename: gramps-build.bat
|
||||
rem Author: Steve Hall [ digitect dancingpaper com ]
|
||||
rem Date: (See timestamp in :CHOOSE)
|
||||
rem
|
||||
rem Documentation
|
||||
rem License {{{1
|
||||
rem --------
|
||||
rem This program is free software; you can redistribute it and/or
|
||||
rem modify it under the terms of the GNU General Public License as
|
||||
rem published by the Free Software Foundation; either version 2 of the
|
||||
rem License, or (at your option) any later version.
|
||||
rem [ http://www.gnu.org/licenses/gpl.html ]
|
||||
rem
|
||||
rem This program is distributed in the hope that it will be useful,
|
||||
rem but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
rem General Public License for more details.
|
||||
rem
|
||||
rem You should have received a copy of the GNU General Public License
|
||||
rem along with this program; if not, write to the Free Software
|
||||
rem Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
|
||||
rem 02111-1307, USA.
|
||||
rem
|
||||
|
||||
rem Usage {{{1
|
||||
rem ------
|
||||
rem This script automates the build process and creation of an
|
||||
rem installer as much as possible, downloading sources and making
|
||||
rem assumptions where necessary. To use it, the following are
|
||||
rem required:
|
||||
rem
|
||||
rem o Windows NT/2K/XP (we no longer support 95/98/ME)
|
||||
rem
|
||||
rem o These GNU tools on path:
|
||||
rem - gzip/gunzip
|
||||
rem - tar (GNU version >= 1.13.10)
|
||||
rem - sed
|
||||
rem - wget
|
||||
rem
|
||||
rem o The Nullsoft Installer.
|
||||
rem
|
||||
rem o Adjust the variables in :ENVIRONMENT (below) to fit your
|
||||
rem preferences and installation conditions.
|
||||
rem
|
||||
|
||||
rem 1}}}
|
||||
rem Initialization
|
||||
rem Version and Personal Environment (*** FIX ME!! ***) {{{1
|
||||
echo -----------------------------------------------------------------
|
||||
echo Version and Personal environment...
|
||||
echo.
|
||||
|
||||
rem *****************************************************
|
||||
rem * MAKE ALL ADJUSTMENTS IN THIS SECTION! *
|
||||
|
||||
rem version (also used for location
|
||||
set VERSION=3
|
||||
set VERSIONSUB=0
|
||||
set VERSIONPT=3
|
||||
set VERSIONBUILD=1
|
||||
|
||||
rem path to Nullsoft Installer (NSIS)
|
||||
set NSIS=C:\PROGRA~1\NSIS
|
||||
rem path to Nullsoft customized files
|
||||
set CUSTOM=C:\DOCUME~1\halls\_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 ******************************************************
|
||||
|
||||
rem Initial Environment {{{1
|
||||
echo -----------------------------------------------------------------
|
||||
echo Initial environment...
|
||||
echo.
|
||||
|
||||
rem force Win NT/2K/XP
|
||||
if not "%OS%"=="Windows_NT" echo Windows NT/2K/XP required, unable to continue.
|
||||
if not "%OS%"=="Windows_NT" goto QUIT
|
||||
|
||||
rem program name
|
||||
set PROG=gramps
|
||||
rem save system PATH
|
||||
set PATHORIG=%PATH%
|
||||
rem set build path (location of this file and tarball)
|
||||
set BUILDPATH=%CD%
|
||||
rem cat for general filename
|
||||
set VERSIONNAME=%PROG%-%VERSION%.%VERSIONSUB%.%VERSIONPT%
|
||||
|
||||
rem Verify {{{1
|
||||
echo -----------------------------------------------------------------
|
||||
echo Verifying environment and utilities available...
|
||||
echo.
|
||||
|
||||
echo %%BUILDPATH%% : %BUILDPATH%
|
||||
echo %%VERSIONNAME%% : %VERSIONNAME%
|
||||
echo %%NSIS%% : %NSIS%
|
||||
echo %%CUSTOM%% : %CUSTOM%
|
||||
|
||||
rem date
|
||||
for /F "TOKENS=1* DELIMS= " %%A in ('date/t') do set MYDAYNAME=%%A
|
||||
for /F "TOKENS=2* DELIMS= " %%A in ('date/t') do set MYMDY=%%A
|
||||
for /f "TOKENS=3* DELIMS=/" %%A in ('echo %MYMDY%') do set MYYEAR=%%A
|
||||
for /f "TOKENS=1* DELIMS=/" %%A in ('echo %MYMDY%') do set MYMONTH=%%A
|
||||
for /f "TOKENS=2* DELIMS=/" %%A in ('echo %MYMDY%') do set MYDAY=%%A
|
||||
rem time
|
||||
for /F "TOKENS=1* DELIMS=:" %%A in ('time/t') do set MYHOUR=%%A
|
||||
for /F "TOKENS=2* DELIMS=: " %%A in ('time/t') do set MYMINUTE=%%A
|
||||
echo Date : %MYYEAR%-%MYMONTH%-%MYDAY%
|
||||
echo Time : %MYHOUR%:%MYMINUTE%
|
||||
echo Build version : %VERSIONBUILD%
|
||||
echo.
|
||||
|
||||
set TRY=gzip.exe
|
||||
for %%A in (%TRY%) do set YES=%%~$PATH:A
|
||||
if "%YES%"=="" goto UTILHALT
|
||||
echo Found %TRY%...
|
||||
|
||||
set TRY=gunzip.exe
|
||||
for %%A in (%TRY%) do set YES=%%~$PATH:A
|
||||
if "%YES%"=="" goto UTILHALT
|
||||
echo Found %TRY%...
|
||||
|
||||
set TRY=sed.exe
|
||||
for %%A in (%TRY%) do set YES=%%~$PATH:A
|
||||
if "%YES%"=="" goto UTILHALT
|
||||
echo Found %TRY%...
|
||||
|
||||
set TRY=tar.exe
|
||||
for %%A in (%TRY%) do set YES=%%~$PATH:A
|
||||
if "%YES%"=="" goto UTILHALT
|
||||
echo Found %TRY%...
|
||||
|
||||
set TRY=wget.exe
|
||||
for %%A in (%TRY%) do set YES=%%~$PATH:A
|
||||
if "%YES%"=="" goto UTILHALT
|
||||
echo Found %TRY%...
|
||||
|
||||
echo.
|
||||
set /P CH=Continue? [Y/N]
|
||||
if /I "%CH%"=="Y" goto CHOOSE
|
||||
|
||||
:UTILHALT
|
||||
if "%YES%"=="" echo Utility %TRY% not found on PATH, unable to continue.
|
||||
echo.
|
||||
echo Quitting...
|
||||
echo.
|
||||
goto QUIT
|
||||
|
||||
rem }}}1
|
||||
rem Procedures
|
||||
rem CHOOSE {{{1
|
||||
:CHOOSE
|
||||
cls
|
||||
echo.
|
||||
echo ______________________________________________________________________________
|
||||
echo Updated: 2007-06-18 07:09:16-0400
|
||||
echo.
|
||||
echo Please select a choice:
|
||||
echo.
|
||||
echo [1] Clean build location
|
||||
echo [2] Extract source tarballs
|
||||
echo [3] Build source
|
||||
echo [4] Nullsoft Installer
|
||||
echo.
|
||||
echo [R]emove existing installation
|
||||
echo.
|
||||
echo [A]uto
|
||||
echo [Q]uit
|
||||
echo.
|
||||
echo ______________________________________________________________________________
|
||||
echo.
|
||||
|
||||
:WinNT
|
||||
set /P CH=Please enter choice above...
|
||||
if /I "%CH%"=="Q" goto QUIT
|
||||
if /I "%CH%"=="A" goto AUTO
|
||||
if /I "%CH%"=="R" goto REMOVE
|
||||
if /I "%CH%"=="4" goto NSIS
|
||||
if /I "%CH%"=="3" goto BUILD
|
||||
if /I "%CH%"=="2" goto SOURCE
|
||||
if /I "%CH%"=="1" goto CLEAN
|
||||
goto WinNT
|
||||
|
||||
rem AUTO {{{1
|
||||
:AUTO
|
||||
echo -----------------------------------------------------------------
|
||||
echo Setting Auto-Run...
|
||||
echo.
|
||||
|
||||
set RETURN=no
|
||||
|
||||
rem CLEAN {{{1
|
||||
:CLEAN
|
||||
echo -----------------------------------------------------------------
|
||||
echo Cleaning up build location (removing all directories and files)
|
||||
echo.
|
||||
|
||||
if not exist %BUILDPATH%\%VERSIONNAME% echo (Nothing to clean.)
|
||||
if exist %BUILDPATH%\%VERSIONNAME% rmdir /s /q %BUILDPATH%\%VERSIONNAME%
|
||||
|
||||
if not "%RETURN%"=="no" echo.
|
||||
if not "%RETURN%"=="no" echo Build location cleaned. (Ctrl+C to quit)
|
||||
if not "%RETURN%"=="no" pause
|
||||
if not "%RETURN%"=="no" goto CHOOSE
|
||||
|
||||
rem SOURCE {{{1
|
||||
:SOURCE
|
||||
echo -----------------------------------------------------------------
|
||||
echo Downloading and extracting source tarballs...
|
||||
echo.
|
||||
|
||||
rem NOTE: tar -xzf does not always work
|
||||
|
||||
:SOURCES
|
||||
echo %VERSIONNAME%.tar.gz...
|
||||
if exist "%VERSIONNAME%.tar" goto TARBALL
|
||||
if not exist "%VERSIONNAME%.tar.gz" echo.
|
||||
if not exist "%VERSIONNAME%.tar.gz" echo Tarball not found, downloading...
|
||||
if not exist "%VERSIONNAME%.tar.gz" echo.
|
||||
if not exist "%VERSIONNAME%.tar.gz" wget -c http://superb-east.dl.sourceforge.net/sourceforge/gramps/%VERSIONNAME%.tar.gz
|
||||
if not exist "%VERSIONNAME%.tar.gz" echo.
|
||||
if not exist "%VERSIONNAME%.tar.gz" echo Download failed, unable to continue.
|
||||
if not exist "%VERSIONNAME%.tar.gz" echo.
|
||||
if not exist "%VERSIONNAME%.tar.gz" goto CHOOSE
|
||||
if exist "%VERSIONNAME%.tar.gz" gunzip "%VERSIONNAME%.tar.gz"
|
||||
echo tarball unzipped.
|
||||
:TARBALL
|
||||
if not exist "%VERSIONNAME%.tar" echo.
|
||||
if not exist "%VERSIONNAME%.tar" echo Unable to continue, no tarball found.
|
||||
if not exist "%VERSIONNAME%.tar" echo.
|
||||
if not exist "%VERSIONNAME%.tar" goto CHOOSE
|
||||
echo extracting...
|
||||
tar -xvf %VERSIONNAME%.tar
|
||||
|
||||
if not "%RETURN%"=="no" echo.
|
||||
if not "%RETURN%"=="no" echo Source tarballs unpacked. (Ctrl+C to quit)
|
||||
if not "%RETURN%"=="no" pause
|
||||
if not "%RETURN%"=="no" goto CHOOSE
|
||||
|
||||
rem BUILD {{{1
|
||||
:BUILD
|
||||
echo -----------------------------------------------------------------
|
||||
echo Building...
|
||||
echo.
|
||||
|
||||
rem TODO: This should happen on the user's machine, since the process
|
||||
rem apparently embeds a number of paths into the result.
|
||||
|
||||
echo.
|
||||
echo Translations...
|
||||
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 Did we enjoy building?
|
||||
if not "%RETURN%"=="no" pause
|
||||
if not "%RETURN%"=="no" goto CHOOSE
|
||||
|
||||
rem NSIS {{{1
|
||||
:NSIS
|
||||
echo -----------------------------------------------------------------
|
||||
echo Nullsoft Installer creation
|
||||
echo.
|
||||
|
||||
if exist %NSIS%\CON goto NSISFOUND
|
||||
echo.
|
||||
echo NSIS path not found. Unable to continue...
|
||||
pause
|
||||
goto CHOOSE
|
||||
:NSISFOUND
|
||||
|
||||
rem echo copying customized NSIS files...
|
||||
rem if not exist "%BUILDPATH%\%VERSIONNAME%\nsis" mkdir "%BUILDPATH%\%VERSIONNAME%\nsis"
|
||||
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\Header\win.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\win.bmp"
|
||||
rem if exist "%CUSTOM%\nsis-splash.bmp" copy /Y "%CUSTOM%\nsis-splash.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-splash.bmp"
|
||||
rem if exist "%CUSTOM%\nsis-checkboxes.bmp" copy /Y "%CUSTOM%\nsis-checkboxes.bmp" "%BUILDPATH%\%VERSIONNAME%\nsis\nsis-checkboxes.bmp"
|
||||
|
||||
rem TODO:
|
||||
echo copying temporary, should end up in next release (?)
|
||||
if not exist "%BUILDPATH%\%VERSIONNAME%\nsis\CON" mkdir "%BUILDPATH%\%VERSIONNAME%\nsis"
|
||||
if exist "%CUSTOM%\gramps.nsi" copy /Y "%CUSTOM%\gramps.nsi" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gramps.nsi"
|
||||
if exist "%CUSTOM%\ped24.ico" copy /Y "%CUSTOM%\ped24.ico" /Y "%BUILDPATH%\%VERSIONNAME%\src\images\ped24.ico"
|
||||
if exist "%CUSTOM%\gcheck.py" copy /Y "%CUSTOM%\gcheck.py" /Y "%BUILDPATH%\%VERSIONNAME%\nsis\gcheck.py"
|
||||
|
||||
echo building installer...
|
||||
cd "%BUILDPATH%\%VERSIONNAME%\nsis"
|
||||
%NSIS%\makensis gramps.nsi
|
||||
|
||||
rem Open Windows Explorer to this directory
|
||||
explorer /e,"%BUILDPATH%\%VERSIONNAME%\nsis"
|
||||
|
||||
echo.
|
||||
echo Pausing... did we enjoy building the Nullsoft installer? (Ctrl+C to quit)
|
||||
pause
|
||||
goto CHOOSE
|
||||
|
||||
rem REMOVE {{{1
|
||||
:REMOVE
|
||||
rem this is NOT automatic
|
||||
if "%RETURN%"=="no" goto CHOOSE
|
||||
|
||||
echo -----------------------------------------------------------------
|
||||
echo Removing existing installation
|
||||
echo.
|
||||
|
||||
echo removing "%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"
|
||||
echo removing "%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 not "%RETURN%"=="no" echo.
|
||||
if not "%RETURN%"=="no" echo Pausing... did we enjoy removing existing installation? (Ctrl+C to quit)
|
||||
if not "%RETURN%"=="no" pause
|
||||
if not "%RETURN%"=="no" goto CHOOSE
|
||||
|
||||
rem QUIT {{{1
|
||||
:QUIT
|
||||
echo.
|
||||
echo Finished.
|
||||
echo.
|
||||
|
||||
cd "%BUILDPATH%"
|
||||
|
||||
rem clear variables
|
||||
set ARCHIVEDRIVE=
|
||||
set BUILDDRIVE=
|
||||
set BUILDPATH=
|
||||
set BUILDTYPE=
|
||||
set VERSION=
|
||||
set VERSIONNAME=
|
||||
set VERSIONSUB=
|
||||
set CH=
|
||||
set FNAME=
|
||||
set GCC=
|
||||
set LICENSEFILE=
|
||||
set MYDAY=
|
||||
set MYMONTH=
|
||||
set MYYEAR=
|
||||
set MYDAYNAME=
|
||||
set MDY=
|
||||
set NSIS=
|
||||
set CUSTOM=
|
||||
rem set PATHORIG=
|
||||
set RETURN=
|
||||
set TRY=
|
||||
set YES=
|
||||
|
||||
rem reset path if backup exists
|
||||
rem if "%PATHORIG%"=="" goto END
|
||||
set PATH=%PATHORIG%
|
||||
set PATHORIG=
|
||||
|
||||
rem 1}}}
|
||||
:END
|
||||
rem vim:foldmethod=marker
|
776
windows/nonAIO/nsis/gramps.nsi
Normal file
776
windows/nonAIO/nsis/gramps.nsi
Normal file
@@ -0,0 +1,776 @@
|
||||
#
|
||||
# Gramps - a GTK+ based genealogy program
|
||||
#
|
||||
# Copyright (C) 2006-2008 Steve Hall <digitect dancingpaper com>
|
||||
# Copyright (C) 2008 Stephen George
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
# Description: Nullsoft Installer (NSIS) file to build Windows installer:
|
||||
#
|
||||
# Requires: NSIS version 2.0 or later.
|
||||
# Notes:
|
||||
# o WARNING: if you make changes to this script, look out for $INSTDIR
|
||||
# to be valid, because this line is very dangerous: RMDir /r $INSTDIR
|
||||
# o WARNING: Except the uninstaller. That re-paths for some reason.
|
||||
#
|
||||
|
||||
# ToDo {{{1
|
||||
#
|
||||
# o More refined dependency checking (versioning)
|
||||
# o Add .gramps and .gpkg as extensions
|
||||
# * => Need separate icons for them?
|
||||
#
|
||||
# 1}}}
|
||||
# Installer Attributes
|
||||
# 0. Base Settings {{{1
|
||||
|
||||
# version numbers
|
||||
!define GRAMPS_VER_MAJOR $%VERSION%
|
||||
!define GRAMPS_VER_MINOR $%VERSIONSUB%
|
||||
!define GRAMPS_VER_POINT $%VERSIONPT%
|
||||
!define GRAMPS_VER_BUILD $%VERSIONBUILD%
|
||||
|
||||
; HM NIS Edit Wizard helper defines
|
||||
!define PRODUCT_NAME "GRAMPS"
|
||||
!define PRODUCT_VERSION ${GRAMPS_VER_MAJOR}.${GRAMPS_VER_MINOR}.${GRAMPS_VER_POINT}-${GRAMPS_VER_BUILD}
|
||||
!define PRODUCT_PUBLISHER "The GRAMPS project"
|
||||
!define PRODUCT_WEB_SITE "http://gramps-project.org"
|
||||
!define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}"
|
||||
!define PRODUCT_UNINST_ROOT_KEY "HKLM"
|
||||
|
||||
!define DESKTOP_LINK "$DESKTOP\${PRODUCT_NAME} ${PRODUCT_VERSION}.lnk"
|
||||
|
||||
# adds Native Language Support
|
||||
!define HAVE_NLS
|
||||
|
||||
# output file
|
||||
Name ${PRODUCT_NAME}
|
||||
OutFile gramps-${PRODUCT_VERSION}.exe
|
||||
|
||||
# self ensure we don't have a corrupted file
|
||||
CRCCheck on
|
||||
|
||||
# compression
|
||||
SetCompress auto
|
||||
# zlib good, bzip2 better, lzma best (and slowest, whew.)
|
||||
SetCompressor lzma
|
||||
# reference existing store if possible
|
||||
SetDatablockOptimize on
|
||||
# UPX
|
||||
# comment next line if you don't have UPX (http://upx.sourceforge.net)
|
||||
!packhdr temp.dat "upx --best --compress-icons=0 temp.dat"
|
||||
|
||||
SetOverwrite try
|
||||
|
||||
# don't allow installation into C:\ directory
|
||||
AllowRootDirInstall false
|
||||
|
||||
# install details color scheme
|
||||
InstallColors /windows
|
||||
# background
|
||||
BGGradient off
|
||||
|
||||
# adds an XP manifest
|
||||
XPStyle on
|
||||
|
||||
# default install path
|
||||
InstallDir $PROGRAMFILES\gramps
|
||||
|
||||
# Remember install folder
|
||||
InstallDirRegKey HKCU "Software\${PRODUCT_NAME}" ""
|
||||
|
||||
# Remember the installer language
|
||||
!define MUI_LANGDLL_REGISTRY_ROOT "HKCU"
|
||||
!define MUI_LANGDLL_REGISTRY_KEY "Software\${PRODUCT_NAME}"
|
||||
!define MUI_LANGDLL_REGISTRY_VALUENAME "Installer Language"
|
||||
|
||||
# types of installs we can perform
|
||||
InstType Typical
|
||||
InstType Minimal
|
||||
InstType Full
|
||||
|
||||
SilentInstall normal
|
||||
|
||||
# 1. Header file (Begin Modern User Interface) {{{1
|
||||
!include "MUI.nsh"
|
||||
|
||||
# 2. Interface Configuration {{{1
|
||||
|
||||
# installer/uninstaller icons (these must match in size!)
|
||||
#!define MUI_ICON "classic-install.ico"
|
||||
#!define MUI_UNICON "classic-uninstall.ico"
|
||||
|
||||
# splash, header graphics (same for both!)
|
||||
!define MUI_HEADERIMAGE
|
||||
#!define MUI_HEADERIMAGE_BITMAP "win.bmp"
|
||||
#!define MUI_WELCOMEFINISHPAGE_BITMAP "nsis-splash.bmp"
|
||||
|
||||
!define MUI_LICENSEPAGE_BUTTON $(^AgreeBtn)
|
||||
!define MUI_LICENSEPAGE_RADIOBUTTONS
|
||||
!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_ACCEPT $(^AcceptBtn)
|
||||
!define MUI_LICENSEPAGE_RADIOBUTTONS_TEXT_DECLINE $(^DontAcceptBtn)
|
||||
|
||||
#!define MUI_COMPONENTSPAGE_CHECKBITMAP "nsis-checkboxes.bmp"
|
||||
# use small description box below components (not adjacent)
|
||||
!define MUI_COMPONENTSPAGE_SMALLDESC
|
||||
|
||||
!define MUI_DIRECTORYPAGE_TEXT_TOP $(^DirText)
|
||||
!define MUI_DIRECTORYPAGE_TEXT_DESTINATION $(^DirBrowseText)
|
||||
!define MUI_DIRECTORYPAGE_VERIFYONLEAVE
|
||||
|
||||
!define MUI_FINISHPAGE_RUN "$3"
|
||||
!define MUI_FINISHPAGE_RUN_PARAMETERS "$\"$INSTDIR\gramps.py$\""
|
||||
|
||||
!define MUI_ABORTWARNING
|
||||
|
||||
# 3. Pages {{{1
|
||||
|
||||
!insertmacro MUI_PAGE_WELCOME
|
||||
|
||||
!insertmacro MUI_PAGE_LICENSE "..\COPYING"
|
||||
|
||||
!insertmacro MUI_PAGE_COMPONENTS
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
|
||||
# Uninstaller
|
||||
|
||||
!insertmacro MUI_UNPAGE_CONFIRM
|
||||
!insertmacro MUI_UNPAGE_INSTFILES
|
||||
|
||||
# 4. Custom functions {{{1
|
||||
|
||||
# 5. Language files {{{1
|
||||
# Languages
|
||||
# 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 "Default"
|
||||
#!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"
|
||||
|
||||
!insertmacro MUI_LANGUAGE "Danish"
|
||||
!insertmacro MUI_LANGUAGE "Dutch"
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
!insertmacro MUI_LANGUAGE "French"
|
||||
!insertmacro MUI_LANGUAGE "German"
|
||||
!insertmacro MUI_LANGUAGE "Italian"
|
||||
!insertmacro MUI_LANGUAGE "Portuguese"
|
||||
!insertmacro MUI_LANGUAGE "PortugueseBR"
|
||||
!insertmacro MUI_LANGUAGE "Spanish"
|
||||
|
||||
# 6. Reserve Files {{{1
|
||||
|
||||
# 1}}}
|
||||
# 7a. Sections
|
||||
# Program Files {{{1
|
||||
######################################################################
|
||||
|
||||
Section "Program files (required)" Main
|
||||
SectionIn 1 2 3 RO
|
||||
|
||||
Call WarnDirExists
|
||||
|
||||
SetOutPath $INSTDIR
|
||||
File /r ..\src\*.*
|
||||
File ..\COPYING
|
||||
File ..\NEWS
|
||||
File ..\FAQ
|
||||
File ..\AUTHORS
|
||||
#File /r ..\nsis\gramps.ico
|
||||
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "" "$INSTDIR"
|
||||
WriteRegStr HKLM "SOFTWARE\${PRODUCT_NAME}" "version" ${PRODUCT_VERSION}
|
||||
|
||||
SectionEnd
|
||||
|
||||
# Menus and shortcuts {{{1
|
||||
|
||||
SubSection "Menus and shortcuts" MenusAndIcons
|
||||
|
||||
Section "Add GRAMPS to the Start Menu" MenuStart
|
||||
SectionIn 1 3
|
||||
# determines "Start In" location for shortcuts
|
||||
SetOutPath $INSTDIR
|
||||
|
||||
StrCpy $0 "GRAMPS"
|
||||
|
||||
IfFileExists "$SMPROGRAMS\$0" 0 skipStartMenuRemove
|
||||
RMDir /r "$SMPROGRAMS\$0\"
|
||||
skipStartMenuRemove:
|
||||
|
||||
CreateDirectory "$SMPROGRAMS\$0\"
|
||||
CreateShortCut "$SMPROGRAMS\$0\GRAMPS ${PRODUCT_VERSION}.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
|
||||
|
||||
Section "Add Desktop icon" Desktop
|
||||
#SectionIn 1 3
|
||||
# determines "Start In" location for shortcuts
|
||||
SetOutPath $INSTDIR
|
||||
CreateShortCut "${DESKTOP_LINK}" "$3" "$\"$INSTDIR\gramps.py$\"" "$INSTDIR\images\ped24.ico" "0" "" "" "GRAMPS"
|
||||
SectionEnd
|
||||
|
||||
SubSectionEnd
|
||||
|
||||
# Language Files {{{1
|
||||
|
||||
Section "Language Files" LangFiles
|
||||
# off by default
|
||||
#SectionIn 1 3
|
||||
|
||||
#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
|
||||
######################################################################
|
||||
|
||||
Section Uninstall
|
||||
|
||||
# ask first
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 \
|
||||
"Completely remove installation? $\n\
|
||||
(Delete folder $INSTDIR ) " \
|
||||
IDNO unQuit IDYES unContinue
|
||||
|
||||
unQuit:
|
||||
Abort
|
||||
|
||||
unContinue:
|
||||
ClearErrors
|
||||
RMDir /r $INSTDIR
|
||||
Call un.StartMenu
|
||||
Call un.Desktop
|
||||
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
|
||||
|
||||
DeleteRegKey HKLM "SOFTWARE\${PRODUCT_NAME}"
|
||||
|
||||
unEnd:
|
||||
|
||||
SectionEnd
|
||||
|
||||
# 1}}}
|
||||
# 7b. Functions
|
||||
# Installer {{{1
|
||||
#####################################################################
|
||||
|
||||
Function .onInit
|
||||
|
||||
#MessageBox MB_OK "Testing dependencies..."
|
||||
|
||||
; look for pythonw.exe
|
||||
; NOTE: This is set to $3 if it exists.
|
||||
|
||||
; on path
|
||||
SearchPath $3 pythonw.exe
|
||||
#MessageBox MB_OK "DEBUG: Testing pythonw.exe on path...$\n$\nFound: $\"$3$\""
|
||||
IfFileExists $3 HavePython 0
|
||||
|
||||
; registry keys (these are confirmed possibilities)
|
||||
; reg key
|
||||
ReadRegStr $3 HKLM 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\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
|
||||
; reg key
|
||||
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4' ""
|
||||
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
|
||||
; reg key
|
||||
ReadRegStr $3 HKLM 'SOFTWARE\Python\PythonCore\2.4\InstallPath' ""
|
||||
StrCpy $3 "$3pythonw.exe" ; append "pythonw.exe"
|
||||
IfFileExists $3 HavePython 0
|
||||
|
||||
|
||||
; TODO: request path from user/browse (can NSIS do this?)
|
||||
#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
|
||||
MessageBox MB_OK "Python not found."
|
||||
StrCpy $4 "flag"
|
||||
HavePython:
|
||||
|
||||
|
||||
; extract gcheck
|
||||
SetOutPath $TEMP
|
||||
|
||||
File gcheck.py
|
||||
; set INI output location ($1)
|
||||
StrCpy $1 "$TEMP\gramps-install.ini"
|
||||
|
||||
; run gcheck
|
||||
ExecWait '"$3" $TEMP\gcheck.py $1'
|
||||
|
||||
; verify INI created
|
||||
IfFileExists $1 YesINI 0
|
||||
#MessageBox MB_OK "Dependency test INI creation failed, unable to continue."
|
||||
#Abort
|
||||
MessageBox MB_OK "Dependency test INI creation failed."
|
||||
StrCpy $4 "flag"
|
||||
YesINI:
|
||||
|
||||
; verify environment test results
|
||||
; GTK+ and pygtk
|
||||
ReadINIStr $0 $1 tests gtk
|
||||
StrCmp $0 "yes" HaveGTK 0
|
||||
|
||||
; 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
|
||||
MessageBox MB_OK "GTK+ and PyGTK not found."
|
||||
StrCpy $4 "flag"
|
||||
|
||||
NoHavePyGTK:
|
||||
#MessageBox MB_OK "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
|
||||
MessageBox MB_OK "PyGTK not found."
|
||||
StrCpy $4 "flag"
|
||||
|
||||
HaveGTK:
|
||||
|
||||
# NOTE: we can not detect just pygtk via gcheck.py
|
||||
|
||||
; glade
|
||||
ReadINIStr $0 $1 tests glade
|
||||
StrCmp $0 "yes" Haveglade 0
|
||||
#MessageBox MB_OK "glade not installed, unable to continue."
|
||||
#Abort
|
||||
MessageBox MB_OK "Glade not found."
|
||||
StrCpy $4 "flag"
|
||||
Haveglade:
|
||||
; pycairo
|
||||
ReadINIStr $0 $1 tests pycairo
|
||||
StrCmp $0 "yes" Havepycairo 0
|
||||
#MessageBox MB_OK "pycairo not installed, unable to continue."
|
||||
#Abort
|
||||
MessageBox MB_OK "pycairo not found."
|
||||
StrCpy $4 "flag"
|
||||
Havepycairo:
|
||||
|
||||
#!insertmacro MUI_LANGDLL_DISPLAY
|
||||
|
||||
StrCmp $4 "flag" +1 DependantsOK
|
||||
MessageBox MB_OK "At least one dependency was not found, unable to continue."
|
||||
Abort
|
||||
|
||||
DependantsOK:
|
||||
|
||||
Call RemovePrevious
|
||||
|
||||
# default install directory ($INSTDIR)
|
||||
StrCpy $INSTDIR $PROGRAMFILES\gramps
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function .onInstSuccess
|
||||
|
||||
# write uninstaller
|
||||
WriteUninstaller $INSTDIR\uninstall.exe
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "$(^Name)"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\uninstall.exe"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${PRODUCT_VERSION}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
|
||||
WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
|
||||
#Does not display icon on win2000? WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\images\ped24.ico"
|
||||
FunctionEnd
|
||||
|
||||
Function .onInstFailed
|
||||
MessageBox MB_OK|MB_ICONEXCLAMATION "Installation failed."
|
||||
FunctionEnd
|
||||
|
||||
Function RemovePrevious
|
||||
#check if gramps exists in registry
|
||||
ClearErrors
|
||||
Var /GLOBAL PreviousPath
|
||||
ReadRegStr $PreviousPath HKLM "SOFTWARE\${PRODUCT_NAME}" ""
|
||||
# do some tests to find an installed version
|
||||
ifErrors NoPreviousVersion
|
||||
IfFileExists $PreviousPath\uninstall.exe 0 NoPreviousVersion #Check uninstall.exe from previous version exists on HD
|
||||
Var /GLOBAL PreviousVersion
|
||||
ReadRegStr $PreviousVersion HKLM "SOFTWARE\${PRODUCT_NAME}" "Version"
|
||||
# query OK to delete old version
|
||||
MessageBox MB_OKCANCEL|MB_ICONQUESTION|MB_DEFBUTTON2 \
|
||||
"${PRODUCT_NAME} $PreviousVersion is already installed$\n$\nClick 'OK' to uninstall previous version or 'Cancel' to continue anyway" \
|
||||
IDCANCEL NoPreviousVersion
|
||||
# uninstall old version
|
||||
CopyFiles $PreviousPath\uninstall.exe $TEMP
|
||||
ExecWait '"$TEMP\uninstall.exe" _?=$PreviousPath' $0
|
||||
StrCpy $INSTDIR $PreviousPath #set the previous path as the default install path <= worth while or not?
|
||||
;DetailPrint "uninstaller set error level $0"
|
||||
NoPreviousVersion:
|
||||
FunctionEnd
|
||||
|
||||
Function WarnDirExists
|
||||
# warn if dir already exists
|
||||
IfFileExists $INSTDIR\*.* DirExists DirExistsOK
|
||||
DirExists:
|
||||
MessageBox MB_YESNO|MB_ICONQUESTION|MB_DEFBUTTON2 \
|
||||
"Install over existing installation?" \
|
||||
IDYES DirExistsOK
|
||||
Quit
|
||||
DirExistsOK:
|
||||
FunctionEnd
|
||||
|
||||
# Uninstaller {{{1
|
||||
#####################################################################
|
||||
|
||||
Function un.onUnInstSuccess
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function un.StartMenu
|
||||
|
||||
IfFileExists "$SMPROGRAMS\GRAMPS" 0 unStartMenuFine
|
||||
RMDir /r "$SMPROGRAMS\GRAMPS\"
|
||||
unStartMenuFine:
|
||||
|
||||
FunctionEnd
|
||||
|
||||
Function un.Desktop
|
||||
|
||||
IfFileExists "${DESKTOP_LINK}" 0 unNoDesktop
|
||||
Delete "${DESKTOP_LINK}"
|
||||
unNoDesktop:
|
||||
|
||||
FunctionEnd
|
||||
|
||||
# 1}}}
|
||||
# 8. Section Descriptions {{{1
|
||||
######################################################################
|
||||
# (must be last)
|
||||
|
||||
LangString DESC_Main ${LANG_ENGLISH} "Main program files (required)."
|
||||
LangString DESC_MenusAndIcons ${LANG_ENGLISH} "General Desktop and Start Menu shortcut options."
|
||||
LangString DESC_Desktop ${LANG_ENGLISH} "Add icon to the Desktop."
|
||||
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."
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
||||
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Main} $(DESC_Main)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${MenusAndIcons} $(DESC_MenusAndIcons)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${Desktop} $(DESC_Desktop)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${MenuStart} $(DESC_MenuStart)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${LangFiles} $(DESC_LangFiles)
|
||||
!insertmacro MUI_DESCRIPTION_TEXT ${FileAssoc} $(DESC_FileAssoc)
|
||||
|
||||
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
||||
|
||||
# 1}}}
|
||||
# vim:foldmethod=marker:noexpandtab
|
BIN
windows/nonAIO/nsis/ped24.ico
Normal file
BIN
windows/nonAIO/nsis/ped24.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
Reference in New Issue
Block a user