qtmobility/configure.bat
changeset 0 cfcbf08528c4
child 2 5822d84012fb
child 4 90517678cc4f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qtmobility/configure.bat	Thu Apr 01 08:30:34 2010 +0300
@@ -0,0 +1,561 @@
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+::
+:: Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+:: All rights reserved.
+:: Contact: Nokia Corporation (qt-info@nokia.com)
+::
+:: This file is part of the Qt Mobility Components.
+::
+:: $QT_BEGIN_LICENSE:LGPL$
+:: No Commercial Usage
+:: This file contains pre-release code and may not be distributed.
+:: You may use this file in accordance with the terms and conditions
+:: contained in the Technology Preview License Agreement accompanying
+:: this package.
+::
+:: GNU Lesser General Public License Usage
+:: Alternatively, this file may be used under the terms of the GNU Lesser
+:: General Public License version 2.1 as published by the Free Software
+:: Foundation and appearing in the file LICENSE.LGPL included in the
+:: packaging of this file.  Please review the following information to
+:: ensure the GNU Lesser General Public License version 2.1 requirements
+:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+::
+:: In addition, as a special exception, Nokia gives you certain additional
+:: rights.  These rights are described in the Nokia Qt LGPL Exception
+:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+::
+:: If you have questions regarding the use of this file, please contact
+:: Nokia at qt-info@nokia.com.
+::
+::
+::
+::
+::
+::
+::
+::
+:: $QT_END_LICENSE$
+::
+:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
+
+@echo off
+
+set QT_MOBILITY_PREFIX= C:\QtMobility
+set BUILD_PATH=%CD%
+set SOURCE_PATH= %~dp0
+cd /D %SOURCE_PATH%
+set SOURCE_PATH=%CD%
+cd /D %BUILD_PATH%
+
+set PROJECT_CONFIG= %BUILD_PATH%\config.in
+set PROJECT_LOG= %BUILD_PATH%\config.log
+set RELEASEMODE=release
+set WIN32_RELEASEMODE=debug_and_release build_all
+set QT_MOBILITY_LIB=
+set BUILD_UNITTESTS=no
+set BUILD_EXAMPLES=no
+set BUILD_DOCS=yes
+set MOBILITY_MODULES=bearer location contacts multimedia publishsubscribe versit messaging systeminfo serviceframework sensors
+set MOBILITY_MODULES_UNPARSED=
+set VC_TEMPLATE_OPTION=
+set QT_PATH=
+set QMAKE_CACHE=%BUILD_PATH%\.qmake.cache
+
+if exist "%QMAKE_CACHE%" del %QMAKE_CACHE%
+if exist "%PROJECT_LOG%" del %PROJECT_LOG%
+if exist "%PROJECT_CONFIG%" del %PROJECT_CONFIG%
+
+set MOD_SOURCE_PATH=%SOURCE_PATH:\=/%
+set MOD_BUILD_PATH=%BUILD_PATH:\=/%
+echo QT_MOBILITY_SOURCE_TREE = $${EPOCROOT}%MOD_SOURCE_PATH:~3%
+REM echo QT_MOBILITY_SOURCE_TREE = $${EPOCROOT}%MOD_SOURCE_PATH:~3% > %QMAKE_CACHE%
+echo QT_MOBILITY_BUILD_TREE = $${EPOCROOT}%MOD_BUILD_PATH:~3%
+REM echo QT_MOBILITY_BUILD_TREE = $${EPOCROOT}%MOD_BUILD_PATH:~3% >> %QMAKE_CACHE%
+set QMAKE_CACHE=
+
+:cmdline_parsing
+if "%1" == ""               goto startProcessing
+if "%1" == "-debug"         goto debugTag
+if "%1" == "-release"       goto releaseTag
+if "%1" == "-silent"        goto silentTag
+if "%1" == "-prefix"        goto prefixTag
+if "%1" == "-libdir"        goto libTag
+if "%1" == "-bindir"        goto binTag
+if "%1" == "-headerdir"     goto headerTag
+if "%1" == "-tests"         goto testTag
+if "%1" == "-examples"      goto exampleTag
+if "%1" == "-qt"            goto qtTag
+if "%1" == "-vc"            goto vcTag
+if "%1" == "-no-docs"       goto nodocsTag
+if "%1" == "-modules"       goto modulesTag
+if "%1" == "/?"             goto usage
+if "%1" == "-h"             goto usage
+if "%1" == "-help"          goto usage
+if "%1" == "--help"         goto usage
+
+
+echo Unknown option: "%1"
+goto usage
+
+:usage
+echo Usage: configure.bat [-prefix (dir)] [headerdir (dir)] [libdir (dir)]
+    echo                  [-bindir (dir)] [-tests] [-examples]
+    echo                  [-debug] [-release] [-silent]
+    echo.
+    echo Options:
+    echo.
+    echo -prefix (dir) ..... This will install everything relative to dir
+    echo                     (default prefix: C:\QtMobility)
+    echo -headerdir (dir) .. Header files will be installed to dir
+    echo                     (default prefix: PREFIX/include)
+    echo -libdir (dir) ..... Libraries will be installed to dir
+    echo                     (default PREFIX/lib)
+    echo -bindir (dir) ..... Executables will be installed to dir
+    echo                     (default PREFIX/bin)
+    echo -debug ............ Build with debugging symbols
+    echo -release .......... Build without debugging symbols
+    echo -silent ........... Reduces build output
+    echo -tests ............ Build unit tests (not build by default)
+    echo                     Note, this adds test symbols to all libraries 
+    echo                     and should not be used for release builds.
+    echo -examples ......... Build example applications
+    echo -no-docs .......... Do not build documentation (build by default)
+    echo -modules ^<list^> ... Build only the specified modules (default all)
+    echo                     Choose from: bearer contacts location publishsubscribe
+    echo                     messaging multimedia systeminfo serviceframework versit
+    echo                     Modules should be separated by a space and surrounded
+    echo                     by double quotation. If a
+    echo                     selected module depends on other modules dependencies
+    echo                     will automatically be enabled.
+    echo -vc ............... Generate Visual Studio make files
+
+
+if exist "%PROJECT_CONFIG%" del %PROJECT_CONFIG%
+goto exitTag
+
+:qtTag
+shift
+set QT_PATH=%1\
+shift
+goto cmdline_parsing
+
+:debugTag
+if "%RELEASEMODE%" == "release" set RELEASEMODE=debug
+set WIN32_RELEASEMODE=
+shift
+goto cmdline_parsing
+
+:releaseTag
+if "%RELEASEMODE%" == "debug"   set RELEASEMODE=release
+set WIN32_RELEASEMODE=
+shift
+goto cmdline_parsing
+
+:silentTag
+echo CONFIG += silent > %PROJECT_CONFIG%
+shift
+goto cmdline_parsing
+
+:prefixTag
+shift
+set QT_MOBILITY_PREFIX=%1
+shift
+goto cmdline_parsing
+
+:libTag
+shift
+echo QT_MOBILITY_LIB = %1 >> %PROJECT_CONFIG%
+shift
+goto cmdline_parsing
+
+:binTag
+shift
+echo QT_MOBILITY_BIN = %1 >> %PROJECT_CONFIG%
+shift
+goto cmdline_parsing
+
+:headerTag
+shift
+echo QT_MOBILITY_INCLUDE = %1 >> %PROJECT_CONFIG%
+shift
+goto cmdline_parsing
+
+:testTag
+set BUILD_UNITTESTS=yes
+shift
+goto cmdline_parsing
+
+:exampleTag
+set BUILD_EXAMPLES=yes
+shift
+goto cmdline_parsing
+
+:vcTag
+shift
+set VC_TEMPLATE_OPTION=-tp vc
+goto cmdline_parsing
+
+:nodocsTag
+set BUILD_DOCS=no
+shift
+goto cmdline_parsing
+
+:modulesTag
+shift
+:: %1 can have leading/trailing quotes, so we can't use if "%1" == ""
+if xx%1xx == xxxx (
+    echo. >&2
+    echo >&2The -modules option requires a list of modules.
+    echo. >&2
+    goto usage
+)
+
+:: Remove leading/trailing quotes, if we have them
+set MOBILITY_MODULES_UNPARSED=xxx%1xxx
+set MOBILITY_MODULES_UNPARSED=%MOBILITY_MODULES_UNPARSED:"xxx=%
+set MOBILITY_MODULES_UNPARSED=%MOBILITY_MODULES_UNPARSED:xxx"=%
+set MOBILITY_MODULES_UNPARSED=%MOBILITY_MODULES_UNPARSED:xxx=%
+
+REM reset default modules as we expect a modules list
+set MOBILITY_MODULES=
+
+echo Checking selected modules:
+:modulesTag2
+
+for /f "tokens=1,*" %%a in ("%MOBILITY_MODULES_UNPARSED%") do ( 
+    set FIRST=%%a 
+    set REMAINING=%%b
+)
+
+: What we want is a switch as we need to check module name and only want to
+: distinguish between false and correct module names being passed
+if %FIRST% == bearer (
+    echo     Bearer Management selected
+) else if %FIRST% == contacts (
+    echo     Contacts selected
+) else if %FIRST% == location (
+    echo     Location selected
+) else if %FIRST% == messaging (
+    echo     Messaging selected
+) else if %FIRST% == multimedia (
+    echo     Multimedia selected
+) else if %FIRST% == publishsubscribe (
+    echo     PublishSubscribe selected
+) else if %FIRST% == systeminfo (
+    echo     Systeminfo selected
+) else if %FIRST% == serviceframework (
+    echo     ServiceFramework selected
+) else if %FIRST% == versit (
+    echo     Versit selected ^(implies Contacts^)
+) else if %FIRST% == sensors (
+    echo     Sensors selected
+) else (
+    echo     Unknown module %FIRST%
+    goto errorTag
+)
+
+set MOBILITY_MODULES=%MOBILITY_MODULES% %FIRST%
+if "%REMAINING%" == "" (
+    shift
+) else (
+    set MOBILITY_MODULES_UNPARSED=%REMAINING%
+    goto modulesTag2
+)
+
+SET REMAINING=
+SET FIRST=
+goto cmdline_parsing
+
+:startProcessing
+
+echo CONFIG += %RELEASEMODE% >> %PROJECT_CONFIG%
+echo CONFIG_WIN32 += %WIN32_RELEASEMODE% %RELEASEMODE% >> %PROJECT_CONFIG%
+set RELEASEMODE=
+set WIN32_RELEASEMODE=
+
+set CURRENTDIR=%CD%
+echo %CURRENTDIR%
+if exist %QT_MOBILITY_PREFIX% goto prefixExists
+mkdir %QT_MOBILITY_PREFIX%
+if errorlevel 1 goto invalidPrefix
+cd /D %QT_MOBILITY_PREFIX%
+set QT_MOBILITY_PREFIX=%CD%
+cd /D %CURRENTDIR%
+rd /S /Q %QT_MOBILITY_PREFIX%
+goto endprefixProcessing
+
+:invalidPrefix
+echo "%QT_MOBILITY_PREFIX%" is not a valid directory path.
+goto :exitTag
+
+:prefixExists
+set MOD_QT_MOBILITY_PREFIX=%QT_MOBILITY_PREFIX:/=\%
+cd /D %MOD_QT_MOBILITY_PREFIX%
+set QT_MOBILITY_PREFIX=%CD%
+cd /D %CURRENTDIR%
+
+:endprefixProcessing
+echo QT_MOBILITY_SOURCE_TREE = $${EPOCROOT}%MOD_SOURCE_PATH:~3% > %PROJECT_CONFIG%
+echo QT_MOBILITY_BUILD_TREE = $${EPOCROOT}%MOD_BUILD_PATH:~3% >> %PROJECT_CONFIG%
+set MOD_QT_MOBILITY_PREFIX=%QT_MOBILITY_PREFIX:\=/%
+echo QT_MOBILITY_PREFIX = $${EPOCROOT}%MOD_QT_MOBILITY_PREFIX:~3%
+echo QT_MOBILITY_PREFIX = $${EPOCROOT}%MOD_QT_MOBILITY_PREFIX:~3% >> %PROJECT_CONFIG%
+
+echo build_unit_tests = %BUILD_UNITTESTS% >> %PROJECT_CONFIG%
+set BUILD_UNITTESTS=
+
+echo build_examples = %BUILD_EXAMPLES% >> %PROJECT_CONFIG%
+set BUILD_EXAMPLES=
+
+echo build_docs = %BUILD_DOCS% >> %PROJECT_CONFIG%
+set BUILD_DOCS=
+
+echo qmf_enabled = no >> %PROJECT_CONFIG%
+
+echo isEmpty($$QT_MOBILITY_INCLUDE):QT_MOBILITY_INCLUDE=$$QT_MOBILITY_PREFIX/include >> %PROJECT_CONFIG%
+echo isEmpty($$QT_MOBILITY_LIB):QT_MOBILITY_LIB=$$QT_MOBILITY_PREFIX/lib >> %PROJECT_CONFIG%
+echo isEmpty($$QT_MOBILITY_BIN):QT_MOBILITY_BIN=$$QT_MOBILITY_PREFIX/bin >> %PROJECT_CONFIG%
+
+echo mobility_modules = %MOBILITY_MODULES%  >> %PROJECT_CONFIG%
+REM no Sysinfo support on Maemo yet
+echo maemo5^|maemo6:mobility_modules -= systeminfo >> %PROJECT_CONFIG%
+echo contains(mobility_modules,versit): mobility_modules *= contacts  >> %PROJECT_CONFIG%
+
+REM echo Checking available Qt
+REM call %QT_PATH%qmake -v >> %PROJECT_LOG% 2>&1
+REM if errorlevel 1 goto qmakeNotFound
+goto qmakeFound
+:qmakeNotFound
+echo ... Not found  >> %PROJECT_LOG% 2>&1
+if "%QT_PATH%" == "" (
+    echo >&2Cannot find 'qmake' in your PATH.
+    echo >&2Your PATH is: %PATH%
+) else (
+    echo >&2Cannot find 'qmake' in %QT_PATH%.
+)
+echo >&2Aborting.
+goto errorTag
+
+:qmakeFound
+REM call %QT_PATH%qmake -query QT_VERSION
+
+goto checkMake
+
+:makeTest
+setlocal
+    set CURRENT_PWD=%CD%
+
+    if %BUILD_PATH% == %SOURCE_PATH% (
+        cd %SOURCE_PATH%\config.tests\make
+        if exist make del make
+    ) else (
+        rmdir /S /Q config.tests\make
+        mkdir config.tests\make
+        cd config.tests\make
+    )
+
+    for /f "tokens=3" %%i in ('call %QT_PATH%qmake %SOURCE_PATH%\config.tests\make\make.pro 2^>^&1 1^>NUL') do set BUILDSYSTEM=%%i
+
+    if %BUILDSYSTEM% == symbian-abld (
+        call make -h >> %PROJECT_LOG% 2>&1
+        if not errorlevel 1 (
+            echo ... Symbian abld make found.
+            set MAKE=make
+        )
+    ) else if %BUILDSYSTEM% == symbian-sbsv2 (
+        call make -h >> %PROJECT_LOG% 2>&1
+        if not errorlevel 1 (
+            echo ... Symbian sbsv2 make found.
+            set MAKE=make
+        )
+    ) else if %BUILDSYSTEM% == win32-nmake (
+        call nmake /? >> %PROJECT_LOG% 2>&1
+        if not errorlevel 1 (
+            echo ... nmake found.
+            set MAKE=nmake
+        )
+    ) else if %BUILDSYSTEM% == win32-mingw (
+        call mingw32-make -v >> %PROJECT_LOG% 2>&1
+        if not errorlevel 1 (
+            echo ... mingw32-make found.
+            set MAKE=mingw32-make
+        )
+    ) else (
+        echo ... Unknown target environment %BUILDSYSTEM%.
+    )
+    call cd %CURRENT_PWD%
+call endlocal&set %1=%MAKE%&set %2=%BUILDSYSTEM%&goto :EOF
+
+:checkMake
+REM echo Checking make
+REM call :makeTest MOBILITY_MAKE MOBILITY_BUILDSYSTEM
+REM if not "%MOBILITY_MAKE%" == "" goto compileTests
+goto compileTests
+
+echo >&2Cannot find 'nmake', 'mingw32-make' or 'make' in your PATH
+echo >&2Aborting.
+goto errorTag
+
+:compileTest
+setlocal
+    echo Checking %1
+    set CURRENT_PWD=%CD%
+
+    if %BUILD_PATH% == %SOURCE_PATH% (
+        cd %SOURCE_PATH%\config.tests\%2
+        if exist %2 del %2
+    ) else (
+        rmdir /S /Q config.tests\%2
+        mkdir config.tests\%2
+        cd config.tests\%2
+    )
+
+    call %QT_PATH%qmake %SOURCE_PATH%\config.tests\%2\%2.pro >> %PROJECT_LOG% 2>&1
+    call %MOBILITY_MAKE% clean >> %PROJECT_LOG% 2>&1
+    call %MOBILITY_MAKE% >> %PROJECT_LOG% 2>&1
+
+    set FAILED=0
+    if %MOBILITY_BUILDSYSTEM% == symbian-sbsv2 (
+        for /f "tokens=2" %%i in ('%MOBILITY_MAKE% SBS^="@sbs --check"') do set FAILED=1
+    ) else if %MOBILITY_BUILDSYSTEM% == symbian-abld (
+        for /f "tokens=2" %%i in ('%MOBILITY_MAKE% ABLD^="@ABLD.BAT -c" 2^>^&1') do if not %%i == bldfiles set FAILED=1
+    ) else if errorlevel 1 (
+        set FAILED=1
+    )
+
+    if %FAILED% == 0 (
+        echo ... OK
+        echo %2_enabled = yes >> %PROJECT_CONFIG%
+    ) else (
+        echo ... Not Found
+        echo %2_enabled = no >> %PROJECT_CONFIG%
+    )
+
+    cd %CURRENT_PWD%
+endlocal&goto :EOF
+
+:compileTests
+
+echo.
+echo Start of compile tests
+REM compile tests go here.
+REM call :compileTest LBT lbt
+echo lbt_enabled = yes >> %PROJECT_CONFIG%
+REM call :compileTest SNAP snap
+echo snap_enabled = yes >> %PROJECT_CONFIG%
+REM call :compileTest SymbianContactSIM symbiancntsim
+echo symbiancntsim_enabled = yes >> %PROJECT_CONFIG%
+echo End of compile tests
+echo.
+echo.
+
+REM we could skip generating headers if a module is not enabled
+if not exist "%BUILD_PATH%\features" mkdir %BUILD_PATH%\features
+copy %SOURCE_PATH%\features\strict_flags.prf %BUILD_PATH%\features
+echo Generating Mobility Headers...
+if exist "%BUILD_PATH%\include" rd /s /q %BUILD_PATH%\include
+mkdir %BUILD_PATH%\include
+perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\global
+
+set MODULES_TEMP=%MOBILITY_MODULES%
+
+:generateHeaders
+
+for /f "tokens=1,*" %%a in ("%MODULES_TEMP%") do ( 
+    set FIRST=%%a 
+    set REMAINING=%%b
+)
+
+if %FIRST% == bearer (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\bearer
+) else if %FIRST% == contacts (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts\requests
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts\filters
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts\details
+) else if %FIRST% == location (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\location
+) else if %FIRST% == messaging (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\messaging
+) else if %FIRST% == multimedia (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\multimedia
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\multimedia\experimental
+) else if %FIRST% == publishsubscribe (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\publishsubscribe
+) else if %FIRST% == systeminfo (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\systeminfo
+) else if %FIRST% == serviceframework (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\serviceframework
+) else if %FIRST% == versit (
+    REM versit implies contacts
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\versit
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts\requests
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts\filters
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\contacts\details
+) else if %FIRST% == sensors (
+    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\sensors
+)
+
+if "%REMAINING%" == "" (
+    shift
+) else (
+    set MODULES_TEMP=%REMAINING%
+    goto generateHeaders
+)
+
+SET REMAINING=
+SET FIRST=
+SET MODULES_TEMP=
+
+if exist config.pri del config.pri
+ren %PROJECT_CONFIG% config.pri
+
+echo.
+REM echo Running qmake...
+REM call %QT_PATH%qmake -recursive %VC_TEMPLATE_OPTION% %SOURCE_PATH%\qtmobility.pro
+REM if errorlevel 1 goto qmakeRecError
+REM echo.
+echo configure has finished. 
+REM You may run %MOBILITY_MAKE% to build the project now.
+goto exitTag
+
+:qmakeRecError
+echo.
+echo configure failed.
+goto errorTag
+
+:errorTag
+set BUILD_PATH=
+set CURRENTDIR=
+set MOBILITY_MAKE=
+set MOBILITY_BUILDSYSTEM=
+set PROJECT_CONFIG=
+set PROJECT_LOG=
+set QT_MOBILITY_PREFIX=
+set QT_PATH=
+set SOURCE_PATH=
+set MOBILITY_MODULES=
+set MOBILITY_MODULES_UNPARSED=
+SET REMAINING=
+SET FIRST=
+SET MODULES_TEMP=
+exit /b 1
+
+:exitTag
+set BUILD_PATH=
+set CURRENTDIR=
+set MOBILITY_MAKE=
+set MOBILITY_BUILDSYSTEM=
+set PROJECT_CONFIG=
+set PROJECT_LOG=
+set QT_MOBILITY_PREFIX=
+set QT_PATH=
+set SOURCE_PATH=
+set MOBILITY_MODULES=
+set MOBILITY_MODULES_UNPARSED=
+SET REMAINING=
+SET FIRST=
+SET MODULES_TEMP=
+exit /b 0