/****************************************************************************
**
** Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies).
** Contact: Qt Software Information (qt-info@nokia.com)
**
** This file is part of the documentation of the Qt Toolkit.
**
** Commercial Usage
** Licensees holding valid Qt Commercial licenses may use this file in
** accordance with the Qt Commercial License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Nokia.
**
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License versions 2.0 or 3.0 as published by the Free
** Software Foundation and appearing in the file LICENSE.GPL included in
** the packaging of this file.  Please review the following information
** to ensure GNU General Public Licensing requirements will be met:
** http://www.fsf.org/licensing/licenses/info/GPLv2.html and
** http://www.gnu.org/copyleft/gpl.html.  In addition, as a special
** exception, Nokia gives you certain additional rights. These rights
** are described in the Nokia Qt GPL Exception version 1.3, included in
** the file GPL_EXCEPTION.txt in this package.
**
** Qt for Windows(R) Licensees
** As a special exception, Nokia, as the sole copyright holder for Qt
** Designer, grants users of the Qt/Eclipse Integration plug-in the
** right for the Qt/Eclipse Integration to link to functionality
** provided by Qt Designer and its related libraries.
**
** If you are unsure which license is appropriate for your use, please
** contact the sales department at qt-sales@nokia.com.
**
****************************************************************************/

/*!
    \if defined(qtce)
      \page qtce-features.html
      \title Fine-Tuning Features in Qt for Windows CE
      \ingroup qtce
    \else
      \page qt-embedded-features.html
      \title Fine-Tuning Features in Qt for Embedded Linux
      \ingroup qt-embedded
    \endif

    In many cases, only a fixed set of applications are deployed on an
    embedded device, making it possible to save resources by minimizing
    the size of the associated libraries. The Qt installation can easily
    be optimized by avoiding to compile in the features that are not
    required.

    \if defined(qtce)
      To disable a particular feature, just run the \c configure script 
      with the set of required \c -D<feature> options. For example,
      you can use the \c -D option to define \c{QT_NO_THREAD}:

      \snippet doc/src/snippets/code/doc_src_emb-features.qdoc 0

      The \c -D option only creates a Qt internal define. If you get linker
      errors you have to define \c QT_NO_THREAD also for your project.
      You can do this by adding \c DEFINES += \c QT_NO_THREAD to your
      \c .pro file.

    \else

      To disable a particular feature, just run the \c configure script 
      for Qt for Embedded Linux with the \c -no-feature-<feature> option.
      For example:

      \snippet doc/src/snippets/code/doc_src_emb-features.qdoc 1

      The feature can easily be enabled again by running \c configure
      with the \c -feature-<feature> option.
    \endif

    You can look up the different feature definitions in
    \c{/src/corelib/global/qfeatures.txt}.

    If you want to disable a lot of features, it is more comfortable
    to use the \c qconfig tool.
    You can disable a \e set of features by creating a custom
    configuration file that defines the preferred subset of Qt's
    functionality. Such a file uses macros to disable the unwanted
    features, and can be created manually or by using the \c qconfig
    tool located in the \c /tools/qconfig directory.

    \note The \c qconfig tool is intended to be built against Qt on
    desktop platforms.
    \if defined(qtce)
    The Qt for Windows CE package contains a \c qconfig executable that you can run
    on a Windows desktop to configure the build.
    \endif

    \image qt-embedded-qconfigtool.png

    The \c qconfig tool's interface displays all of Qt's
    functionality, and allows the user to both disable and enable
    features. The user can open and edit any custom configuration file
    located in the \c /src/corelib/global directory. When creating a
    custom configuration file manually, a description of the currently
    available Qt features can be found in the \c
    /src/corelib/global/qfeatures.txt file.

    Note that some features depend on others; disabling any feature
    will automatically disable all features depending on it. The
    feature dependencies can be explored using the \c qconfig tool,
    but they are also described in the \c
    /src/corelib/global/qfeatures.h file.

    To be able to apply the custom configuration, it must be saved in
    a file called \c qconfig-myfile.h in the \c /src/corelib/global
    directory. Then use the \c configure tool's \c -qconfig option
    and pass the configuration's filename without the \c qconfig-
    prefix and \c .h extension, as argument.
    For example:

    \if defined(qtce)
      \snippet doc/src/snippets/code/doc_src_emb-features.qdoc 2
    \else
      \snippet doc/src/snippets/code/doc_src_emb-features.qdoc 3
    \endif

    Qt provides several ready-made custom configuration files,
    defining minimal, small, medium and large installations,
    respectively. These files are located in the \c
    /src/corelib/global directory.

    \if defined(qtce)
      \sa {Qt for Windows CE Performance Tuning}{Performance Tuning}
    \else
      \sa {Qt for Embedded Linux Performance Tuning}{Performance Tuning}
    \endif
*/
