/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/


/*!
    \page integrity.html
    \title Qt for INTEGRITY
    \keyword INTEGRITY
    \ingroup supportedplatform
    \brief Platform support for INTEGRITY.

    From Qt 5.9 onwards, the Green Hills Software
    \l {http://www.ghs.com/products/rtos/integrity.html} {INTEGRITY}
    Real-Time Operating System (RTOS) is a supported platform.

    The INTEGRITY RTOS is widely used in safety- and security-critical systems.
    Especially in the automotive industry, both Qt and the INTEGRITY RTOS can be
    used in conjunction with instrument clusters and infotainment systems.

    With Qt for INTEGRITY you can build and develop applications for the
    INTEGRITY RTOS. Qt for INTEGRITY supports most \l {Supported Qt Modules} {Qt Modules}.
    The development environment includes your target device and Qt sources
    that you need to build for your target device.
    See \l {Supported Development Hosts and Boards} for detailed information
    about the supported development environment.

    Qt for INTEGRITY has a tutorial that helps you learn how to:
    \list
        \li Set up a development environment for the i.MX6 Quad board
        \li Build an INTEGRITY application
        \li Prepare the i.MX6 Quad board to run your application
    \endlist

    See \l {Qt for INTEGRITY: Monolith Project Tutorial}.

    \section1 Supported Qt Modules

    Qt for INTEGRITY has been tested to support the following Qt modules: Qt Core,
    Qt Network, Qt GUI, Qt Quick, Qt QML, Qt Quick Controls 2, Qt 3D, Qt Widgets,
    Qt Image Formats, Qt XML Patterns, Qt SVG.

    Other Qt modules may work with Qt for INTEGRITY, but we cannot guarantee that.

    \section1 Supported Development Hosts and Boards

    Qt for INTEGRITY can be built on the following hosts:
    \list
        \li 64-bit Linux distributions
        \li 32-bit and 64-bit Windows 10
    \endlist

    Qt for INTEGRITY supports building and developing applications for the
    following development boards:
    \list
        \li \l {https://boundarydevices.com/product/sabre-lite-imx6-sbc/}
        {Boundary Devices BD-SL-i.MX6}
        \li \l  {http://www.nvidia.com/object/tegra-x1-processor.html} {NVIDIA Tegra X1}
    \endlist
*/
