]> git.street.me.uk Git - andy/viking.git/blob - win32/installer.bat
Merge branch 'WaypointsList'
[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 \r
86 :: TODO Maybe embed http://gtk-win.sourceforge.net/home/index.php/Main/EmbeddingGTK directly in NSIS?\r
87 :: Best to use the same GTK version as we built against in prepare.bat!!\r
88 echo =+=+=\r
89 echo Checking gtk runtime\r
90 echo =+=+=\r
91 set GTK_RUNTIME=gtk2-runtime-2.24.10-2012-10-10-ash.exe\r
92 pushd cache\r
93 if not exist %GTK_RUNTIME% (\r
94         set PATH=%PATH%;%ProgramFiles%\GnuWin32\bin\r
95         wget http://downloads.sourceforge.net/gtk-win/%GTK_RUNTIME%\r
96 )\r
97 if not exist %GTK_RUNTIME% (\r
98         echo Required GTK Runtime does not exist\r
99         goto Tidy\r
100 )\r
101 :: Install GTK into temporary location so we can repackage it\r
102 :: Destination path appears to have to be an absolute kind\r
103 popd\r
104 cd > tmp.tmp\r
105 set /p PWD=<tmp.tmp\r
106 del tmp.tmp\r
107 cache\%GTK_RUNTIME% /sideeffects=no /setpath=no /dllpath=root /translations=no /compatdlls=yes /S /D=%PWD%\%DESTINATION%\r
108 \r
109 ::\r
110 echo Copying Translations\r
111 %MYCOPY% installer\translations\*nsh %DESTINATION%\r
112 \r
113 echo Copying GPSBabel\r
114 :: Install it from http://www.gpsbabel.org/download.html\r
115 ::  Thus GPSBabel should be here\r
116 :: NB GPSBabel has standard GPL2 COPYING.txt file so don't need another copy\r
117 if exist "%ProgramFiles%\GPSBabel\gpsbabel.exe" (\r
118         %MYCOPY% "%ProgramFiles%\GPSBabel\gpsbabel.exe" %DESTINATION%\r
119         %MYCOPY% "%ProgramFiles%\GPSBabel\libexpat.dll" %DESTINATION%\r
120 ) else (\r
121         echo GPSBabel missing\r
122         goto Tidy\r
123 )\r
124 \r
125 echo Running NSIS (command line version)\r
126 pushd installer\r
127 if exist "%ProgramFiles%\NSIS" (\r
128         "%ProgramFiles%\NSIS\makensis.exe" viking-installer.nsi\r
129 ) else (\r
130         echo NSIS Not installed in known location\r
131 )\r
132 popd\r
133 \r
134 echo Tidy Up\r
135 :Tidy\r
136 rmdir /S /Q %DESTINATION%\r