]> git.street.me.uk Git - andy/viking.git/blobdiff - win32/prepare.bat
Make generation of the copyright year in the code automatic.
[andy/viking.git] / win32 / prepare.bat
index 81602e0f515f05ad21bd65a4516610bd7ebd1789..7c773447f80ccab0ceae1f7442dc8806b09f5047 100644 (file)
@@ -30,7 +30,7 @@ if not exist "%ProgramFiles%\7-Zip\7z.exe" (
        %ZIP_INST% /S
        if ERRORLEVEL 1 goto Error
 )
-
+\r
 echo =+=+=\r
 echo Checking mingw...\r
 echo =+=+=\r
@@ -73,7 +73,14 @@ set W32API_URL=%MINGW_BASE_URL%/w32api/w32api-4.0.3/%W32API_LZ%/download
 set ZLIB_LZ=zlib-1.2.8-1-mingw32-dll.tar.lzma
 set ZLIB_URL=%MINGW_BASE_URL%/zlib/zlib-1.2.8/%ZLIB_LZ%/download
 set GETTEXT_LZ=gettext-0.18.3.1-1-mingw32-dll.tar.lzma
-set GETTEXT_URL=%MINGW_BASE_URL%/gettext/gettext-0.18.3.1-1/%GETTEXT_LZ%/download
+set GETTEXT_URL=%MINGW_BASE_URL%/gettext/gettext-0.18.3.1-1/%GETTEXT_LZ%/download\r
+\r
+set GCC-CPP_BIN_LZ=gcc-c++-4.8.1-4-mingw32-bin.tar.lzma\r
+set GCC-CPP_BIN_URL=%MINGW_BASE_URL%/gcc/Version4/gcc-4.8.1-4/%GCC-CPP_BIN_LZ%/download\r
+set GCC-CPP_DEV_LZ=gcc-c++-4.8.1-4-mingw32-dev.tar.lzma\r
+set GCC-CPP_DEV_URL=%MINGW_BASE_URL%/gcc/Version4/gcc-4.8.1-4/%GCC-CPP_DEV_LZ%/download\r
+set GCC-CPP_DLL_LZ=gcc-c++-4.8.1-4-mingw32-dll.tar.lzma\r
+set GCC-CPP_DLL_URL=%MINGW_BASE_URL%/gcc/Version4/gcc-4.8.1-4/%GCC-CPP_DLL_LZ%/download\r
 \r
 if not exist "%MINGW_BIN%" (\r
        :: Here we download all default components manually in an attempt to get autoinstall to work...\r
@@ -133,6 +140,27 @@ if not exist "%MINGW_BIN%" (
 
        call :Download "%GETTEXT_LZ%" "%GETTEXT_URL%"
        call :InstallLZMA "%GETTEXT_LZ%"
+\r
+       REM Seems '+' in the filename screws things up for script function calls :(\r
+       REM call :Download "%GCC_CPP_DEV_LZ%" "%GCC_CPP_DEV_URL%"\r
+       REM call :InstallLZMA "%GCC_CPP_DEV_LZ%"\r
+\r
+       REM call :Download "%GCC_CPP_DLL_LZ%" "%GCC_CPP_DLL_URL%"\r
+       REM call :InstallLZMA "%GCC_CPP_DLL_LZ%"\r
+\r
+       REM call :Download "%GCC_CPP_BIN_LZ%" "%GCC_CPP_BIN_URL%"\r
+       REM call :InstallLZMA "%GCC_CPP_BIN_LZ%"\r
+\r
+       REM Do it every time...\r
+       wget http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.8.1-4/gcc-c++-4.8.1-4-mingw32-bin.tar.lzma/download\r
+       wget http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.8.1-4/gcc-c++-4.8.1-4-mingw32-dev.tar.lzma/download\r
+       wget http://sourceforge.net/projects/mingw/files/MinGW/Base/gcc/Version4/gcc-4.8.1-4/gcc-c++-4.8.1-4-mingw32-dll.tar.lzma/download\r
+       7z e gcc-c++-4.8.1-4-mingw32-bin.tar.lzma\r
+       7z e gcc-c++-4.8.1-4-mingw32-dev.tar.lzma\r
+       7z e gcc-c++-4.8.1-4-mingw32-dll.tar.lzma\r
+       7z x gcc-c++-4.8.1-4-mingw32-bin.tar -o"%MinGW%" -y\r
+       7z x gcc-c++-4.8.1-4-mingw32-dev.tar -o"%MinGW%" -y\r
+       7z x gcc-c++-4.8.1-4-mingw32-dll.tar -o"%MinGW%" -y\r
 )\r
 \r
 echo =+=+=\r
@@ -358,6 +386,26 @@ if not exist "%MINGW_BIN%\sqlite3.dll" (
        if ERRORLEVEL 1 goto Error
 )\r
 \r
+\r
+echo =+=+=\r
+echo Mapnik...\r
+echo =+=+=\r
+set MAPNIK_ZIP=mapnik-win-sdk-v2.2.0.zip\r
+set MAPNIK_URL=http://mapnik.s3.amazonaws.com/dist/v2.2.0/%MAPNIK_ZIP%\r
+if not exist "%MINGW_BIN%\mapnik.dll" (\r
+       call :Download "%MAPNIK_ZIP%" "%MAPNIK_URL%"\r
+       7z x %MAPNIK_ZIP%\r
+       if ERRORLEVEL 1 goto Error\r
+       copy /Y mapnik-v2.2.0\include\* "%MinGW%\include"\r
+       copy /Y mapnik-v2.2.0\lib\*.lib "%MinGW%\lib\"\r
+       copy /Y mapnik-v2.2.0\lib\*.dll "%MinGW%\bin"\r
+       copy /Y mapnik-v2.2.0\lib\mapnik\input "\"\r
+       rmdir /S /Q mapnik-v2.2.0\r
+       REM Mapnik 2.2.0 seems to ship with a unicode copy which is missing ptypes.h\r
+       REM Copy headers from a known good version...\r
+       REM See fix in calling shell script when using wine\r
+)\r
+\r
 ::\r
 :: Ideally building the code on Windows shouldn't need Doc Utils or the Help processor stuff\r
 :: But ATM it's too hard to avoid.\r
@@ -415,19 +463,38 @@ if not exist "%MINGW_BIN%\iconv.dll" (
        rmdir /Q /S %ICONV%\r
 )\r
 \r
+\r
+echo =+=+=\r
+echo Checking libzip...\r
+echo =+=+=\r
+REM Originally planned to extract from an existing MINGW32 RPM,\r
+REM  which worked OK to compile+link but Viking did not run up after install\r
+REM I think the dll is linked to a different gcc runtime\r
+set LIBZIP=mingw32-libzip-1.0.1-3\r
+set LIBZIP_RPM=mingw32-libzip-1.0.1-3.fc24.noarch.rpm\r
+if not exist "%MINGW_BIN%\libzip.dll" (\r
+       echo MANUALLY NEED TO ACQUIRE AND INSTALL LIBZIP\r
+       EXIT\r
+REM    Instead build libzip from source\r
+REM    http://www.nih.at/libzip/ - download latest source (31d625ae55b5 on 16/11/15)\r
+REM    Use CMake (v3.4.0) on Windows\r
+REM    wine cmd\r
+REM    set CC=gcc\r
+REM    set PATH=%PATH%;%SystemDrive%\Mingw\bin\r
+REM    cmake -DCMAKE_C_COMPILER:FILEPATH='gcc' -G "MSYS Makefiles" .\r
+REM    set PATH=%PATH%;%SystemDrive%\msys\1.0\bin\r
+REM    make\r
+REM    (needed to fix zipint.h to include limits.h for a successful compile)\r
+REM    Copy libzip.dll.a,libzip.dll,zip.h+zipconf.h to appropraite places.\r
+)\r
+\r
 :: Note GPSBabel can not be directly downloaded via wget\r
 :: ATM get it manually from here:\r
 ::   http://www.gpsbabel.org/download.html\r
-set GPSBABEL_INST=GPSBabel-1.4.4-Setup.exe\r
-if not exist "%ProgramFiles%\GPSBabel" (\r
-       echo Installing GPSBabel...\r
-       if exist %GPSBABEL_INST% (\r
-               %GPSBABEL_INST% /silent\r
-               if ERRORLEVEL 1 goto Error\r
-       ) else (
-               echo Required %GPSBABEL_INST% not found. Exitting
-               exit /b
-       )\r
+set GPSBABEL_INST=GPSBabel-1.5.2-Setup.exe
+if not exist %GPSBABEL_INST% (
+       echo Required %GPSBABEL_INST% not found. Exitting
+       exit /b
 )\r
 \r
 echo =+=+=\r