1
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
2
::
3
:: Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4
:: All rights reserved.
5
:: Contact: Nokia Corporation (qt-info@nokia.com)
6
::
7
:: This file is part of the Qt Mobility Components.
8
::
9
:: $QT_BEGIN_LICENSE:LGPL$
10
:: GNU Lesser General Public License Usage
11
:: This file may be used under the terms of the GNU Lesser General Public
12
:: License version 2.1 as published by the Free Software Foundation and
13
:: appearing in the file LICENSE.LGPL included in the packaging of this
14
:: file. Please review the following information to ensure the GNU Lesser
15
:: General Public License version 2.1 requirements will be met:
16
:: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17
::
18
:: In addition, as a special exception, Nokia gives you certain additional
19
:: rights. These rights are described in the Nokia Qt LGPL Exception
20
:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21
::
22
:: GNU General Public License Usage
23
:: Alternatively, this file may be used under the terms of the GNU General
24
:: Public License version 3.0 as published by the Free Software Foundation
25
:: and appearing in the file LICENSE.GPL included in the packaging of this
26
:: file. Please review the following information to ensure the GNU General
27
:: Public License version 3.0 requirements will be met:
28
:: http://www.gnu.org/copyleft/gpl.html.
29
::
30
:: Other Usage
31
:: Alternatively, this file may be used in accordance with the terms and
32
:: conditions contained in a signed written agreement between you and Nokia.
33
::
34
::
35
::
36
::
37
::
38
:: $QT_END_LICENSE$
39
::
40
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
41
42
@echo off
43
44
set QT_MOBILITY_PREFIX= C:\QtMobility
45
set BUILD_PATH=%CD%
46
set SOURCE_PATH= %~dp0
47
cd /D %SOURCE_PATH%
48
set SOURCE_PATH=%CD%
49
cd /D %BUILD_PATH%
50
51
set PROJECT_CONFIG=%BUILD_PATH%\config.in
52
set PROJECT_LOG=%BUILD_PATH%\config.log
53
set RELEASEMODE=release
54
set WIN32_RELEASEMODE=debug_and_release build_all
55
set QT_MOBILITY_LIB=
56
set BUILD_UNITTESTS=no
57
set BUILD_PUBLIC_UNITTESTS=no
58
set BUILD_EXAMPLES=no
59
set BUILD_DEMOS=no
60
set BUILD_DOCS=yes
61
set BUILD_TOOLS=yes
62
set LANGUAGES_CONFIG=
63
set MOBILITY_MODULES=bearer location contacts systeminfo publishsubscribe versit messaging sensors serviceframework multimedia gallery organizer feedback connectivity
64
set MOBILITY_MODULES_UNPARSED=
65
set VC_TEMPLATE_OPTION=
66
set QT_PATH=
67
set QMAKE_CACHE=%BUILD_PATH%\.qmake.cache
68
set PLATFORM_CONFIG=
69
set NFC_SYMBIAN=auto
70
71
REM By default, all modules are requested.  Reset this later if -modules is supplied
72
set MODULE_BEARER_REQUESTED=yes
73
set MODULE_CONTACTS_REQUESTED=yes
74
set MODULE_CONNECTIVITY_REQUESTED=yes
75
set MODULE_FEEDBACK_REQUESTED=yes
76
set MODULE_GALLERY_REQUESTED=yes
77
set MODULE_LOCATION_REQUESTED=yes
78
set MODULE_MESSAGING_REQUESTED=yes
79
set MODULE_MULTIMEDIA_REQUESTED=yes
80
set MODULE_ORGANIZER_REQUESTED=yes
81
set MODULE_PUBLISHSUBSCRIBE_REQUESTED=yes
82
set MODULE_SENSORS_REQUESTED=yes
83
set MODULE_SERVICEFRAMEWORK_REQUESTED=yes
84
set MODULE_SYSTEMINFO_REQUESTED=yes
85
set MODULE_VERSIT_REQUESTED=yes
86
87
if exist "%QMAKE_CACHE%" del /Q %QMAKE_CACHE%
88
if exist "%PROJECT_LOG%" del /Q %PROJECT_LOG%
89
if exist "%PROJECT_CONFIG%" del /Q %PROJECT_CONFIG%
90
91
echo QT_MOBILITY_SOURCE_TREE = %SOURCE_PATH:\=/% > %QMAKE_CACHE%
92
echo QT_MOBILITY_BUILD_TREE = %BUILD_PATH:\=/% >> %QMAKE_CACHE%
93
set QMAKE_CACHE=
94
95
:cmdline_parsing
96
if "%1" == ""                   goto startProcessing
97
if "%1" == "-debug"             goto debugTag
98
if "%1" == "-release"           goto releaseTag
99
if "%1" == "-silent"            goto silentTag
100
if "%1" == "-prefix"            goto prefixTag
101
if "%1" == "-libdir"            goto libTag
102
if "%1" == "-bindir"            goto binTag
103
if "%1" == "-headerdir"         goto headerTag
104
if "%1" == "-plugindir"         goto pluginTag
105
if "%1" == "-examplesdir"       goto examplesDirTag
106
if "%1" == "-demosdir"          goto demosDirTag
107
if "%1" == "-tests"             goto testTag
108
if "%1" == "-public-tests-only" goto publicTestTag
109
if "%1" == "-examples"          goto exampleTag
110
if "%1" == "-demos"             goto demosTag
111
if "%1" == "-qt"                goto qtTag
112
if "%1" == "-vc"                goto vcTag
113
if "%1" == "-no-docs"           goto nodocsTag
114
if "%1" == "-no-tools"          goto noToolsTag
115
if "%1" == "-modules"           goto modulesTag
116
if "%1" == "/?"                 goto usage
117
if "%1" == "-h"                 goto usage
118
if "%1" == "-help"              goto usage
119
if "%1" == "--help"             goto usage
120
if "%1" == "-symbian-unfrozen"  goto unfrozenTag
121
if "%1" == "-staticconfig"      goto staticConfigTag
122
if "%1" == "-languages"         goto languagesTag
123
if "%1" == "-no-nfc-symbian"    goto noNfcSymbianTag
124
125
echo Unknown option: "%1"
126
goto usage
127
128
:usage
129
echo Usage: configure.bat [-prefix (dir)] [headerdir (dir)] [libdir (dir)]
130
    echo                  [-bindir (dir)] [-tests] [-examples]
