]> git.street.me.uk Git - andy/viking.git/blob - win32/installer.bat
Enable zooming in/out in jumps of 3 levels by pressing shift key at the same time...
[andy/viking.git] / win32 / installer.bat
1 @echo OFF\r
2 :: License: CC0\r
3 ::\r
4 :: TODO return an error code when not completed as expected\r
5 ::\r
6 echo STARTING INSTALLER PROCESS...\r
7 \r
8 :: For windres + strip\r
9 set PATH=%PATH%;%SystemDrive%\MinGW\bin\r
10 \r
11 echo Create Icon\r
12 pushd installer\pixmaps\r
13 windres.exe viking_icon.rc -o viking_icon.o\r
14 popd\r
15 \r
16 echo Remove debugging symbols\r
17 pushd ..\src\r
18 strip.exe -g viking.exe\r
19 popd\r
20 \r
21 set MYCOPY=copy /y\r
22 set DESTINATION=installer\bin\r
23 echo Copying locale files into layout required by NSIS\r
24 dir ..\po\*.gmo /B > gmolist.txt\r
25 :: Create directories like de\LC_MESSAGES\r
26 for /f %%i in (gmolist.txt) do mkdir %DESTINATION%\locale\%%~ni\LC_MESSAGES\r
27 for /f %%i in (gmolist.txt) do %MYCOPY% ..\po\%%i %DESTINATION%\locale\%%~ni\LC_MESSAGES\viking.mo\r
28 del gmolist.txt\r
29 \r
30 echo Copying Viking\r
31 %MYCOPY% ..\src\viking.exe %DESTINATION%\r
32 %MYCOPY% installer\pixmaps\viking_icon.ico %DESTINATION%\r
33 %MYCOPY% ..\COPYING %DESTINATION%\COPYING_GPL.txt\r
34 %MYCOPY% ..\AUTHORS %DESTINATION%\AUTHORS.txt\r
35 %MYCOPY% ..\NEWS %DESTINATION%\NEWS.txt\r
36 %MYCOPY% ..\README %DESTINATION%\README.txt\r
37 :: ATM this relies on being generated by an external system\r
38 %MYCOPY% cache\ChangeLog.txt %DESTINATION%\r
39 :: ATM this relies on being generated by an external system\r
40 %MYCOPY% ..\help\C\viking.pdf %DESTINATION%\r
41 \r
42 \r
43 echo Copying Libraries\r
44 set MINGW=C:\MinGW\r
45 if not exist "%MINGW%" (\r
46         echo Required %MINGW% does not exist\r
47         goto Tidy\r
48 )\r
49 \r
50 set MINGW_BIN=%MINGW%\Bin\r
51 \r
52 set LIBCURL=%MINGW_BIN%\libcurl.dll\r
53 if exist "%LIBCURL%" (\r
54         %MYCOPY% "%LIBCURL%" %DESTINATION%\r
55         %MYCOPY% "%MINGW%\COPYING_curl.txt" %DESTINATION%\r
56 \r
57 ) else (\r
58         echo %LIBCURL% does not exist\r
59         goto Tidy\r
60 )\r
61 set LIBEXIF=%MINGW_BIN%\libexif-12.dll\r
62 if exist "%LIBEXIF%" (\r
63         %MYCOPY% "%LIBEXIF%" %DESTINATION%\r
64 ) else (\r
65         echo Required %LIBEXIF% does not exist\r
66         goto Tidy\r
67 )\r
68 set LIBBZ2=%MINGW_BIN%\libbz2-2.dll\r
69 if exist "%LIBBZ2%" (\r
70         %MYCOPY% "%LIBBZ2%" %DESTINATION%\r
71         %MYCOPY% "%MINGW_BIN%\libgcc_s_dw2-1.dll" %DESTINATION%\r
72 ) else (\r
73         echo Required %LIBBZ2% does not exist\r
74         goto Tidy\r
75 )\r
76 set LIBMAGIC=%MINGW_BIN%\magic1.dll\r
77 if exist "%LIBMAGIC%" (\r
78         %MYCOPY% "%LIBMAGIC%" %DESTINATION%\r
79         %MYCOPY% "%MINGW_BIN%\regex2.dll" %DESTINATION%\r
80         %MYCOPY% "%MINGW%\share\misc\magic.mgc" %DESTINATION%\r
81 ) else (\r
82         echo Required %LIBMAGIC% does not exist\r
83         goto Tidy\r
84 )\r
85 set LIBSQL3=%MINGW_BIN%\sqlite3.dll\r
86 if exist "%LIBSQL3%" (\r
87         %MYCOPY% "%LIBSQL3%" %DESTINATION%\r
88 ) else (\r
89         echo Required %LIBSQL3% does not exist\r
90         goto Tidy\r
91 )\r
92 \r
93 :: TODO Maybe embed http://gtk-win.sourceforge.net/home/index.php/Main/EmbeddingGTK directly in NSIS?\r
94 :: Best to use the same GTK version as we built against in prepare.bat!!\r
95 echo =+=+=\r
96 echo Checking gtk runtime\r
97 echo =+=+=\r
98 set GTK_RUNTIME=gtk2-runtime-2.24.10-2012-10-10-ash.exe\r
99 pushd cache\r
100 if not exist %GTK_RUNTIME% (\r
101         set PATH=%PATH%;%ProgramFiles%\GnuWin32\bin\r
102         wget http://downloads.sourceforge.net/gtk-win/%GTK_RUNTIME%\r
103 )\r
104 if not exist %GTK_RUNTIME% (\r
105         echo Required GTK Runtime does not exist\r
106         goto Tidy\r
107 )\r
108 :: Install GTK into temporary location so we can repackage it\r
109 :: Destination path appears to have to be an absolute kind\r
110 popd\r
111 cd > tmp.tmp\r
112 set /p PWD=<tmp.tmp\r
113 del tmp.tmp\r
114 cache\%GTK_RUNTIME% /sideeffects=no /setpath=no /dllpath=root /translations=no /compatdlls=yes /S /D=%PWD%\%DESTINATION%\r
115 \r
116 ::\r
117 echo Copying Translations\r
118 %MYCOPY% installer\translations\*nsh %DESTINATION%\r
119 \r
120 echo Copying GPSBabel\r
121 :: Install it from http://www.gpsbabel.org/download.html\r
122 ::  Thus GPSBabel should be here\r
123 :: NB GPSBabel has standard GPL2 COPYING.txt file so don't need another copy\r
124 if exist "%ProgramFiles%\GPSBabel\gpsbabel.exe" (\r
125         %MYCOPY% "%ProgramFiles%\GPSBabel\gpsbabel.exe" %DESTINATION%\r
126         %MYCOPY% "%ProgramFiles%\GPSBabel\libexpat.dll" %DESTINATION%\r
127 ) else (\r
128         echo GPSBabel missing\r
129         goto Tidy\r
130 )\r
131 \r
132 echo Running NSIS (command line version)\r
133 pushd installer\r
134 if exist "%ProgramFiles%\NSIS" (\r
135         "%ProgramFiles%\NSIS\makensis.exe" viking-installer.nsi\r
136 ) else (\r
137         echo NSIS Not installed in known location\r
138 )\r
139 popd\r
140 \r
141 echo Tidy Up\r
142 :Tidy\r
143 rmdir /S /Q %DESTINATION%\r