Home · All Namespaces · All Classes · Grouped Classes · Modules · Functions codeless banner

[Previous: Module concept] [Qt Extended Modules] [Next: Reference designs]

Building modules

This section describes how the various modules are selected/build into Qt Extended. Depending on the module there are different ways of enabling a specific module.

Configure script selection

Previous versions of configure provided options which enabled a similar style of feature/module selection. To unify the selection mechanism a new -modules flag has been created. It expects a list of modules to be enabled. The only module that doesn't have to be enabled is the Base module as it is provides requirement for all other modules. Therefore it is automatically included.

The subsequent table shows the mapping of all old configure switches which directly map to a designated module:

enabled modulerelated configure switchrelated build system flag
Bluetooth-bluetoothenable_bluetooth
Infrared-infraredenable_infrared
Telephony-telephonyenable_telephony
Cell-modem (implies -telephony switch)enable_cell
IPComms-voip (implies -telephony switch)enable_voip
Drm-drmdrmagent
Media-qtopiamediaenable_qtopiamedia
Location-whereaboutsenable_qtopiawhereabouts
QtUiTest-testqtuitest

To further increase the flexibility the Qt Extended configure script behaves slightly more restrictive when compared to previous versions. Usually Qt Extended enables additional features/modules based on tests performed when configure runs. If for instance Bluez & DBUS support is detected Bluetooth support is automatically enabled unless it was explicitly disabled via the -no-bluetooth flag. Starting with Qt Extended 4.4 configure only enables additional features/modules if they are explicitly enabled via their respective command line option.

The -modules configure options unifies the various options and allows the selection of modules.

    ./configure -modules cell,location,pim,messaging -device xyz

The above command line enables the QtCellModule, QtLocationModule, QtPimModule, QtMessagingModule and the QtBaseModule module. The Base module is always required and is implicitly selected.

Module adjustments

Each module has a definition file which lists the projects belonging to it. The definition files use the following name schema $QPEDIR/src/module_<module-name>.pri and the appropriate configure flag has to be passed to enable it. Once the module is included each project listed in the definition file becomes part of the build.

In some cases a module may still contain some projects not required for a particular target build. Therefore selected projects can be further excluded from the build via the device profile's projects.pri. Project selection happens after module selection. The example below adds the contact application and removes the calculator from the build.

    PROJECTS+=src/applications/addressbook

    PROJECTS-=src/applciations/calculator

Note that when directly adding new projects dependencies may require further project adjustments in order to resolve build problems. It may for instance be necessary to add the pim library the above project selection as the addressbook depends on it (this is subject the modules selected prior to the project selection).

[Previous: Module concept] [Qt Extended Modules] [Next: Reference designs]


Copyright © 2009 Trolltech Trademarks
Qt Extended 4.4.3