131
    echo                  [-debug] [-release] [-silent]
132
    echo.
133
    echo Options:
134
    echo.
135
    echo -prefix (dir) ..... This will install everything relative to dir
136
    echo                     (default prefix: C:\QtMobility)
137
    echo -headerdir (dir) .. Header files will be installed to dir
138
    echo                     (default prefix: PREFIX/include)
139
    echo -libdir (dir) ..... Libraries will be installed to dir
140
    echo                     (default PREFIX/lib)
141
    echo -bindir (dir) ..... Executables will be installed to dir
142
    echo                     (default PREFIX/bin)
143
    echo -plugindir (dir) .. Plug-ins will be installed to dir
144
    echo                     (default PREFIX/plugins)
145
    echo -examplesdir (dir)  Examples will be installed to dir
146
    echo                     (default PREFIX/bin)
147
    echo -demosdir (dir) ... Demos will be installed to dir
148
    echo                     (default PREFIX/bin)
149
    echo -debug ............ Build with debugging symbols
150
    echo -release .......... Build without debugging symbols
151
    echo -silent ........... Reduces build output
152
    echo -tests ............ Build unit tests (not build by default)
153
    echo                     Note, this adds test symbols to all libraries
154
    echo                     and should not be used for release builds.
155
    echo -examples ......... Build example applications
156
    echo -demos ............ Build demo applications
157
    echo -no-docs .......... Do not build documentation (build by default)
158
    echo -modules ^<list^> ... Build only the specified modules (default all)
159
    echo                     Choose from: bearer contacts gallery location publishsubscribe
160
    echo                     messaging multimedia systeminfo serviceframework
161
    echo                     sensors versit organizer feedback connectivity
162
    echo                     Modules should be separated by a space and surrounded
163
    echo                     by double quotation. If a selected module depends on other modules
164
    echo                     those modules (and their dependencies) will automatically be enabled.
165
    echo -vc ............... Generate Visual Studio make files
166
    echo -languages ........ Languages/translations to be installed (e.g.: ar de ko)
167
    echo                     (default is empty)
168
    echo -no-nfc-symbian ... Disables the NFC Symbian backend.
