@@ -1,3 +1,4 @@
@ echo off
REM ***************************************************************************
REM package.cmd
REM ---------------------
Expand All
@@ -12,47 +13,74 @@ REM * the Free Software Foundation; either version 2 of the License, or *
REM * (at your option) any later version. *
REM * *
REM ***************************************************************************
@ echo off
set GRASS_VERSION = 6.4.3
set BUILDDIR = %CD% \build
REM set BUILDDIR=%TEMP%\qgis_unstable
set LOG = %BUILDDIR% \build.log
if not exist " %BUILDDIR% " mkdir %BUILDDIR%
if not exist " %BUILDDIR% " goto error
set VERSION = %1
set PACKAGE = %2
set PACKAGENAME = %3
if " %VERSION% " == " " goto error
if " %PACKAGE% " == " " goto error
if " %PACKAGENAME% " == " " set PACKAGENAME = qgis
set ARCH = %4
if " %VERSION% " == " " goto usage
if " %PACKAGE% " == " " goto usage
if " %PACKAGENAME% " == " " goto usage
if " %ARCH% " == " " goto usage
path %SYSTEMROOT% \system32; %SYSTEMROOT% ; %SYSTEMROOT% \System32\Wbem; %PROGRAMFILES% \CMake 2.8\bin
set PYTHONPATH =
set BUILDDIR = %CD% \build- %ARCH%
set LOG = %BUILDDIR% \build.log
set VS90COMNTOOLS = %PROGRAMFILES% \Microsoft Visual Studio 9.0\Common7\Tools\
call " %PROGRAMFILES% \Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
if " %OSGEO4W_ROOT% " == " " (
if " %ARCH% " == " x86" (
set OSGEO4W_ROOT = C:\OSGeo4W
) else (
set OSGEO4W_ROOT = C:\OSGeo4W64
)
)
if not exist " %BUILDDIR% " mkdir %BUILDDIR%
if not exist " %BUILDDIR% " (echo " could not create build directory %BUILDDIR% " & goto error)
if " %OSGEO4W_ROOT% " == " " set OSGEO4W_ROOT = %PROGRAMFILES% \OSGeo4W
if not exist " %OSGEO4W_ROOT% \bin\o4w_env.bat" goto error
if not exist " %OSGEO4W_ROOT% \bin\o4w_env.bat" (echo " o4w_env.bat not found" & goto error)
call " %OSGEO4W_ROOT% \bin\o4w_env.bat"
path %PATH% ;c:\cygwin\bin
set O4W_ROOT = %OSGEO4W_ROOT:\ =/ %
set LIB_DIR = %O4W_ROOT%
if " %ARCH% " == " x86" goto devenv_x86
goto devenv_x86_64
:devenv_x86
if " %PROGRAMFILES(X86)% " == " " set " PROGRAMFILES(X86)" = %PROGRAMFILES%
set VS90COMNTOOLS=%PROGRAMFILES(X86)% \Microsoft Visual Studio 9.0\Common7\Tools\
call " %PROGRAMFILES(X86)% \Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
set DEVENV =
if exist " %DevEnvDir% \vcexpress.exe" set DEVENV = vcexpress
if exist " %DevEnvDir% \devenv.exe" set DEVENV = devenv
if " %DEVENV% " == " " goto error
PROMPT qgis%VERSION% $g
set CMAKE_OPT = ^
-G " Visual Studio 9 2008" ^
-D SIP_BINARY_PATH=%O4W_ROOT% /apps/Python27/sip.exe ^
-D QT_ZLIB_LIBRARY=%O4W_ROOT% /lib/zlib.lib ^
-D QT_PNG_LIBRARY=%O4W_ROOT% /lib/libpng13.lib
goto devenv
set BUILDCONF = RelWithDebInfo
REM set BUILDCONF=Release
:devenv_x86_64
call " %PROGRAMFILES(X86)% \Microsoft Visual Studio 10.0\VC\vcvarsall.bat" amd64
set DEVENV = devenv
set CMAKE_OPT = ^
-G " Visual Studio 10 Win64" ^
-D SPATIALINDEX_LIBRARY=%O4W_ROOT% /lib/spatialindex-64.lib ^
-D SIP_BINARY_PATH=%O4W_ROOT% /bin/sip.exe ^
-D SETUPAPI_LIBRARY=" %PROGRAMFILES(X86)% /Microsoft SDKs/Windows/v7.0A/Lib/x64/SetupAPI.Lib"
:devenv
set PYTHONPATH =
path %PROGRAMFILES(X86)% \CMake 2.8\bin;%PATH% ;c:\cygwin\bin
if " %DEVENV% " == " " (echo " DEVENV not found" & goto error)
PROMPT qgis%VERSION% $g
set BUILDCONF = Release
cd ..\..
set SRCDIR = %CD%
Expand All
@@ -69,7 +97,7 @@ REM try renaming the logfile to see if it's locked
REM
if exist build.tmp del build.tmp
if exist build.tmp goto error
if exist build.tmp (echo " could not remove build.tmp " & goto error)
ren build.log build.tmp
if exist build.log goto locked
Expand All
@@ -89,7 +117,7 @@ goto error
:build
echo Logging to %LOG%
echo BEGIN: %DATE% %TIME% >> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo " could not write to log %LOG% " & goto error)
set > buildenv.log
Expand All
@@ -102,14 +130,16 @@ set LIB=%LIB%;%OSGEO4W_ROOT%\lib
set INCLUDE = %INCLUDE% ;%OSGEO4W_ROOT% \include
set GRASS_PREFIX = %O4W_ROOT% /apps/grass/grass-%GRASS_VERSION%
cmake -G " Visual Studio 9 2008 " ^
cmake %CMAKE_OPT% ^
-D PEDANTIC=TRUE ^
-D WITH_QSPATIALITE=TRUE ^
-D WITH_MAPSERVER=TRUE ^
-D MAPSERVER_SKIP_ECW=TRUE ^
-D WITH_GLOBE=TRUE ^
-D WITH_TOUCH=TRUE ^
-D WITH_ORACLE=TRUE ^
-D WITH_GRASS=TRUE ^
-D CMAKE_CXX_FLAGS_RELEASE=" /MD /MP /O2 /Ob2 /D NDEBUG" ^
-D CMAKE_BUILD_TYPE=%BUILDCONF% ^
-D CMAKE_CONFIGURATION_TYPES=%BUILDCONF% ^
-D GEOS_LIBRARY=%O4W_ROOT% /lib/geos_c.lib ^
Expand All
@@ -118,43 +148,42 @@ cmake -G "Visual Studio 9 2008" ^
-D PYTHON_EXECUTABLE=%O4W_ROOT% /bin/python.exe ^
-D PYTHON_INCLUDE_PATH=%O4W_ROOT% /apps/Python27/include ^
-D PYTHON_LIBRARY=%O4W_ROOT% /apps/Python27/libs/python27.lib ^
-D SIP_BINARY_PATH=%O4W_ROOT% /apps/Python27/sip.exe ^
-D QT_BINARY_DIR=%O4W_ROOT% /bin ^
-D QT_LIBRARY_DIR=%O4W_ROOT% /lib ^
-D QT_HEADERS_DIR=%O4W_ROOT% /include/qt4 ^
-D QT_ZLIB_LIBRARY=%O4W_ROOT% /lib/zlib.lib ^
-D QT_PNG_LIBRARY=%O4W_ROOT% /lib/libpng13.lib ^
-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 CMAKE_CXX_FLAGS_RELWITHDEBINFO=" /MD /ZI /Od /D NDEBUG" ^
-D FCGI_INCLUDE_DIR=%O4W_ROOT% /include ^
-D FCGI_LIBRARY=%O4W_ROOT% /lib/libfcgi.lib ^
%SRCDIR% >> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo " cmake failed " & goto error)
REM bail out if python or grass was not found
grep -Eq " ^(Python not being built|Could not find GRASS)" %LOG%
if not errorlevel 1 goto error
if not errorlevel 1 (echo " python or grass not found " & goto error)
:skipcmake
echo ZERO_CHECK: %DATE% %TIME% >> %LOG% 2 >& 1
%DEVENV% qgis%VERSION% .sln /Project ZERO_CHECK /Build %BUILDCONF% /Out %LOG% >> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo " ZERO_CHECK failed " & goto error)
echo ALL_BUILD: %DATE% %TIME% >> %LOG% 2 >& 1
%DEVENV% qgis%VERSION% .sln /Project ALL_BUILD /Build %BUILDCONF% /Out %LOG% >> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo " ALL_BUILD failed" & goto error)
set PKGDIR = %OSGEO4W_ROOT% \apps\%PACKAGENAME%
if exist %OSGEO4W_ROOT% \apps\ %PACKAGENAME % (
if exist %PKGDIR % (
echo REMOVE: %DATE% %TIME% >> %LOG% 2 >& 1
rmdir /s /q %OSGEO4W_ROOT% \apps\%PACKAGENAME%
rmdir /s /q %PKGDIR%
if errorlevel 1 (echo " could not remove package directory %PKGDIR% " & goto error)
)
echo INSTALL: %DATE% %TIME% >> %LOG% 2 >& 1
%DEVENV% qgis%VERSION% .sln /Project INSTALL /Build %BUILDCONF% /Out %LOG% >> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo INSTALL failed & goto error)
:package
echo PACKAGE: %DATE% %TIME% >> %LOG% 2 >& 1
Expand All
@@ -174,19 +203,19 @@ if not exist %OSGEO4W_ROOT%\httpd.d mkdir %OSGEO4W_ROOT%\httpd.d
sed -e 's/@ package@ /%PACKAGENAME% /g' -e 's/@ version@ /%VERSION% /g' -e 's/@ grassversion@ /%GRASS_VERSION% /g' httpd.conf.tmpl > %OSGEO4W_ROOT% \httpd.d\httpd_%PACKAGENAME% .conf.tmpl
REM sed -e 's/%OSGEO4W_ROOT:\=\\\\\\\\%/@osgeo4w@/' %OSGEO4W_ROOT%\apps\%PACKAGENAME%\python\qgis\qgisconfig.py > %OSGEO4W_ROOT%\apps\%PACKAGENAME%\python\qgis\qgisconfig.py.tmpl
REM if errorlevel 1 goto error
REM if errorlevel 1 (echo creation of qgisconfig.py.tmpl failed & goto error)
REM del %OSGEO4W_ROOT%\apps\%PACKAGENAME %\python\qgis\qgisconfig.py
REM del %PKGDIR %\python\qgis\qgisconfig.py
touch exclude
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME% -common-%VERSION% -%PACKAGE% .tar.bz2 ^
for %%i in (" " " -common" " -server" " -devel" " -grass-plugin" " -globe-plugin" " -oracle-provider" ) do (
if not exist %ARCH% \release\qgis\%PACKAGENAME% %%i mkdir %ARCH% \release\qgis\%PACKAGENAME% %%i
)
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/%PACKAGENAME% -common/%PACKAGENAME% -common-%VERSION% -%PACKAGE% .tar.bz2 ^
--exclude-from exclude ^
--exclude " *.pyc" ^
" apps/%PACKAGENAME% /bin/Microsoft.VC90.CRT.manifest" ^
" apps/%PACKAGENAME% /bin/msvcm90.dll" ^
" apps/%PACKAGENAME% /bin/msvcp90.dll" ^
" apps/%PACKAGENAME% /bin/msvcr90.dll" ^
" apps/%PACKAGENAME% /bin/qgispython.dll" ^
" apps/%PACKAGENAME% /bin/qgis_analysis.dll" ^
" apps/%PACKAGENAME% /bin/qgis_networkanalysis.dll" ^
Expand Down
Expand Up
@@ -216,9 +245,9 @@ tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-common-%VERSION%-%PACKAGE%.tar.bz2 ^
" apps/%PACKAGENAME% /crssync.exe" ^
" etc/postinstall/%PACKAGENAME% -common.bat" ^
>> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo tar common failed & goto error)
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME% -server-%VERSION% -%PACKAGE% .tar.bz2 ^
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/ %PACKAGENAME% -server/ % PACKAGENAME% -server-%VERSION% -%PACKAGE% .tar.bz2 ^
--exclude-from exclude ^
--exclude " *.pyc" ^
" apps/%PACKAGENAME% /bin/qgis_mapserv.fcgi.exe" ^
Expand All
@@ -228,11 +257,12 @@ tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-server-%VERSION%-%PACKAGE%.tar.bz2 ^
" etc/postinstall/%PACKAGENAME% -server.bat" ^
" etc/preremove/%PACKAGENAME% -server.bat" ^
>> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo tar server failed & goto error)
move %PKGDIR% \bin\qgis.exe %OSGEO4W_ROOT% \bin\%PACKAGENAME% -bin.exe
move %PKGDIR% \bin\qbrowser.exe %OSGEO4W_ROOT% \bin\%PACKAGENAME% -browser-bin.exe
move %OSGEO4W_ROOT% \apps\%PACKAGENAME% \bin\qgis.exe %OSGEO4W_ROOT% \bin\%PACKAGENAME% -bin.exe
move %OSGEO4W_ROOT% \apps\%PACKAGENAME% \bin\qbrowser.exe %OSGEO4W_ROOT% \bin\%PACKAGENAME% -browser-bin.exe
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME% -%VERSION% -%PACKAGE% .tar.bz2 ^
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/%PACKAGENAME% /%PACKAGENAME% -%VERSION% -%PACKAGE% .tar.bz2 ^
--exclude-from exclude ^
--exclude " *.pyc" ^
" bin/%PACKAGENAME% -browser-bin.exe" ^
Expand Down
Expand Up
@@ -266,9 +296,9 @@ tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-%VERSION%-%PACKAGE%.tar.bz2 ^
" etc/postinstall/%PACKAGENAME% .bat" ^
" etc/preremove/%PACKAGENAME% .bat" ^
>> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo tar desktop failed & goto error)
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME% -grass-plugin-%VERSION% -%PACKAGE% .tar.bz2 ^
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/ %PACKAGENAME% -grass-plugin/ % PACKAGENAME% -grass-plugin-%VERSION% -%PACKAGE% .tar.bz2 ^
--exclude-from exclude ^
--exclude " *.pyc" ^
" apps/%PACKAGENAME% /grass" ^
Expand All
@@ -278,43 +308,44 @@ tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME%-grass-plugin-%VERSION%-%PACKAGE%.tar.bz
" apps/%PACKAGENAME% /plugins/grassprovider.dll" ^
" apps/%PACKAGENAME% /plugins/libgrass_gis.%GRASS_VERSION% .dll" ^
>> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo tar grass-plugin failed & goto error)
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME% -globe-plugin-%VERSION% -%PACKAGE% .tar.bz2 ^
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/ %PACKAGENAME% -globe-plugin/ % PACKAGENAME% -globe-plugin-%VERSION% -%PACKAGE% .tar.bz2 ^
--exclude-from exclude ^
--exclude " *.pyc" ^
" apps/%PACKAGENAME% /globe" ^
" apps/%PACKAGENAME% /plugins/globeplugin.dll" ^
>> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo tar globe-plugin failed & goto error)
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME% -oracle-provider-%VERSION% -%PACKAGE% .tar.bz2 ^
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/ %PACKAGENAME% -oracle-provider/ % PACKAGENAME% -oracle-provider-%VERSION% -%PACKAGE% .tar.bz2 ^
" apps/%PACKAGENAME% /plugins/oracleprovider.dll" ^
apps/qt4/plugins/sqldrivers/qsqlocispatial.dll ^
>> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo tar oracle-provider failed & goto error)
tar -C %OSGEO4W_ROOT% -cjf %PACKAGENAME% -devel-%VERSION% -%PACKAGE% .tar.bz2 ^
tar -C %OSGEO4W_ROOT% -cjf %ARCH% /release/qgis/ %PACKAGENAME% -devel/ % PACKAGENAME% -devel-%VERSION% -%PACKAGE% .tar.bz2 ^
--exclude-from exclude ^
--exclude " *.pyc" ^
" apps/%PACKAGENAME% /FindQGIS.cmake" ^
" apps/%PACKAGENAME% /include/" ^
" apps/%PACKAGENAME% /lib/" ^
>> %LOG% 2 >& 1
if errorlevel 1 goto error
if errorlevel 1 (echo tar devel failed & goto error)
goto end
:usage
echo usage: %0 version package packagename arch
echo sample: %0 2.0.1 3 qgis x86
exit
:error
echo BUILD ERROR %ERRORLEVEL% : %DATE% %TIME%
echo BUILD ERROR %ERRORLEVEL% : %DATE% %TIME% >> %LOG% 2 >& 1
if exist %PACKAGENAME% -common-%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -common-%VERSION% -%PACKAGE% .tar.bz2
if exist %PACKAGENAME% -%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -%VERSION% -%PACKAGE% .tar.bz2
if exist %PACKAGENAME% -server-%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -server-%VERSION% -%PACKAGE% .tar.bz2
if exist %PACKAGENAME% -devel-%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -devel-%VERSION% -%PACKAGE% .tar.bz2
if exist %PACKAGENAME% -grass-plugin-%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -grass-plugin-%VERSION% -%PACKAGE% .tar.bz2
if exist %PACKAGENAME% -globe-plugin-%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -globe-plugin-%VERSION% -%PACKAGE% .tar.bz2
if exist %PACKAGENAME% -oracle-provider-%VERSION% -%PACKAGE% .tar.bz2 del %PACKAGENAME% -oracle-provider-%VERSION% -%PACKAGE% .tar.bz2
for %%i in (" " " -common" " -server" " -devel" " -grass-plugin" " -globe-plugin" " -oracle-provider" ) do (
if exist %ARCH% \release\qgis\%PACKAGENAME% %%i \%PACKAGENAME% %%i -%VERSION% -%PACKAGE% .tar.bz2 del %ARCH% \release\qgis\%PACKAGENAME% %%i \%PACKAGENAME% %%i -%VERSION% -%PACKAGE% .tar.bz2
)
:end
echo FINISHED: %DATE% %TIME% >> %LOG% 2 >& 1