/****************************************************************************
**
** Copyright (c) 2013 Digia Plc and/or its subsidiary(-ies).
** Contact: http://www.qt-project.org/legal
**
** This file is part of Qt Creator
**
**
** GNU Free Documentation License
**
** 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.
**
**
****************************************************************************/

// **********************************************************************
// NOTE: the sections are not ordered by their logical order to avoid
// reshuffling the file each time the index order changes (i.e., often).
// Run the fixnavi.pl script to adjust the links to the index order.
// **********************************************************************

/*!
    \contentspage index.html
    \previouspage creator-deployment-bb10.html
    \page creator-deployment-maemo.html
    \nextpage creator-deployment-qnx.html

    \title Deploying Applications to Linux-Based Devices

    You can specify settings for deploying applications to Linux-based devices
    (Embedded Linux, MeeGo Harmattan, and Maemo 5) in the project .pro file.
    You can view the settings in the
    \gui {Run Settings}.

    \image qtcreator-maemo-deployment.png "Deploy to device"

    The files to be installed are listed in the \gui {Deployment} step,
    the \gui {Files to install for subproject} field. The \gui {Local File Path}
    field displays the location of the file on the development PC. The
    \gui {Remote Directory} field displays the folder where the file is
    installed on the device. Text in red color indicates that the information is
    missing. Edit the qmake
    \l{http://qt-project.org/doc/qt-4.8/qmake-variable-reference.html#installs}
    {INSTALLS variable} in the project .pro file to add the missing files.

    When you run the application, \QC copies the necessary files to the device
    and starts the application on it.

    For example, adding

    \code
      target.path = /root
      INSTALLS += target
    \endcode

    to the project .pro file will copy the binary of your project to \c /root
    on the remote device. Additional files can be deployed by adding them to
    further targets and adding those to \c INSTALLS as well.

    \section1 Deploying on Embedded Linux

    \image qtcreator-embedded-linux-deployment.png "Deploy to embedded Linux"

    When you run the application on the \gui {Embedded Linux} device,
    \QC deploys the application as specified by the deploy steps. By default,
    \QC copies the application files to the device by using the SSH file
    transfer protocol (SFTP), as specified by the \gui {Upload files via SFTP}
    step.

    If you have a lot of data to copy, select \gui Details in the
    \gui {Upload Files via SFTP} step, and then select the
    \gui {Incremental deployment} check box. \QC takes note of the deployment
    time and only copies files that have changed since the last deployment.
    However, when you make major changes on the device, such as removing files
    from the device manually or flashing a new disk image, or when you use
    another device with the same IP address, deselect the check box once, to
    have \QC deploy all files again.

    To only create a tarball and not copy the files to the device, select
    \gui {Add Deploy Step > Create tarball}. Then remove all other deploy steps.

    The \gui {Deploy tarball via SFTP upload} step specifies that \QC
    uploads the tarball to the device and extracts it.

    \note If the SFTP upload fails, make sure that the remote device has
    SFTP enabled in its SSH daemon. Some versions of Dropbear that come
    without SFTP support will crash when an SFTP upload is being attempted.
    This is not a bug in \QC.

    \section1 Deploying on MeeGo Harmattan and Maemo 5

    You can use desktop files to display icons on the home screen of the
    device. To add desktop files to the project file, select \gui {Add Desktop
    File}. To specify the icon file to display, select \gui {Add Launcher
    Icon}. To remove desktop files and icons, delete the definitions from
    the project file.

    If you develop your own libraries, \QC needs to be able to find them when
    you compile projects depending on them. When you install MADDE, an instance
    of the device file system, called sysroot, is installed to the development
    PC. Libraries are copied to sysroot during the \gui {Install Debian package
    to sysroot} step.

    \section1 Creating Debian Installation Packages

    When you run the application on the \gui{Maemo5} or \gui Harmattan device,
    \QC generates a Debian installation package in the build directory by
    default. You can deliver the installation package to users for installation
    on devices that are of the same type and run the same firmware as the
    connected device.

    \image qtcreator-maemo-deb-package.png "Create installation package"

    The name of the installation package is displayed in the \gui {Package name}
    field in the \gui {Create Package} step. You can change the version number
    in the \gui {Package version} field.

    You can specify information that users see on a delivery channel, such as
    Nokia Store or Maemo.org. You can specify a short description of the
    application, package name, and application icon.

    The Debian control file contains an application icon in encoded form. To add
    the application icon to the file, select it in the \gui {Icon to be
    displayed in Package Manager} field. For more information about icon files
    and adding them manually, see
    \l{ http://wiki.maemo.org/Packaging#Displaying_an_icon_in_the_Application_Manager_next_to_your_package}
    {Displaying an icon in the Application Manager next to your package}.

    \note \QC automates this process for you.

    \QC provides templates for a set of files that must be included in Debian
    packages. When you start using a \l{glossary-buildandrun-kit}{kit} with
    \gui Maemo5 or \gui Harmattan device type
    for a project, \QC asks whether packaging files are to be added to the project and
    to version control. If you plan to edit the packaging files, add them to
    version control.

    To edit the files, select a file in \gui {Adapt Debian file} and click
    \gui Edit. The file opens in the text editor.

*/