169
170
171
if exist "%PROJECT_CONFIG%" del %PROJECT_CONFIG%
172
goto exitTag
173
174
:qtTag
175
shift
176
set QT_PATH=%1\
177
shift
178
goto cmdline_parsing
179
180
:noNfcSymbianTag
181
shift
182
set NFC_SYMBIAN=no
183
goto cmdline_parsing
184
185
:languagesTag
186
shift
187
:: %1 can have leading/trailing quotes, so we can't use if "%1" == ""
188
if xx%1xx == xxxx (
189
    echo. >&2
190
    echo >&2The -languages option requires a list of languages.
191
    echo. >&2
192
    goto usage
193
)
194
195
:: Remove leading/trailing quotes, if we have them
196
set MOBILITY_LANGUAGES_UNPARSED=xxx%1xxx
197
set MOBILITY_LANGUAGES_UNPARSED=%MOBILITY_LANGUAGES_UNPARSED:"xxx=%
198
set MOBILITY_LANGUAGES_UNPARSED=%MOBILITY_LANGUAGES_UNPARSED:xxx"=%
199
set MOBILITY_LANGUAGES_UNPARSED=%MOBILITY_LANGUAGES_UNPARSED:xxx=%
200
201
REM for now we don't check the languages for their validity
202
set LANGUAGES_CONFIG=
203
set LANGUAGES_CONFIG= %MOBILITY_LANGUAGES_UNPARSED%
204
echo Selected Languages: %LANGUAGES_CONFIG%
205
shift
206
goto cmdline_parsing
207
208
:staticConfigTag
209
shift
210
set PLATFORM_CONFIG=%1
211
shift
212
goto cmdline_parsing
213
214
:debugTag
215
if "%RELEASEMODE%" == "release" set RELEASEMODE=debug
216
set WIN32_RELEASEMODE=
217
shift
218
goto cmdline_parsing
219
220
:releaseTag
221
if "%RELEASEMODE%" == "debug"   set RELEASEMODE=release
222
set WIN32_RELEASEMODE=
223
shift
224
goto cmdline_parsing
225
226
:silentTag
227
echo CONFIG += silent > %PROJECT_CONFIG%
228
shift
229
goto cmdline_parsing
230
231
:prefixTag
232
shift
233
set QT_MOBILITY_PREFIX=%1
234
shift
235
goto cmdline_parsing
236
237
:libTag
238
shift
239
echo QT_MOBILITY_LIB = %1 >> %PROJECT_CONFIG%
240
shift
241
goto cmdline_parsing
242
243
:binTag
244
shift
245
echo QT_MOBILITY_BIN = %1 >> %PROJECT_CONFIG%
246
shift
247
goto cmdline_parsing
248
249
:headerTag
250
shift
251
echo QT_MOBILITY_INCLUDE = %1 >> %PROJECT_CONFIG%
252
shift
253
goto cmdline_parsing
254
255
:pluginTag
256
shift
257
echo QT_MOBILITY_PLUGINS = %1 >> %PROJECT_CONFIG%
258
shift
259
echo
260
goto cmdline_parsing
261
262
:examplesDirTag
263
shift
264
echo QT_MOBILITY_EXAMPLES = %1 >> %PROJECT_CONFIG%
265
shift
266
echo
267
goto cmdline_parsing
268
269
:demosDirTag
270
shift
271
echo QT_MOBILITY_DEMOS =%1 >> %PROJECT_CONFIG%
272
shift
273
echo
274
goto cmdline_parsing
275
276
:unfrozenTag
277
REM Should never be used in release builds
278
REM Some SDK's seem to exclude Q_AUTOTEST_EXPORT symbols if the
279
REM libraries are frozen. This breaks unit tests relying on the auto test exports
280
REM This flag unfreezes the SYMBIAN libraries for the purpose of unit test building.
281
REM Ideally this should be connected to '-tests' option but that would prevent
282
REM integration testing for frozen symbols as the CI system should test unit tests
283
REM and frozen symbol compliance.
284
echo symbian_symbols_unfrozen = 1 >> %PROJECT_CONFIG%
285
shift
286
goto cmdline_parsing
287
288
:testTag
289
set BUILD_UNITTESTS=yes
290
shift
291
goto cmdline_parsing
292
293
:publicTestTag
294
set BUILD_PUBLIC_UNITTESTS=yes
295
shift
296
goto cmdline_parsing
297
298
:exampleTag
299
set BUILD_EXAMPLES=yes
300
shift
301
goto cmdline_parsing
302
303
:demosTag
304
set BUILD_DEMOS=yes
305
shift
306
goto cmdline_parsing
307
308
:vcTag
309
shift
310
set VC_TEMPLATE_OPTION=-tp vc
311
goto cmdline_parsing
312
313
:nodocsTag
314
set BUILD_DOCS=no
315
shift
316
goto cmdline_parsing
317
318
:noToolsTag
319
set BUILD_TOOLS=no
320
shift
321
goto cmdline_parsing
322
323
:modulesTag
324
shift
325
:: %1 can have leading/trailing quotes, so we can't use if "%1" == ""
326
if xx%1xx == xxxx (
327
    echo. >&2
328
    echo >&2The -modules option requires a list of modules.
329
    echo. >&2
330
    goto usage
331
)
332
333
:: Remove leading/trailing quotes, if we have them
334
set MOBILITY_MODULES_UNPARSED=xxx%1xxx
335
set MOBILITY_MODULES_UNPARSED=%MOBILITY_MODULES_UNPARSED:"xxx=%
336
set MOBILITY_MODULES_UNPARSED=%MOBILITY_MODULES_UNPARSED:xxx"=%
337
set MOBILITY_MODULES_UNPARSED=%MOBILITY_MODULES_UNPARSED:xxx=%
338
339
REM reset default modules as we expect a modules list
340
set MOBILITY_MODULES=
341
set MODULE_BEARER_REQUESTED=no
342
set MODULE_CONTACTS_REQUESTED=no
343
set MODULE_CONNECTIVITY_REQUESTED=no
344
set MODULE_FEEDBACK_REQUESTED=no
345
set MODULE_GALLERY_REQUESTED=no
346
set MODULE_LOCATION_REQUESTED=no
347
set MODULE_MESSAGING_REQUESTED=no
348
set MODULE_MULTIMEDIA_REQUESTED=no
349
set MODULE_ORGANIZER_REQUESTED=no
350
set MODULE_PUBLISHSUBSCRIBE_REQUESTED=no
351
set MODULE_SENSORS_REQUESTED=no
352
set MODULE_SERVICEFRAMEWORK_REQUESTED=no
353
set MODULE_SYSTEMINFO_REQUESTED=no
354
set MODULE_VERSIT_REQUESTED=no
355
356
echo.
357
echo Checking selected modules ...
358
:modulesTag2
359
360
for /f "tokens=1,*" %%a in ("%MOBILITY_MODULES_UNPARSED%") do (
361
    set FIRST=%%a
362
    set REMAINING=%%b
363
)
364
365
: What we want is a switch as we need to check module name and only want to
366
: distinguish between false and correct module names being passed
367
if %FIRST% == bearer (
368
    echo Bearer management
369
    set MODULE_BEARER_REQUESTED=yes
370
) else if %FIRST% == contacts (
371
    echo Contacts
372
    set MODULE_CONTACTS_REQUESTED=yes
373
) else if %FIRST% == location (
374
    echo Location
375
    set MODULE_LOCATION_REQUESTED=yes
376
) else if %FIRST% == messaging (
377
    echo Messaging
378
    set MODULE_MESSAGING_REQUESTED=yes
379
) else if %FIRST% == multimedia (
380
    echo Multimedia
381
    set MODULE_MULTIMEDIA_REQUESTED=yes
382
) else if %FIRST% == publishsubscribe (
383
    echo Publish and subscribe
384
    set MODULE_PUBLISHSUBSCRIBE_REQUESTED=yes
385
) else if %FIRST% == systeminfo (
386
    echo Systeminfo
387
    set MODULE_SYSTEMINFO_REQUESTED=yes
388
) else if %FIRST% == serviceframework (
389
    echo Service framework
390
    set MODULE_SERVICEFRAMEWORK_REQUESTED=yes
391
) else if %FIRST% == versit (
392
    echo Versit ^(implies Contacts^)
393
    set MODULE_CONTACTS_REQUESTED=yes
394
    set MODULE_VERSIT_REQUESTED=yes
395
) else if %FIRST% == organizer (
396
    echo Organizer
397
    set MODULE_ORGANIZER_REQUESTED=yes
398
) else if %FIRST% == feedback (
399
    echo Feedback
400
    set MODULE_FEEDBACK_REQUESTED=yes
401
) else if %FIRST% == sensors (
402
    echo Sensors
403
    set MODULE_SENSORS_REQUESTED=yes
404
) else if %FIRST% == gallery (
405
    echo Gallery
406
    set MODULE_GALLERY_REQUESTED=yes
407
) else if %FIRST% == connectivity (
408
    echo Connectivity
409
    set MODULE_CONNECTIVITY_REQUESTED=yes
410
) else (
411
    echo Error: unknown module %FIRST%
412
    goto errorTag
413
)
414
415
set MOBILITY_MODULES=%MOBILITY_MODULES% %FIRST%
416
417
if "%REMAINING%" == "" (
418
    shift
419
) else (
420
    set MOBILITY_MODULES_UNPARSED=%REMAINING%
421
    goto modulesTag2
422
)
423
424
SET REMAINING=
425
SET FIRST=
426
goto cmdline_parsing
427
428
:startProcessing
429
430
echo CONFIG += %RELEASEMODE% >> %PROJECT_CONFIG%
431
echo CONFIG_WIN32 += %WIN32_RELEASEMODE% %RELEASEMODE% >> %PROJECT_CONFIG%
432
set RELEASEMODE=
433
set WIN32_RELEASEMODE=
434
435
set CURRENTDIR=%CD%
436
if exist %QT_MOBILITY_PREFIX% goto prefixExists
437
mkdir %QT_MOBILITY_PREFIX%
438
if errorlevel 1 goto invalidPrefix
439
cd /D %QT_MOBILITY_PREFIX%
440
set QT_MOBILITY_PREFIX=%CD%
441
cd /D %CURRENTDIR%
442
rd /S /Q %QT_MOBILITY_PREFIX%
443
goto endprefixProcessing
444
445
:invalidPrefix
446
echo "%QT_MOBILITY_PREFIX%" is not a valid directory path.
447
goto :exitTag
448
449
:prefixExists
450
cd /D %QT_MOBILITY_PREFIX%
451
set QT_MOBILITY_PREFIX=%CD%
452
cd /D %CURRENTDIR%
453
454
:endprefixProcessing
455
echo QT_MOBILITY_PREFIX = %QT_MOBILITY_PREFIX:\=/% >> %PROJECT_CONFIG%
456
457
echo build_unit_tests = %BUILD_UNITTESTS% >> %PROJECT_CONFIG%
458
set BUILD_UNITTESTS=
459
460
echo build_public_unit_tests = %BUILD_PUBLIC_UNITTESTS% >> %PROJECT_CONFIG%
461
set BUILD_PUBLIC_UNITTESTS=
462
463
echo build_examples = %BUILD_EXAMPLES% >> %PROJECT_CONFIG%
464
set BUILD_EXAMPLES=
465
466
echo build_demos = %BUILD_DEMOS% >> %PROJECT_CONFIG%
467
set BUILD_DEMOS=
468
469
echo build_docs = %BUILD_DOCS% >> %PROJECT_CONFIG%
470
set BUILD_DOCS=
471
472
echo build_tools = %BUILD_TOOLS% >> %PROJECT_CONFIG%
473
set BUILD_TOOLS=
474
475
echo qmf_enabled = no >> %PROJECT_CONFIG%
476
477
echo !symbian:isEmpty($$QT_MOBILITY_INCLUDE):QT_MOBILITY_INCLUDE=$$QT_MOBILITY_PREFIX/include >> %PROJECT_CONFIG%
478
echo isEmpty($$QT_MOBILITY_LIB):QT_MOBILITY_LIB=$$QT_MOBILITY_PREFIX/lib >> %PROJECT_CONFIG%
479
echo isEmpty($$QT_MOBILITY_BIN):QT_MOBILITY_BIN=$$QT_MOBILITY_PREFIX/bin >> %PROJECT_CONFIG%
480
echo isEmpty($$QT_MOBILITY_PLUGINS):QT_MOBILITY_PLUGINS=$$QT_MOBILITY_PREFIX/plugins >> %PROJECT_CONFIG%
481
echo isEmpty($$QT_MOBILITY_EXAMPLES):QT_MOBILITY_EXAMPLES=$$QT_MOBILITY_PREFIX/bin >> %PROJECT_CONFIG%
482
echo isEmpty($$QT_MOBILITY_DEMOS):QT_MOBILITY_DEMOS=$$QT_MOBILITY_PREFIX/bin >> %PROJECT_CONFIG%
483
484
echo selected_languages = %LANGUAGES_CONFIG% >> %PROJECT_CONFIG%
485
486
echo mobility_modules = %MOBILITY_MODULES%  >> %PROJECT_CONFIG%
487
echo contains(mobility_modules,versit): mobility_modules *= contacts >> %PROJECT_CONFIG%
488
echo contains(mobility_modules,connectivity): mobility_modules *= serviceframework >> %PROJECT_CONFIG%
489
490
echo.
491
echo Checking available Qt ...
492
call %QT_PATH%qmake -v >> %PROJECT_LOG% 2>&1
493
if errorlevel 1 goto qmakeNotFound
494
goto qmakeFound
495
:qmakeNotFound
496
echo ... Not found  >> %PROJECT_LOG% 2>&1
497
if "%QT_PATH%" == "" (
498
    echo >&2Cannot find 'qmake' in your PATH.
499
    echo >&2Your PATH is: "%PATH%"
500
) else (
501
    echo >&2Cannot find 'qmake' in "%QT_PATH%".
502
)
503
echo >&2Aborting.
504
goto errorTag
505
506
:qmakeFound
507
call %QT_PATH%qmake -query QT_VERSION
508
509
goto checkMake
510
511
REM Detect make tool
512
:makeTest
513
setlocal
514
    set CURRENT_PWD=%CD%
