/****************************************************************************
**
** Copyright (C) 2006-2008 Trolltech ASA. All rights reserved.
**
** This file is part of the documentation of the Qt Toolkit.
**
** 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 files LICENSE.GPL2 and LICENSE.GPL3
** included in the packaging of this file.  Alternatively you may (at
** your option) use any later version of the GNU General Public
** License if such license has been publicly approved by Trolltech ASA
** (or its successors, if any) and the KDE Free Qt Foundation.
**
** Please review the following information to ensure GNU General
** Public Licensing requirements will be met:
** http://trolltech.com/products/qt/licenses/licensing/opensource/. If
** you are unsure which license is appropriate for your use, please
** review the following information:
** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
** or contact the sales department at sales@trolltech.com.
**
** In addition, as a special exception, Trolltech, 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.
**
** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly
** granted herein.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
****************************************************************************/

/*!
    \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
*/
