2013-10-20 02:51:35 +02:00
@ echo off
2012-10-06 13:10:25 +02:00
REM ***************************************************************************
REM package-nightly.cmd
REM ---------------------
REM begin : January 2011
REM copyright : (C) 2011 by Juergen E. Fischer
REM email : jef at norbit dot de
REM ***************************************************************************
REM * *
REM * This program is free software; you can redistribute it and/or modify *
REM * it under the terms of the GNU General Public License as published by *
REM * the Free Software Foundation; either version 2 of the License, or *
REM * (at your option) any later version. *
REM * *
REM ***************************************************************************
2013-07-29 22:24:19 +02:00
set GRASS_VERSION = 6.4.3
2011-01-29 15:16:57 +00:00
set VERSION = %1
set PACKAGE = %2
set PACKAGENAME = %3
2013-10-20 02:51:35 +02:00
set ARCH = %4
if " %VERSION% " == " " goto usage
if " %PACKAGE% " == " " goto usage
if " %PACKAGENAME% " == " " goto usage
if " %ARCH% " == " " goto usage
2011-01-29 15:16:57 +00:00
2013-10-20 02:51:35 +02:00
set BUILDDIR = %CD% \build-nightly-%ARCH%
2011-01-29 15:16:57 +00:00
2013-10-20 02:51:35 +02:00
if " %OSGEO4W_ROOT% " == " " (
if " %ARCH% " == " x86 " (
set OSGEO4W_ROOT = C:\OSGeo4W
) else (
set OSGEO4W_ROOT = C:\OSGeo4W64
)
)
2011-01-29 15:16:57 +00:00
2013-10-20 02:51:35 +02:00
if not exist " %BUILDDIR% " mkdir %BUILDDIR%
2014-04-18 16:20:52 +02:00
if not exist " %BUILDDIR% " ( echo could not create build directory %BUILDDIR% & goto error )
2011-01-29 15:16:57 +00:00
2014-04-18 16:20:52 +02:00
if not exist " %OSGEO4W_ROOT% \bin\o4w_env.bat " ( echo o4w_env.bat not found & goto error )
2011-01-29 15:16:57 +00:00
call " %OSGEO4W_ROOT% \bin\o4w_env.bat "
set O4W_ROOT = %OSGEO4W_ROOT:\=/%
set LIB_DIR = %O4W_ROOT%
2013-10-21 22:16:29 +02:00
if not " %PROGRAMFILES(X86)% " == " " set PF86 = %PROGRAMFILES(X86)%
if " %PF86% " == " " set PF86 = %PROGRAMFILES%
2014-04-18 16:20:52 +02:00
if " %PF86% " == " " ( echo PROGRAMFILES not set & goto error )
2013-10-21 22:16:29 +02:00
2013-10-20 02:51:35 +02:00
if " %ARCH% " == " x86 " goto devenv_x86
goto devenv_x86_64
: devenv_x86
2013-10-21 22:16:29 +02:00
set VS90COMNTOOLS = %PF86% \Microsoft Visual Studio 9.0\Common7\Tools\
call " %PF86% \Microsoft Visual Studio 9.0\VC\vcvarsall.bat " x86
2013-10-20 02:51:35 +02:00
set CMAKE_OPT = ^
-G " Visual Studio 9 2008 " ^
-D BUILDNAME=" OSGeo4W-Nightly-VC9 " ^
-D SIP_BINARY_PATH=%O4W_ROOT% /apps/Python27/sip.exe ^
-D CMAKE_CXX_FLAGS_RELWITHDEBINFO=" /MD /ZI /MP /Od /D NDEBUG /D QGISDEBUG "
goto devenv
: devenv_x86_64
2013-10-21 22:16:29 +02:00
call " %PF86% \Microsoft Visual Studio 10.0\VC\vcvarsall.bat " amd64
2014-04-18 16:20:52 +02:00
if exist " c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd " call " c:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd " /x64 /Release
set SETUPAPI_LIBRARY = %PF86% \Microsoft SDKs\Windows\v7.0A\Lib\x64\SetupAPI.Lib
if not exist " %SETUPAPI_LIBRARY% " set SETUPAPI_LIBRARY = %PROGRAMFILES% \Microsoft SDKs\Windows\v7.1\Lib\x64\SetupAPI.lib
if not exist " %SETUPAPI_LIBRARY% " ( echo SETUPAPI_LIBRARY not found & goto error )
2013-10-20 02:51:35 +02:00
set CMAKE_OPT = ^
-G " Visual Studio 10 Win64 " ^
-D BUILDNAME=" OSGeo4W-Nightly-VC10-64 " ^
-D SPATIALINDEX_LIBRARY=%O4W_ROOT% /lib/spatialindex-64.lib ^
-D SIP_BINARY_PATH=%O4W_ROOT% /bin/sip.exe ^
-D CMAKE_CXX_FLAGS_RELWITHDEBINFO=" /MD /Zi /MP /Od /D NDEBUG /D QGISDEBUG " ^
2014-04-18 16:20:52 +02:00
-D SETUPAPI_LIBRARY=" %SETUPAPI_LIBRARY% " ^
-D CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_NO_WARNINGS=TRUE
2013-10-20 02:51:35 +02:00
: devenv
set PYTHONPATH =
2013-10-21 22:16:29 +02:00
path %PF86% \CMake 2.8\bin;%PATH% ;c:\cygwin\bin
2011-01-29 15:16:57 +00:00
PROMPT qgis%VERSION% $g
set BUILDCONF = RelWithDebInfo
cd ..\..
set SRCDIR = %CD%
if " %BUILDDIR:~1,1% " == " : " %BUILDDIR:~0,2%
cd %BUILDDIR%
2012-06-19 02:57:38 +02:00
if exist repackage goto package
2011-01-29 15:16:57 +00:00
if not exist build.log goto build
REM
REM try renaming the logfile to see if it's locked
REM
if exist build.tmp del build.tmp
2014-04-18 16:20:52 +02:00
if exist build.tmp ( echo could not remove build.tmp & goto error )
2011-01-29 15:16:57 +00:00
ren build.log build.tmp
if exist build.log goto locked
if not exist build.tmp goto locked
ren build.tmp build.log
if exist build.tmp goto locked
if not exist build.log goto locked
goto build
: locked
echo Logfile locked
if exist build.tmp del build.tmp
goto error
: build
2014-04-18 16:20:52 +02:00
echo BEGIN: %DATE% %TIME%
2011-01-29 15:16:57 +00:00
set > buildenv.log
2014-02-21 22:39:04 +01:00
if exist qgsversion.h del qgsversion.h
2011-01-29 15:16:57 +00:00
if exist CMakeCache.txt goto skipcmake
2014-04-18 16:20:52 +02:00
echo CMAKE: %DATE% %TIME%
2011-01-29 15:16:57 +00:00
if errorlevel 1 goto error
set LIB = %LIB% ;%OSGEO4W_ROOT% \lib
set INCLUDE = %INCLUDE% ;%OSGEO4W_ROOT% \include
2013-01-27 20:33:50 +01:00
set GRASS_PREFIX = %O4W_ROOT% /apps/grass/grass-%GRASS_VERSION%
2011-01-29 15:16:57 +00:00
2013-10-20 02:51:35 +02:00
cmake %CMAKE_OPT% ^
2012-04-19 23:18:19 +02:00
-D SITE=" qgis.org " ^
2011-01-29 15:16:57 +00:00
-D PEDANTIC=TRUE ^
2013-02-19 20:06:33 +01:00
-D WITH_QSPATIALITE=TRUE ^
2011-01-29 15:16:57 +00:00
-D WITH_MAPSERVER=TRUE ^
2013-05-22 14:17:12 +02:00
-D MAPSERVER_SKIP_ECW=TRUE ^
2011-05-06 16:39:45 +02:00
-D WITH_ASTYLE=TRUE ^
2011-07-11 17:04:47 +02:00
-D WITH_GLOBE=TRUE ^
2012-06-25 13:11:45 +02:00
-D WITH_TOUCH=TRUE ^
2013-01-09 16:46:30 +01:00
-D WITH_ORACLE=TRUE ^
2013-10-20 02:51:35 +02:00
-D WITH_GRASS=TRUE ^
-D CMAKE_BUILD_TYPE=%BUILDCONF% ^
2011-01-29 15:16:57 +00:00
-D CMAKE_CONFIGURATION_TYPES=%BUILDCONF% ^
2013-01-09 18:52:47 +01:00
-D GEOS_LIBRARY=%O4W_ROOT% /lib/geos_c.lib ^
2012-04-17 22:43:02 +02:00
-D SQLITE3_LIBRARY=%O4W_ROOT% /lib/sqlite3_i.lib ^
-D SPATIALITE_LIBRARY=%O4W_ROOT% /lib/spatialite_i.lib ^
2011-01-29 15:16:57 +00:00
-D PYTHON_EXECUTABLE=%O4W_ROOT% /bin/python.exe ^
2012-01-24 09:11:57 +01:00
-D PYTHON_INCLUDE_PATH=%O4W_ROOT% /apps/Python27/include ^
-D PYTHON_LIBRARY=%O4W_ROOT% /apps/Python27/libs/python27.lib ^
2011-01-29 15:16:57 +00:00
-D QT_BINARY_DIR=%O4W_ROOT% /bin ^
-D QT_LIBRARY_DIR=%O4W_ROOT% /lib ^
-D QT_HEADERS_DIR=%O4W_ROOT% /include/qt4 ^
-D QWT_INCLUDE_DIR=%O4W_ROOT% /include/qwt ^
-D QWT_LIBRARY=%O4W_ROOT% /lib/qwt5.lib ^
-D CMAKE_INSTALL_PREFIX=%O4W_ROOT% /apps/%PACKAGENAME% ^
-D FCGI_INCLUDE_DIR=%O4W_ROOT% /include ^
-D FCGI_LIBRARY=%O4W_ROOT% /lib/libfcgi.lib ^
2014-04-18 16:20:52 +02:00
%SRCDIR%
if errorlevel 1 ( echo cmake failed & goto error )
2011-01-29 15:16:57 +00:00
: skipcmake
2014-04-18 16:20:52 +02:00
if exist noclean ( echo skip clean & goto skipclean )
echo CLEAN: %DATE% %TIME%
cmake --build %BUILDDIR% --target clean --config %BUILDCONF%
if errorlevel 1 ( echo clean failed & goto error )
2011-01-29 15:16:57 +00:00
2014-02-21 22:39:04 +01:00
: skipclean
2014-04-18 16:20:52 +02:00
echo ALL_BUILD: %DATE% %TIME%
cmake --build %BUILDDIR% --config %BUILDCONF%
if errorlevel 1 cmake --build %BUILDDIR% --config %BUILDCONF%
if errorlevel 1 ( echo build failed twice & goto error )
2013-10-20 02:51:35 +02:00
if not exist ..\skiptests (
2014-04-18 16:20:52 +02:00
echo RUN_TESTS: %DATE% %TIME%
cmake --build %BUILDDIR% --target Nightly --config %BUILDCONF%
if errorlevel 1 echo TESTS WERE NOT SUCCESSFUL.
2013-10-20 02:51:35 +02:00
)
2011-01-29 15:16:57 +00:00
2013-10-20 02:51:35 +02:00
set PKGDIR = %OSGEO4W_ROOT% \apps\%PACKAGENAME%
2011-11-15 20:54:01 +01:00
2013-10-20 02:51:35 +02:00
if exist %PKGDIR% (
2014-04-18 16:20:52 +02:00
echo REMOVE: %DATE% %TIME%
2013-10-20 02:51:35 +02:00
rmdir /s /q %PKGDIR%
2013-09-25 22:43:42 +02:00
)
2013-09-21 14:16:38 +02:00
2014-04-18 16:20:52 +02:00
echo INSTALL: %DATE% %TIME%
cmake --build %BUILDDIR% --target INSTALL --config %BUILDCONF%
2013-10-20 02:51:35 +02:00
if errorlevel 1 ( echo INSTALL failed & goto error )
2011-01-29 15:16:57 +00:00
2012-06-19 02:57:38 +02:00
: package
2014-04-18 16:20:52 +02:00
echo PACKAGE: %DATE% %TIME%
2011-01-29 15:16:57 +00:00
cd ..
2012-06-17 14:46:43 +02:00
sed -e 's/@package@/%PACKAGENAME% /g' -e 's/@version@/%VERSION% /g' -e 's/@grassversion@/%GRASS_VERSION% /g' postinstall-dev.bat > %OSGEO4W_ROOT% \etc\postinstall\%PACKAGENAME% .bat
sed -e 's/@package@/%PACKAGENAME% /g' -e 's/@version@/%VERSION% /g' -e 's/@grassversion@/%GRASS_VERSION% /g' preremove-desktop.bat > %OSGEO4W_ROOT% \etc\preremove\%PACKAGENAME% .bat
2011-04-28 20:54:43 +00:00
sed -e 's/@package@/%PACKAGENAME% /g' -e 's/@version@/%VERSION% /g' -e 's/@grassversion@/%GRASS_VERSION% /g' qgis.bat.tmpl > %OSGEO4W_ROOT% \bin\%PACKAGENAME% .bat.tmpl
2011-05-23 18:35:54 +02:00
sed -e 's/@package@/%PACKAGENAME% /g' -e 's/@version@/%VERSION% /g' -e 's/@grassversion@/%GRASS_VERSION% /g' browser.bat.tmpl > %OSGEO4W_ROOT% \bin\%PACKAGENAME% -browser.bat.tmpl
2011-04-28 20:54:43 +00:00
sed -e 's/@package@/%PACKAGENAME% /g' -e 's/@version@/%VERSION% /g' -e 's/@grassversion@/%GRASS_VERSION% /g' qgis.reg.tmpl > %OSGEO4W_ROOT% \apps\%PACKAGENAME% \bin\qgis.reg.tmpl
2011-01-29 15:16:57 +00:00
REM sed -e 's/%OSGEO4W_ROOT:\=\\\\\\\\%/@osgeo4w@/' %OSGEO4W_ROOT%\apps\%PACKAGENAME%\python\qgis\qgisconfig.py >%OSGEO4W_ROOT%\apps\%PACKAGENAME%\python\qgis\qgisconfig.py.tmpl
2013-10-20 02:51:35 +02:00
REM if errorlevel 1 (echo creation of qgisconfig.py.tmpl failed & goto error)
2011-01-29 15:16:57 +00:00
2013-10-20 02:51:35 +02:00
REM del %PKGDIR%\python\qgis\qgisconfig.py
2011-01-29 15:16:57 +00:00
touch exclude
2013-10-20 02:51:35 +02:00
move %PKGDIR% \bin\qgis.exe %OSGEO4W_ROOT% \bin\%PACKAGENAME% -bin.exe
move %PKGDIR% \bin\qbrowser.exe %OSGEO4W_ROOT% \bin\%PACKAGENAME% -browser-bin.exe
2012-06-19 02:57:38 +02:00
2013-10-20 02:51:35 +02:00
if not exist %ARCH% \release\qgis\%PACKAGENAME% mkdir %ARCH% \release\qgis\%PACKAGENAME%
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/%PACKAGENAME% /%PACKAGENAME% -%VERSION% -%PACKAGE% .tar.bz2 ^
2011-01-29 15:16:57 +00:00
--exclude-from exclude ^
apps/%PACKAGENAME% ^
2013-04-27 10:16:53 +02:00
bin/%PACKAGENAME% -bin.exe ^
bin/%PACKAGENAME% -browser-bin.exe ^
2011-01-29 15:16:57 +00:00
bin/%PACKAGENAME% .bat.tmpl ^
2011-05-25 20:28:03 +02:00
bin/%PACKAGENAME% -browser.bat.tmpl ^
2013-01-09 16:46:30 +01:00
apps/qt4/plugins/sqldrivers/qsqlocispatial.dll ^
2013-02-17 22:14:13 +01:00
apps/qt4/plugins/sqldrivers/qsqlspatialite.dll ^
2011-01-29 15:16:57 +00:00
etc/postinstall/%PACKAGENAME% .bat ^
2014-04-18 16:20:52 +02:00
etc/preremove/%PACKAGENAME% .bat
2013-10-20 02:51:35 +02:00
if errorlevel 1 ( echo tar failed & goto error )
2011-01-29 15:16:57 +00:00
goto end
2013-10-20 02:51:35 +02:00
: usage
echo usage: %0 version package packagename arch
echo sample: %0 2.1.0 38 qgis-dev x86_64
exit
2011-01-29 15:16:57 +00:00
: error
echo BUILD ERROR %ERRORLEVEL% : %DATE% %TIME%
2014-04-18 16:20:52 +02:00
echo BUILD ERROR %ERRORLEVEL% : %DATE% %TIME%
2011-01-29 15:16:57 +00:00
if exist %PACKAGENAME% -%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -%VERSION% -%PACKAGE% .tar.bz2
: end
2014-04-18 16:20:52 +02:00
echo FINISHED: %DATE% %TIME%