515
516
    if %BUILD_PATH% == %SOURCE_PATH% (
517
        cd %SOURCE_PATH%\config.tests\make
518
        if exist make del make
519
    ) else (
520
        rmdir /S /Q config.tests\make
521
        mkdir config.tests\make
522
        cd config.tests\make
523
    )
524
525
    for /f "tokens=2,3" %%a in ('call %QT_PATH%qmake %SOURCE_PATH%\config.tests\make\make.pro 2^>^&1 1^>NUL') do (
526
        if "%%a" == "MESSAGE:" (
527
            set BUILDSYSTEM=%%b)
528
    )
529
530
    if "%BUILDSYSTEM%" == "symbian-abld" (
531
        call make -h >> %PROJECT_LOG% 2>&1
532
        if not errorlevel 1 (
533
            echo Symbian abld
534
            set MAKE=make
535
        )
536
    ) else if "%BUILDSYSTEM%" == "symbian-sbsv2" (
537
        call make -h >> %PROJECT_LOG% 2>&1
538
        if not errorlevel 1 (
539
            echo Symbian sbsv2
540
            set MAKE=make
541
        )
542
    ) else if "%BUILDSYSTEM%" == "win32-nmake" (
543
        call nmake /? >> %PROJECT_LOG% 2>&1
544
        if not errorlevel 1 (
545
            echo nmake
546
            set MAKE=nmake
547
        )
548
    ) else if "%BUILDSYSTEM%" == "win32-mingw" (
549
        call mingw32-make -v >> %PROJECT_LOG% 2>&1
550
        if not errorlevel 1 (
551
            echo mingw32-make
552
            set MAKE=mingw32-make
553
        )
554
    ) else (
555
        echo Error: unknown target environment %BUILDSYSTEM%.
556
    )
