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