557
    call cd %CURRENT_PWD%
558
call endlocal&set %1=%MAKE%&set %2=%BUILDSYSTEM%&goto :EOF
559
560
:checkMake
561
echo.
562
echo Checking make ...
563
call :makeTest MOBILITY_MAKE MOBILITY_BUILDSYSTEM
564
if not "%MOBILITY_MAKE%" == "" goto compileTests
565
566
echo >&2Cannot find 'nmake', 'mingw32-make' or 'make' in your PATH
567
echo >&2Aborting.
568
goto errorTag
569
570
:compileTest
571
setlocal
572
    @echo off
573
    echo Checking %1
574
    set CURRENT_PWD=%CD%
575
576
    if %BUILD_PATH% == %SOURCE_PATH% (
577
        cd %SOURCE_PATH%\config.tests\%2
578
        if exist %2 del %2
579
    ) else (
580
        rmdir /S /Q config.tests\%2
581
        mkdir config.tests\%2
582
        cd config.tests\%2
583
    )
584
585
    call %QT_PATH%qmake %SOURCE_PATH%\config.tests\%2\%2.pro >> %PROJECT_LOG% 2>&1
586
587
    set FAILED=0
588
    if "%MOBILITY_BUILDSYSTEM%" == "symbian-sbsv2" (
589
        call %MOBILITY_MAKE% release-armv5 >> %PROJECT_LOG% 2>&1
590
        for /f "tokens=2" %%i in ('%MOBILITY_MAKE% release-armv5 SBS^="@sbs --check" 2^>^&1') do set FAILED=1
591
    ) else if "%MOBILITY_BUILDSYSTEM%" == "symbian-abld" (
592
        call %MOBILITY_MAKE% release-gcce >> %PROJECT_LOG% 2>&1
593
        for /f "tokens=2" %%i in ('%MOBILITY_MAKE% release-gcce ABLD^="@ABLD.BAT -c" 2^>^&1') do if not %%i == bldfiles set FAILED=1
594
    ) else (
595
        REM Make for other builds
596
        call %MOBILITY_MAKE% >> %PROJECT_LOG% 2>&1
597
        REM have to check error level for windows / other builds to be sure.
598
        if errorlevel 1 (
599
           set FAILED=1
600
        )
601
    )
602
603
    if %FAILED% == 0 (
604
        echo ... OK
605
        echo %2_enabled = yes >> %PROJECT_CONFIG%
606
    ) else (
607
        echo ... Not Found
608
        echo %2_enabled = no >> %PROJECT_CONFIG%
609
    )
610
611
    cd %CURRENT_PWD%
612
endlocal&goto :EOF
613
614
:compileTests
615
616
REM No reason to do config tests if we got a platform configuration
617
if not "%PLATFORM_CONFIG%" == "" goto platformconfig
618
619
REM We shouldn't enable some of these if the corresponding modules are not enabled
620
echo.
621
echo Start of compile tests
622
REM compile tests go here.
623
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
624
if "%BUILDSYSTEM%" == "symbian-abld" goto symbianTests
625
if "%BUILDSYSTEM%" == "symbian-sbsv2" (
626
    echo.
627
    perl -S  %SOURCE_PATH%\bin\compilercheck.pl
628
    goto symbianTests
629
)
630
goto windowsTests
631
632
:symbianTests
633
634
if "%MODULE_BEARER_REQUESTED%" == "yes" (
635
    echo.
636
    echo Running compile tests for bearer module ...
637
    call :compileTest OCC occ
638
    call :compileTest SNAP snap
639
)
640
641
set doSymbianContactSIM=
642
if "%MODULE_CONTACTS_REQUESTED%" == "yes" (
643
    set doSymbianContactSIM=yes
644
)
645
if "%MODULE_SYSTEMINFO_REQUESTED%" == "yes" (
646
    set doSymbianContactSIM=yes
647
)
648
if "%doSymbianContactSIM%" == "yes" (
649
    echo.
650
    echo Running compile tests for contacts / systeminfo module ...
651
    call :compileTest SymbianContactSIM symbiancntsim
652
)
653
654
if "%MODULE_CONTACTS_REQUESTED%" == "yes" (
655
    echo.
656
    echo Running compile tests for contacts module ...
657
    call :compileTest SymbianContactModel symbiancntmodel
658
    call :compileTest SymbianContactModelv2 symbiancntmodelv2
659
)
660
661
if "%MODULE_CONNECTIVITY_REQUESTED%" == "yes" (
662
    echo.
663
    echo Running compile tests for connectivity module ...
664
    call :compileTest BTEngineConnectionManager_Symbian btengconnman_symbian
665
    call :compileTest BTEngineDeviceManager_Symbian btengdevman_symbian
666
    if "%NFC_SYMBIAN%" == "auto" (
667
        call :compileTest Symbian_NFC nfc_symbian
668
    ) else (
669
        echo nfc_symbian_enabled = no >> %PROJECT_CONFIG%
670
    )
671
)
672
673
if "%MODULE_FEEDBACK_REQUESTED%" == "yes" (
674
    echo.
675
    echo Running compile tests for feedback module ...
676
    call :compileTest IMMERSION immersion
677
    call :compileTest AdvancedTouchFeedback advancedtouchfeedback
678
    call :compileTest CHWRMHaptics chwrmhaptics
679
)
680
681
if "%MODULE_GALLERY_REQUESTED%" == "yes" (
682
    echo.
683
    echo Running compile tests for gallery module ...
684
    call :compileTest MDS mds
685
    call :compileTest MDS_25 mds_25
686
    call :compileTest MDS_25_92MCL mds_25_92mcl
687
)
688
689
if "%MODULE_LOCATION_REQUESTED%" == "yes" (
690
    echo.
691
    echo Running compile tests for location module ...
692
    call :compileTest LBT lbt
693
    call :compileTest location_fix location_fix
694
)
695
696
if "%MODULE_MESSAGING_REQUESTED%" == "yes" (
697
    echo.
698
    echo Running compile tests for messaging module ...
699
    call :compileTest Symbian_Messaging_Freestyle messaging_freestyle
700
    call :compileTest Symbian_Messaging_Freestyle_MAPI12 messaging_freestyle_mapi12
701
)
702
703
if "%MODULE_MULTIMEDIA_REQUESTED%" == "yes" (
704
    echo.
705
    echo Running compile tests for multimedia module ...
706
    call :compileTest Audiorouting_s60 audiorouting_s60
707
    call :compileTest mmf_http_cookies mmf_http_cookies
708
    REM Currently not being supported
709
    REM call :compileTest OpenMaxAl_support openmaxal_symbian
710
    call :compileTest RadioUtility_for_post_3.1 radioutility_s60
711
    call :compileTest Surfaces_s60 surfaces_s60
712
    call :compileTest Symbian_CamAutoFocus_31 symbian_camera_camautofocus
713
    call :compileTest Symbian_ECamAdvancedSettings_Post31 symbian_camera_ecamadvsettings
714
    call :compileTest Symbian_DevVideoRecord symbian_camera_devvideorecord
715
    call :compileTest Symbian_SnapShotAPI symbian_camera_snapshot
716
    call :compileTest Tunerlibrary_for_3.1 tunerlib_s60
717
)
718
719
if "%MODULE_ORGANIZER_REQUESTED%" == "yes" (
720
    echo.
721
    echo Running compile tests for organizer module ...
722
    call :compileTest SymbianENote symbianenote
723
)
724
725
if "%MODULE_PUBLISHSUBSCRIBE_REQUESTED%" == "yes" (
726
    REM No module-specific compile tests
727
)
728
729
if "%MODULE_SENSORS_REQUESTED%" == "yes" (
730
    echo.
731
    echo Running compile tests for sensors module ...
732
    call :compileTest S60_Sensor_API sensors_s60_31
733
    call :compileTest Symbian_Sensor_Framework sensors_symbian
734
    call :compileTest Sensor_Framework_Light sensors_symbian_light
735
)
736
737
if "%MODULE_SERVICEFRAMEWORK_REQUESTED%" == "yes" (
738
    REM No module-specific compile tests
739
)
740
741
if "%MODULE_SYSTEMINFO_REQUESTED%" == "yes" (
742
    echo.
743
    echo Running compile tests for systeminfo module ...
744
    call :compileTest Symbian_Hb hb_symbian
745
    call :compileTest FmTxClientCheck FmTxClient
746
    call :compileTest LockandFlipKeys LockandFlipPSkeys
747
    call :compileTest DiskNotifyClientCheck DiskNotifyClient
748
    call :compileTest ThermalStatus_Symbian thermalstatus_symbian
749
    call :compileTest Flextimer_Symbian symbianflextimer
750
    call :compileTest ETelPacketservice_symbian etelpacketservice_symbian
751
    call :compileTest networkhandlingengine_symbian networkhandlingengine_symbian
752
)
753
754
if "%MODULE_VERSIT_REQUESTED%" == "yes" (
755
    REM No module-specific compile tests
756
)
757
758
goto noTests
759
760
:windowsTests
761
762
call :compileTest DirectShow directshow
763
call :compileTest WindowsMediaSDK wmsdk
764
call :compileTest WindowMediaPlayer wmp
765
call :compileTest EnhancedVideoRenderer evr
766
call :compileTest WindowsMediaFoundation wmf
767
768
:noTests
769
770
echo.
771
echo End of compile tests
772
echo.
773
goto processHeaders
774
775
:platformconfig
776
777
echo.
778
echo Skipping configure tests
779
echo Loading ... features\platformconfig\%PLATFORM_CONFIG%.pri
780
781
if not exist "%SOURCE_PATH%\features\platformconfig\%PLATFORM_CONFIG%.pri" (
782
    echo >&2Invalid platform configuration %PLATFORM_CONFIG%.pri
783
    goto errorTag
784
)
785
echo include($${QT_MOBILITY_SOURCE_TREE}/features/platformconfig/%PLATFORM_CONFIG%.pri) >> %PROJECT_CONFIG%
786
787
:processHeaders
788
REM we could skip generating headers if a module is not enabled
789
if not exist "%BUILD_PATH%\features" mkdir %BUILD_PATH%\features
790
if not exist "%BUILD_PATH%\features\strict_flags.prf" copy %SOURCE_PATH%\features\strict_flags.prf %BUILD_PATH%\features
791
792
echo Generating Mobility Headers...
793
rd /s /q %BUILD_PATH%\include
794
mkdir %BUILD_PATH%\include
795
perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include %SOURCE_PATH%\src\global
796
797
set MODULES_TEMP=%MOBILITY_MODULES%
798
799
:generateHeaders
800
801
for /f "tokens=1,*" %%a in ("%MODULES_TEMP%") do (
802
    set FIRST=%%a
803
    set REMAINING=%%b
804
)
805
806
if %FIRST% == bearer (
807
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtBearer %SOURCE_PATH%\src\bearer
808
) else if %FIRST% == contacts (
809
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts
810
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts\requests
811
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts\filters
812
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts\details
813
) else if %FIRST% == location (
814
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtLocation %SOURCE_PATH%\src\location
815
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtLocation %SOURCE_PATH%\src\location\landmarks
816
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtLocation %SOURCE_PATH%\src\location\maps
817
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtLocation %SOURCE_PATH%\src\location\maps\tiled
818
) else if %FIRST% == messaging (
819
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtMessaging %SOURCE_PATH%\src\messaging
820
) else if %FIRST% == multimedia (
821
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtMultimediaKit %SOURCE_PATH%\src\multimedia
822
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtMultimediaKit %SOURCE_PATH%\src\multimedia\audio
823
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtMultimediaKit %SOURCE_PATH%\src\multimedia\video
824
) else if %FIRST% == publishsubscribe (
825
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtPublishSubscribe %SOURCE_PATH%\src\publishsubscribe
826
) else if %FIRST% == systeminfo (
827
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtSystemInfo %SOURCE_PATH%\src\systeminfo
828
) else if %FIRST% == serviceframework (
829
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtServiceFramework %SOURCE_PATH%\src\serviceframework
830
) else if %FIRST% == versit (
831
    REM versit implies contacts.  organizer includes might also be necessary
832
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtVersit %SOURCE_PATH%\src\versit
833
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts
834
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts\requests
835
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts\filters
836
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtContacts %SOURCE_PATH%\src\contacts\details
837
    if %MODULE_ORGANIZER_REQUESTED% == yes (
838
        perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtVersitOrganizer %SOURCE_PATH%\src\versitorganizer
839
    )
840
) else if %FIRST% == sensors (
841
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtSensors %SOURCE_PATH%\src\sensors
842
) else if %FIRST% == gallery (
843
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtGallery %SOURCE_PATH%\src\gallery
844
) else if %FIRST% == organizer (
845
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtOrganizer %SOURCE_PATH%\src\organizer
846
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtOrganizer %SOURCE_PATH%\src\organizer\items
847
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtOrganizer %SOURCE_PATH%\src\organizer\requests
848
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtOrganizer %SOURCE_PATH%\src\organizer\filters
849
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtOrganizer %SOURCE_PATH%\src\organizer\details
850
) else if %FIRST% == feedback (
851
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtFeedback %SOURCE_PATH%\src\feedback
852
) else if %FIRST% == connectivity (
853
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtConnectivity %SOURCE_PATH%\src\connectivity
854
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtConnectivity %SOURCE_PATH%\src\connectivity\nfc
855
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtConnectivity %SOURCE_PATH%\src\connectivity\bluetooth
856
    REM connectivity/nfc implies sfw
857
    perl -S %SOURCE_PATH%\bin\syncheaders %BUILD_PATH%\include\QtServiceFramework %SOURCE_PATH%\src\serviceframework
858
)
859
860
if "%REMAINING%" == "" (
861
    shift
862
) else (
863
    set MODULES_TEMP=%REMAINING%
864
    goto generateHeaders
865
)
866
867
SET REMAINING=
868
SET FIRST=
869
SET MODULES_TEMP=
870
871
if exist config.pri del config.pri
872
ren %PROJECT_CONFIG% config.pri
873
874
echo.
875
echo Running qmake...
876
call %QT_PATH%qmake -recursive %VC_TEMPLATE_OPTION% %SOURCE_PATH%\qtmobility.pro
877
if errorlevel 1 goto qmakeRecError
878
echo.
879
echo configure has finished. You may run %MOBILITY_MAKE% to build the project now.
880
goto exitTag
881
882
:qmakeRecError
883
echo.
884
echo configure failed.
885
goto errorTag
886
887
REM Unset the internal variables
888
:errorTag
889
set BUILD_PATH=
890
set CURRENTDIR=
891
set MOBILITY_MAKE=
892
set MOBILITY_BUILDSYSTEM=
893
set PROJECT_CONFIG=
894
set PROJECT_LOG=
895
set QT_MOBILITY_PREFIX=
896
set QT_PATH=
897
set SOURCE_PATH=
898
set MOBILITY_MODULES=
899
set MODULE_BEARER_REQUESTED=
900
set MODULE_CONTACTS_REQUESTED=
901
set MODULE_CONNECTIVITY_REQUESTED=
902
set MODULE_FEEDBACK_REQUESTED=
903
set MODULE_GALLERY_REQUESTED=
904
set MODULE_LOCATION_REQUESTED=
905
set MODULE_MESSAGING_REQUESTED=
906
set MODULE_MULTIMEDIA_REQUESTED=
907
set MODULE_ORGANIZER_REQUESTED=
908
set MODULE_PUBLISHSUBSCRIBE_REQUESTED=
909
set MODULE_SENSORS_REQUESTED=
910
set MODULE_SERVICEFRAMEWORK_REQUESTED=
911
set MODULE_SYSTEMINFO_REQUESTED=
912
set MODULE_VERSIT_REQUESTED=
913
set MOBILITY_MODULES_UNPARSED=
914
set REMAINING=
915
set FIRST=
916
set MODULES_TEMP=
917
set QT_MOBILITY_EXAMPLES=
918
set QT_MOBILITY_DEMOS=
919
set PLATFORM_CONFIG=
920
set LANGUAGES_CONFIG=
921
exit /b 1
922
923
:exitTag
924
set BUILD_PATH=
925
set CURRENTDIR=
926
set MOBILITY_MAKE=
927
set MOBILITY_BUILDSYSTEM=
928
set PROJECT_CONFIG=
929
set PROJECT_LOG=
930
set QT_MOBILITY_PREFIX=
931
set QT_PATH=
932
set SOURCE_PATH=
933
set MOBILITY_MODULES=
934
set MODULE_BEARER_REQUESTED=
935
set MODULE_CONTACTS_REQUESTED=
936
set MODULE_CONNECTIVITY_REQUESTED=
937
set MODULE_FEEDBACK_REQUESTED=
938
set MODULE_GALLERY_REQUESTED=
939
set MODULE_LOCATION_REQUESTED=
940
set MODULE_MESSAGING_REQUESTED=
941
set MODULE_MULTIMEDIA_REQUESTED=
942
set MODULE_ORGANIZER_REQUESTED=
943
set MODULE_PUBLISHSUBSCRIBE_REQUESTED=
944
set MODULE_SENSORS_REQUESTED=
945
set MODULE_SERVICEFRAMEWORK_REQUESTED=
946
set MODULE_SYSTEMINFO_REQUESTED=
947
set MODULE_VERSIT_REQUESTED=
948
set MOBILITY_MODULES_UNPARSED=
949
set REMAINING=
950
set FIRST=
951
set MODULES_TEMP=
952
set QT_MOBILITY_EXAMPLES=
953
set QT_MOBILITY_DEMOS=
954
set PLATFORM_CONFIG=
955
set LANGUAGES_CONFIG=
956
exit /b 0