summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/ivicore/qface-ivi-addressbook/frontend/frontend.pro2
-rw-r--r--examples/ivicore/qface-ivi-climate/frontend/frontend.pro2
-rw-r--r--examples/ivicore/qface-ivi-remote/frontend/frontend.pro2
-rw-r--r--src/doc/qtautomotivesuite/src/external-resources.qdoc172
-rw-r--r--src/doc/qtautomotivesuite/src/images/ifw-overview.pngbin0 -> 41080 bytes
-rw-r--r--src/doc/qtautomotivesuite/src/images/qtas-sdk-tools.pngbin0 -> 37749 bytes
-rw-r--r--src/doc/qtautomotivesuite/src/images/qtas_sdk.pngbin0 -> 25900 bytes
-rw-r--r--src/doc/qtautomotivesuite/src/images/qtinstaller-qas.pngbin29365 -> 16636 bytes
-rw-r--r--src/doc/qtautomotivesuite/src/qtautomotivesuite-byos.qdoc160
-rw-r--r--src/doc/qtautomotivesuite/src/qtautomotivesuite-create-sdk.qdoc167
-rw-r--r--src/doc/qtautomotivesuite/src/qtautomotivesuite-drive-cx.qdoc71
-rw-r--r--src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-build-ifw.qdoc215
-rw-r--r--src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-repositories.qdoc346
-rw-r--r--src/doc/qtautomotivesuite/src/qtautomotivesuite-tutorial-deploying.qdoc2
-rw-r--r--src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc53
-rw-r--r--src/doc/qtautomotivesuite/src/shared/qtas-common.qdocinc2
-rw-r--r--src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl3
-rw-r--r--src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl2
-rw-r--r--src/tools/ivigenerator/templates_frontend/global.h.tpl2
-rw-r--r--src/tools/ivigenerator/templates_frontend/interface.h.tpl2
-rw-r--r--src/tools/ivigenerator/templates_frontend/module.h.tpl2
-rw-r--r--src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl2
-rw-r--r--src/tools/ivigenerator/templates_frontend/struct.h.tpl2
-rw-r--r--tests/auto/core/ivigenerator/projects/org-example-echo-noprivate/frontend/frontend.pro2
-rw-r--r--tests/auto/core/ivigenerator/projects/org-example-echo-qtro/frontend/frontend.pro2
-rw-r--r--tests/auto/core/ivigenerator/projects/org-example-echo-simulator/frontend/frontend.pro2
-rw-r--r--tests/auto/core/ivigenerator/projects/org-example-echo/frontend/frontend.pro2
27 files changed, 947 insertions, 270 deletions
diff --git a/examples/ivicore/qface-ivi-addressbook/frontend/frontend.pro b/examples/ivicore/qface-ivi-addressbook/frontend/frontend.pro
index 78ef584..bbcaeb5 100644
--- a/examples/ivicore/qface-ivi-addressbook/frontend/frontend.pro
+++ b/examples/ivicore/qface-ivi-addressbook/frontend/frontend.pro
@@ -6,7 +6,7 @@ QT_FOR_CONFIG += ivicore
!qtConfig(ivigenerator): error("No ivigenerator available")
QT += ivicore ivicore-private qml quick
-DEFINES += QT_BUILD_ADDRESSBOOK_LIB
+DEFINES += QT_BUILD_EXAMPLE_IVI_ADDRESSBOOK_LIB
CONFIG += ivigenerator
QFACE_SOURCES = ../example-ivi-addressbook.qface
CONFIG += install_ok # Do not cargo-cult this!
diff --git a/examples/ivicore/qface-ivi-climate/frontend/frontend.pro b/examples/ivicore/qface-ivi-climate/frontend/frontend.pro
index fb07a8a..f76702e 100644
--- a/examples/ivicore/qface-ivi-climate/frontend/frontend.pro
+++ b/examples/ivicore/qface-ivi-climate/frontend/frontend.pro
@@ -8,7 +8,7 @@ QT_FOR_CONFIG += ivicore
#! [0]
QT += ivicore ivicore-private qml quick
-DEFINES += QT_BUILD_CLIMATE_LIB
+DEFINES += QT_BUILD_EXAMPLE_IVI_CLIMATE_LIB
#! [1]
CONFIG += ivigenerator
QFACE_SOURCES = ../example-ivi-climate.qface
diff --git a/examples/ivicore/qface-ivi-remote/frontend/frontend.pro b/examples/ivicore/qface-ivi-remote/frontend/frontend.pro
index 20e5207..8fe5732 100644
--- a/examples/ivicore/qface-ivi-remote/frontend/frontend.pro
+++ b/examples/ivicore/qface-ivi-remote/frontend/frontend.pro
@@ -8,7 +8,7 @@ QT_FOR_CONFIG += ivicore
#! [0]
QT += ivicore ivicore-private qml quick
-DEFINES += QT_BUILD_REMOTE_LIB
+DEFINES += QT_BUILD_EXAMPLE_IVI_REMOTE_LIB
#! [1]
CONFIG += ivigenerator
QFACE_SOURCES = ../example-ivi-remote.qface
diff --git a/src/doc/qtautomotivesuite/src/external-resources.qdoc b/src/doc/qtautomotivesuite/src/external-resources.qdoc
index 1245fa8..feeb87e 100644
--- a/src/doc/qtautomotivesuite/src/external-resources.qdoc
+++ b/src/doc/qtautomotivesuite/src/external-resources.qdoc
@@ -26,12 +26,12 @@
****************************************************************************/
/*!
- \externalpage http://www.genivi.org/
+ \externalpage https://www.genivi.org/
\title GENIVI
*/
/*!
- \externalpage http://doc.qt.io/
+ \externalpage https://doc.qt.io/
\title Qt Reference Documentation
*/
@@ -111,6 +111,12 @@
*/
/*!
+ \externalpage https://doc.qt.io/Neptune3UI/index.html#ui-insights
+ \title Neptune 3 UI Insights
+*/
+
+
+/*!
\externalpage https://doc.qt.io/QtIVI/index.html
\title Qt IVI
*/
@@ -121,92 +127,92 @@
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html#supported-target-device-groups
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html#supported-target-device-groups
\title Supported Target Devices
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html#supported-development-hosts
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-supported-platforms.html#supported-development-hosts
\title Supported Development Hosts
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-requirements-x11.html
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-requirements-x11.html
\title Requirements for Linux/X11
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-requirements-windows.html
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-requirements-windows.html
\title Requirements for Windows
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-building-and-running.html#building-and-running-an-example
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-building-and-running.html#building-and-running-an-example
\title Building and Running an Example
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html
\title Building Your Own Embedded Linux Image
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-about-b2qt.html
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-about-b2qt.html
\title About Boot to Qt
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html#configuring-qt-creator
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html#configuring-qt-creator
\title Configuring Qt Creator
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html#using-toolchain-without-qt-creator
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-custom-embedded-linux-image.html#using-toolchain-without-qt-creator
\title Using Toolchain without Qt Creator
*/
/*!
- \externalpage http://www.yoctoproject.org/
+ \externalpage https://www.yoctoproject.org/
\title Yocto Project
*/
/*!
- \externalpage http://www.yoctoproject.org/documentation/current
+ \externalpage https://www.yoctoproject.org/documentation/current
\title Yocto Project Documentation for the Latest Release
*/
/*!
- \externalpage http://www.nvidia.com/object/drive-cx-request.html
+ \externalpage https://www.nvidia.com/object/drive-cx-request.html
\title NVIDIA DRIVE™ CX
*/
/*!
- \externalpage http://doc.qt.io/emulator/
+ \externalpage https://doc.qt.io/emulator/
\title Emulator
*/
/*!
- \externalpage http://doc.qt.io/qtcreator/creator-overview-qtasam.html
+ \externalpage https://doc.qt.io/qtcreator/creator-overview-qtasam.html
\title Qt Creator Application Manager Plugin
*/
/*!
- \externalpage http://doc.qt.io/archives/qt-5.9-devicecreation/qtee-requirements-x11.html#setting-up-usb-access-to-embedded-devices
+ \externalpage https://doc.qt.io/archives/qt-5.9-devicecreation/qtee-requirements-x11.html#setting-up-usb-access-to-embedded-devices
\title Setting Up USB Access to Embedded Devices
*/
/*!
- \externalpage http://doc.qt.io/QtForDeviceCreation/b2qt-deploying-b2qt.html
+ \externalpage https://doc.qt.io/QtForDeviceCreation/b2qt-deploying-b2qt.html
\title Deploying Qt Projects with Boot to Qt
*/
/*!
- \externalpage http://doc.qt.io/qtcreator/quick-projects.html#creating-qt-quick-applications
+ \externalpage https://doc.qt.io/qtcreator/quick-projects.html#creating-qt-quick-applications
\title Creating Qt Quick Applications
*/
/*!
- \externalpage http://doc.qt.io/qt-5/all-examples.html
+ \externalpage https://doc.qt.io/qt-5/all-examples.html
\title Qt Examples
*/
@@ -219,3 +225,129 @@
\externalpage https://doc.qt.io/QtIVI/index.html#licenses-and-attributions
\title Qt IVI Licenses and Attributions
*/
+
+/*!
+ \externalpage https://doc.qt.io/qt3dstudio/index.html
+ \title Qt 3D Studio
+*/
+
+/*!
+ \externalpage https://doc.qt.io/QtSafeRenderer/index.html
+ \title Qt Safe Renderer
+*/
+
+/*!
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-preparing-hardware-apalis-imx6.html
+ \title Toradex Apalis iMX6
+*/
+
+/*!
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-preparing-hardware-nuc.html
+ \title Intel NUC
+*/
+
+/*!
+ \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-preparing-hardware-jetsontx1.html
+ \title NVIDIA Jetson TX2
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/
+ \title Qt Installer Framework
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-overview.html
+ \title Qt Installer Framework Overview
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-globalconfig.html
+ \title Configuration File
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-tools.html
+ \title Qt Installer Framework Tools
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-creating-installers.html
+ \title Creating Installers
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-online-installers.html
+ \title Creating Online Installers
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-getting-started.html
+ \title Getting Started with Qt IFW
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-updates.html
+ \title Promoting Updates
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-component-description.html
+ \title Package Directory
+*/
+
+/*!
+ \externalpage https://doc.qt.io/qtinstallerframework/ifw-updates.html#partially-updating-repositories
+ \title Partially Updating Repositories
+*/
+
+/*!
+ \externalpage https://code.qt.io/cgit/qtsdk/qtsdk.git/
+ \title Qt SDK Git Repository
+*/
+
+/*!
+ \externalpage https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools
+ \title Packaging Tools Directory
+*/
+
+/*!
+ \externalpage https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/build_wrapper.py
+ \title Build Wrapper Script
+*/
+
+/*!
+ \externalpage https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/localbuild.ini
+ \title Local Build INI file
+*/
+
+/*!
+ \externalpage https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/bld_ifw_tools.py
+ \title Build Installer Framework Tools Script
+*/
+
+/*!
+ \externalpage https://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/create_installer.py
+ \title Create Installer Script
+*/
+
+/*!
+ \externalpage https://www.python.org/download/releases/2.7/
+ \title Python 2.7
+*/
+
+/*!
+ \externalpage https://www.7-zip.org/
+ \title 7-Zip
+*/
+
+/*!
+ \externalpage https://wiki.qt.io/Building_Qt_5_from_Git
+ \title Building Qt 5 from Git
+*/
+
+/*!
+ \externalpage https://wiki.qt.io/Building_Qt_Creator_from_Git
+ \title Building Qt Creator from Git
+*/
+
diff --git a/src/doc/qtautomotivesuite/src/images/ifw-overview.png b/src/doc/qtautomotivesuite/src/images/ifw-overview.png
new file mode 100644
index 0000000..fa13c0a
--- /dev/null
+++ b/src/doc/qtautomotivesuite/src/images/ifw-overview.png
Binary files differ
diff --git a/src/doc/qtautomotivesuite/src/images/qtas-sdk-tools.png b/src/doc/qtautomotivesuite/src/images/qtas-sdk-tools.png
new file mode 100644
index 0000000..388fe93
--- /dev/null
+++ b/src/doc/qtautomotivesuite/src/images/qtas-sdk-tools.png
Binary files differ
diff --git a/src/doc/qtautomotivesuite/src/images/qtas_sdk.png b/src/doc/qtautomotivesuite/src/images/qtas_sdk.png
new file mode 100644
index 0000000..702bdf5
--- /dev/null
+++ b/src/doc/qtautomotivesuite/src/images/qtas_sdk.png
Binary files differ
diff --git a/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png b/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png
index 4da903d..67fc88c 100644
--- a/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png
+++ b/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png
Binary files differ
diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite-byos.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite-byos.qdoc
index fc2e268..fab2bd4 100644
--- a/src/doc/qtautomotivesuite/src/qtautomotivesuite-byos.qdoc
+++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite-byos.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Automotive Suite.
@@ -27,7 +27,7 @@
/*!
\page qtautomotive-byos.html
- \title Building Your Own NVIDIA DRIVE CX Image
+ \title Building Your Own Image
\previouspage qtautomotive-tutorial-deploying.html
\nextpage qtas-licenses.html
@@ -38,158 +38,10 @@
and have control over which packages are included in the build and how the
software stack is configured.
- To build your own NVIDIA DRIVE CX image, follow the steps in this topic.
- For more information about building the Boot to Qt image, see
- \l{Building Your Own Embedded Linux Image}.
-
- \note Building your own NVIDIA DRIVE CX image is supported only in Linux.
-
- \section1 Requirements
-
- You should be familiar with the Yocto tools and the concept of
- \e {recipes}. For more information, see
- \l{Yocto Project Documentation for the Latest Release}.
-
- Your \QAS installation must include Yocto meta layer components. To install
- those, select \uicontrol {Qt Automotive Suite}
- > \uicontrol {Qt for Automotive Software Stack} > \uicontrol {Components}
- > \uicontrol {Yocto meta layer} in the Qt online installation wizard.
-
- \image qtas-yocto.png
-
- After a successful installation, you will find the Yocto meta layer under the path
- <Qt installation directory>/<Qt version>/Automotive/sources/meta-boot2qt.
-
- Install dependencies for the Yocto tools. In Ubuntu, the following
- packages are required:
-
- \badcode
- sudo apt-get install gawk curl git-core diffstat unzip p7zip-full texinfo \
- gcc-multilib build-essential chrpath libsdl1.2-dev xterm gperf bison \
- g++-multilib
- \endcode
-
- Download NVIDIA DRIVE CX Platform Development Kit (PDK) from the NVIDIA site.
- In order to get access to PDK, you need a valid NVIDIA license.
- For more information, see \l{NVIDIA DRIVE™ CX}. The required PDK version is 4.1.4.0.
-
- \section1 Setting Up Build Environment
-
- Set up the NVIDIA DRIVE CX build environment:
-
- \list 1
- \li Extract the following packages from NVIDIA DRIVE CX PDK:
-
- \badcode
- vibrante-t186ref-foundation-4.1.4.0-8512955.pdk.7z
- vibrante-t186ref-linux-4.1.4.0-8512955-pdk.7z
- \endcode
-
- \li For installing the documentation, run the following command in a terminal:
-
- \badcode
- vibrante-t186ref-foundation-4.1.4.0-8512955-RUN-THIS-FIRST-install-docs.run
- \endcode
- After running the command, the NVIDIA DRIVE CX documentation should
- be started automatically.
-
- \li In the NVIDIA DRIVE CX documentation, open the topic
- \uicontrol {System Programming} > \uicontrol {Building the Yocto Project Based Components}
- and extract all defined prerequisite packages.
-
- \li Extract the following package:
- \badcode
- <PDK installation directory>/vibrante-t186ref-linux-4.1.4.0-8512955-pdk/vibrante-t186ref-linux_src/yocto/nvidia-layer.tgz
- \endcode
-
- \li Create a new directory for building the image. In our example,
- we use the directory name \e{builddir}.
-
- \li Run the following commands in a terminal:
- \badcode
- cd builddir
- <Qt Automotive Suite installation directory>/<Qt version>/Automotive/sources/meta-boot2qt/b2qt-init-build-env init --device tegra-t18x
- \endcode
-
- After running the commands, you should have:
-
- \list
- \li A directory \e{sources} generated under \e{builddir}.
- \li A shell script \e{setup-environment.sh} generated under \e{builddir}.
- \endlist
-
- \li Create the following symbolic links:
- \endlist
-
- \table
- \header
- \li A symbolic link name
- \li A source folder path
- \li A destination folder path
- \row
- \li nvidia-layer
- \li <PDK installation directory>/vibrante-t186ref-linux-4.1.4.0-8512955-pdk/vibrante-t186ref-linux_src/yocto/layers
- \li builddir/sources/meta-boot2qt/sources
- \row
- \li vibrante-t186
- \li <PDK installation directory>/vibrante-t186ref-linux-4.1.4.0-8512955-pdk
- \li builddir/sources/meta-boot2qt/sources
- \endtable
-
- \e{builddir} is the directory that you created for building the image.
-
- \section1 Configuring Build Environment
-
- Configure the build environment for NVIDIA DRIVE CX by running the
- following commands in a terminal:
-
- \badcode
- cd builddir
- export MACHINE=tegra-t18x
- source ./setup-environment.sh
- \endcode
-
- \e{builddir} is the directory you created for building the image.
-
- After running \e{setup-environment.sh}, your current directory in a terminal
- is \e{builddir/build-tegra-t18x}. There you can build an image and/or
- a toolchain for NVIDIA DRIVE CX. The toolchain can be used with Qt Creator
- for building Qt applications.
-
- \section1 Building Image
-
- Build the NVIDIA DRIVE CX image by running the following commands in a terminal:
-
- \badcode
- cd builddir/build-tegra-t18x
- bitbake b2qt-automotive-qt5-image
- \endcode
-
- You will find the built image file \e{b2qt-automotive-qt5-image-tegra-t18x.7z}
- under the path builddir/tmp/deploy/images/tegra-t18x.
-
- \section1 Building Toolchain
-
- Build the NVIDIA DRIVE CX toolchain by running the following commands in a terminal:
-
- \badcode
- cd builddir/build-tegra-t18x
- bitbake meta-toolchain-b2qt-automotive-qt5-sdk
- \endcode
-
- After building the toolchain, you will find the shell script
- \e{b2qt-x86-64-meta-toolchain-b2qt-automotive-qt5-sdk-tegra-t18x.sh}
- under the path builddir/tmp/deploy/sdk/. Install the toolchain by running
- the shell script.
-
- \section1 Using Toolchain
-
- After installing the toolchain, you can use it with or without Qt Creator.
-
- If you are using the toolchain with Qt Creator, you need to configure
- Qt Creator for the toolchain. See \l{Configuring Qt Creator}.
- If you are using the toolchain without Qt Creator,
- see \l{Using Toolchain without Qt Creator}.
+ To build your own image for the devices that are supported in \QAS,
+ follow the steps in \l{Building Your Own Embedded Linux Image}.
+ For more information about the supported devices in \QAS, see
+ \l{Supported Target Devices}.
*/
diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite-create-sdk.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite-create-sdk.qdoc
new file mode 100644
index 0000000..32b495f
--- /dev/null
+++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite-create-sdk.qdoc
@@ -0,0 +1,167 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Automotive Suite.
+**
+** $QT_BEGIN_LICENSE:FDL-QTAS$
+** Commercial License Usage
+** Licensees holding valid commercial Qt Automotive Suite 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 qtas-sdk-creation.html
+ \title Creating Qt SDK
+ \nextpage qtas-sdk-prerequisities.html
+
+ Typically, some parts of system functionality are delivered by second
+ and third parties. Also, third parties may want to develop applications
+ specifically for your platform. With \QAS and the included Qt tools, you can build
+ a redistributable Qt online or offline software development kit (SDK) that contains your
+ specific UI assets, middleware components, and the Qt tools. Third parties
+ can use the SDK to build and test their applications.
+
+ In this topic, we focus on different aspects of online SDK. We describe
+ general workflow of creating online SDK with Qt tools and provide
+ common guidelines and best practices that facilitate your daily work with SDK.
+ We use Qt online installer and its build scripts as a concrete example of the
+ online SDK repository structure and the build process. In case of an offline SDK,
+ we refer to the \l{Qt Installer Framework} manual and its information about
+ creating installers.
+
+ \section1 Online SDK Structure
+
+ Qt online SDK consists of installers, servers, online repositories, and
+ a maintenance tool.
+
+ \image ifw-overview.png
+
+ For the end user, the online SDK provides the following high level use cases:
+
+ \list
+ \li With the online installer, you can install software components
+ from online repositories to your local host.
+ \li When you do your first installation via the online installer, a
+ maintenance tool is automatically installed to your local host.
+ \li With the maintenance tool, you can add new components to your
+ installation. For the installed components on your local host, you get
+ updates via the maintenance tool.
+ \endlist
+
+ In general, the maintainer of the online SDK must take care of the following
+ issues:
+
+ \list 1
+ \li Building the content that is provided to end users via
+ online repositories. For example, the Qt modules and the Qt tools like Qt Creator.
+ \li Planning a repository structure for the content.
+ \note It is essential that the maintenance tool has its own component in
+ the repository. Otherwise, it is not possible to update the maintenance
+ tool itself and it does not get new updates from the online repositories.
+ \li Building the Qt Installer Framework.
+ \li Building an online installer.
+ \li Building online repositories for the content and the maintenance tool.
+ \endlist
+
+ You can create the online SDK by using the tools provided by
+ Qt Installer Framework (IFW). See \l{Qt Installer Framework Overview} for
+ general information about the online and offline installers, the maintenance tool,
+ and working with the repositories.
+
+ \section1 Guidelines and Best Practices
+
+ You can create an SDK as instructed in the \l {Qt Installer Framework} manual.
+ Alternatively, there are scripts available in the
+ \l{Qt SDK Git Repository}{Qt SDK Git repository} that help you to automate
+ the SDK creation. The following topics go through the phases in the SDK creation
+ introducing both ways of working. The Qt release is used as an example
+ of creating the SDK with scripts:
+
+ \list 1
+ \li \l{Prerequisities}
+ \li \l{Online SDK Workflow}
+ \li Online Repositories
+ \list 1
+ \li \l{Planning Repository Structure}
+ \li \l{Working with Online Repositories}
+ \li \l{Troubleshooting and Best Practices}
+ \endlist
+ \endlist
+*/
+
+/*!
+ \page qtas-sdk-prerequisities.html
+ \title Prerequisities
+ \previouspage qtas-sdk-creation.html
+ \nextpage qtas-sdk-workflow.html
+
+ Before you create an SDK, you must have the appropriate tools and other
+ dependencies installed. If you use the scripts in the
+ \l{Qt SDK Git Repository}{Qt SDK Git} repository for creating the SDK,
+ install the following tools and Git repositories:
+
+ \table
+ \header
+ \li Requirement
+ \li Description
+ \row
+ \li Qt SDK Git Repository
+ \li Clone the \l{Qt SDK Git Repository}{Qt SDK Git} repository.
+ The repository contains all the scripts required for creating an SDK.
+ \row
+ \li Python 2.7
+ \li The scripts in Qt SDK Git repository have been written with Python.
+ For more information, see \l{Python 2.7}.
+ \row
+ \li 7-Zip
+ \li A compression format that is used by the scripts in
+ \l{Qt SDK Git Repository}{Qt SDK Git}. You must add 7-Zip to
+ the PATH environment variable. For more information, see \l{7-Zip}.
+ \row
+ \li Direct SSH access
+ \li If you use a network storage for backing up the built content, you
+ must enable direct SSH access for the network storage.
+ \endtable
+
+ \section1 Build Scripts in Qt SDK Git Repository
+
+ After you have cloned the \l{Qt SDK Git Repository}{Qt SDK Git} repository,
+ you find the following files under the path <qtsdk directory>/packaging-tools:
+
+ \table
+ \header
+ \li File Name
+ \li Description
+ \row
+ \li \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/bld_ifw_tools.py} {bld_ifw_tools.py}
+ \li Builds static IFW libraries and tools.
+ \row
+ \li \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/create_installer.py} {create_installer.py}
+ \li Creates offline installers, online installers, and online
+ repositories. The script depends on the libraries and the tools created
+ by \e{bld_ifw_tools.py}.
+ \endtable
+
+ \note You can get more information about the tools by using the command line
+ arguments \c{--help} or \c{/?}. For example, you can use \c{--help} as follows:
+
+ \badcode
+ python create_installer.py --help
+ \endcode
+*/
+
diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite-drive-cx.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite-drive-cx.qdoc
deleted file mode 100644
index 37c1fd7..0000000
--- a/src/doc/qtautomotivesuite/src/qtautomotivesuite-drive-cx.qdoc
+++ /dev/null
@@ -1,71 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2018 The Qt Company Ltd.
-** Contact: https://www.qt.io/licensing/
-**
-** This file is part of the documentation of the Qt Automotive Suite.
-**
-** $QT_BEGIN_LICENSE:FDL-QTAS$
-** Commercial License Usage
-** Licensees holding valid commercial Qt Automotive Suite 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 qtas-preparing-hardware-drivecx.html
- \title NVIDIA DRIVE CX Guide
- \previouspage qtas-install.html
- \nextpage qtautomotive-tutorial-deploying.html
-
- Take the following steps when preparing \l {http://www.nvidia.com/object/drive-cx.html}
- {NVIDIA DRIVE CX} for \B2Q:
-
- \note It is important that you repeat the steps in this section after you
- update \QAS.
-
- The image containing the \B2Q stack for the device, as well as the
- flashing tool are included in \QAS.
-
- \note The flashing tool that is used in \l{Installing the Boot to Qt Image} is
- only supported in a Linux host platform.
-
- \section1 Installing the \B2Q Image
-
- Connect the DRIVE CX board to the development host via USB, and set it in
- \e {recovery mode} by changing the position of J9 jumper on the board.
-
- Then, run the flashing tool:
-
- \badcode
- cd <INSTALL_DIR>
- sudo 5.9/Automotive/tegra-t18x/flash-nvidia/flash_device.sh
- \endcode
-
- After the installation is complete, replace the J9 jumper to its original
- position, and restart the device. After reboot, check that the automotive
- UI appears.
-
- \section1 Setting up USB Access
-
- \include qtas-post-install-setup.qdocinc setting up usb access
-
- \section1 Configuring a Device Kit in Qt Creator
-
- \include qtas-post-install-setup.qdocinc configuring device kit linux
-
- You are now ready to start developing for your device. For more information,
- see \l{Tutorial: Deploying Your First Project with Qt Automotive Suite}.
-*/
diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-build-ifw.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-build-ifw.qdoc
new file mode 100644
index 0000000..962937a
--- /dev/null
+++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-build-ifw.qdoc
@@ -0,0 +1,215 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Automotive Suite.
+**
+** $QT_BEGIN_LICENSE:FDL-QTAS$
+** Commercial License Usage
+** Licensees holding valid commercial Qt Automotive Suite 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 qtas-sdk-workflow.html
+ \title Online SDK Workflow
+ \previouspage qtas-sdk-prerequisities.html
+ \nextpage qtas-sdk-repository-structure.html
+
+ \section1 Building Content for SDK
+
+ The installable content in your online SDK can contain any kind of applications
+ and tools. What ever your content is, it is important that you build the
+ content before building the online repositories for the content.
+
+ The following topics instruct how you can build the Qt related content:
+
+ \list
+ \li \l{Building Qt 5 from Git} instructs how to build Qt from sources.
+ \li \l{Building Qt Creator from Git} instructs how to build
+ Qt Creator from sources.
+ \endlist
+
+ \section1 Working with Online SDK
+
+ After you have the content available, you can publish your content to the
+ web server. The following picture illustrates the required steps in a high level:
+
+ \image qtas_sdk.png
+
+ The following topics describe how you can build the Qt Installer Framework,
+ the online installer, and repositories with scripts that are available in
+ the \l{Qt SDK Git Repository}{Qt SDK Git repository}. You must clone the
+ repository before you can use the scripts.
+
+ \section1 Building Qt Installer Framework
+
+ You can build the Qt Installer Framework with \l{Build Installer Framework Tools Script}
+ by running the following command in a terminal:
+
+ \badcode
+ python bld_ifw_tools.py --qt_archive_uri=<path of <Qt source package>.tar.gz> --ifw_uri=<Qt Installer Framework source path>
+ \endcode
+
+ \e{--qt_archive_uri} defines a path of Qt sources that are used in the Qt
+ Installer Framework build. The Qt sources must be available as a \e{.tar.gz} package.
+
+ \e{--ifw_uri} defines a path of Qt Installer Framework sources. The path
+ can be a Git repository address or a path of a \e{.tar.gz} source package.
+
+ If you clone the Qt Installer Framework sources via Git, you need add
+ the related branch as follows:
+
+ \badcode
+ python bld_ifw_tools.py --qt_archive_uri=<path of <Qt source package>.tar.gz> --ifw_uri=<Qt Installer Framework source path> --ifw_branch=<branch> --openssl_dir =<OpenSSL path in your system>
+ \endcode
+
+ \e{--ifw_branch} defines the Git branch of Qt Installer Framework.
+
+ \section2 Build Outputs
+
+ A successful Qt Installer Framework build generates target platform
+ specific .7z files that you need to copy to your local network drive under some
+ base directory (1). For example, Qt Installer Framework build may generate the
+ following files for Linux:
+
+ \table
+ \header
+ \li Generated IFW file
+ \li Path where to copy the file in a local server
+ \row
+ \li installer-framework-linux.7z
+ \li http://my.local.server/base_directory/tools/ifw/
+ \row
+ \li installerbase-linux-x64.7z
+ \li http://my.local.server/base_directory/tools/ifw/
+ \endtable
+
+ \section1 Building Online Installer
+
+ As mentioned in \l{Creating Installers}, you need to have a configuration file
+ called \e{config.xml} that contains information about how to build the
+ online installer binaries and the repositories. See
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations/linux/config.xml.template.linux-x64.qt5-sdk}
+ for an example of the config.xml in the Qt release.
+ You should note that the <Url> element in the config.xml must contain a URL
+ that points to a server that is used in your SDK environment.
+
+ You can use \l{Create Installer Script} for building the online installer.
+ You should note that the script uses the Qt Installer Framework that you
+ have built and copied under some base directory on your local network drive (1).
+ The script has the following command line arguments:
+
+ \table
+ \header
+ \li A command line argument
+ \li Description
+ \row
+ \li --online
+ \li An online installer is created.
+ \row
+ \li -c
+ \li A directory of the installer configurations. For example,
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations}.
+ \row
+ \li -f
+ \li A path of the installer configuration file. For example,
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations/online_installer_jobs/opensource/linux_x64_online}.
+ \row
+ \li --ifw-tools
+ \li A path of the prebuilt Qt Installer Framework tools (.7z).
+ See \l{Building Qt Installer Framework}.
+ \row
+ \li -u
+ \li A server URL of the archives (.7z).
+ \row
+ \li --preferred-installer-name
+ \li A full installer name. The name includes a file extension (.run, .exe, .app).
+ \row
+ \li --create-repo
+ \li Creates a new repository.
+ \endtable
+
+ The following code provides an example of how to use \e{create_installer.py}
+ for building an online installer:
+
+ \badcode
+ python create_installer.py --online
+ -c=/user/builder/myinstaller_configs
+ -f=/user/builder/myinstaller_configs/online_installer_main_conf_file
+ --ifw-tools=http://my.local.server/base_directory/tools/ifw/installer-framework-linux.7z
+ -u http://my.local.server/some/basedir
+ --preferred-installer-name=myinstallername
+ \endcode
+
+ \section1 Building Online Repository
+
+ With \l{Create Installer Script}, you can also build the online repositories.
+ See \l{Building Online Installer} for information about the command line arguments.
+ The following code provides an example of how to use \e{create_installer.py}
+ for creating a new repository:
+
+ \badcode
+ python create_installer.py --create-repo
+ -c=/user/builder/myinstaller_configs
+ -f=/user/builder/myinstaller_configs/online_installer_main_conf_file
+ --ifw-tools=http://my.local.server/some/basedir/tools/ifw/installer-framework-linux.7z
+ -u http://my.local.server/some/basedir
+ \endcode
+
+ As an output, a new repository is created under a directory called
+ \e{/repository}. For example, the repository content can be as follows:
+
+ \badcode
+ repository/qt.595.gcc_64/<version>meta.7z
+ repository/qt.595.src/<version>meta.7z
+ repository/qt.595.doc/<version>meta.7z
+ repository/qt.595.examples/<version>meta.7z
+ \endcode
+
+ The \e{<version>} (2) is defined in the component's \e{package.xml} file
+ (see \l{Package Directory}).
+
+ \section1 Updating Content to Web Server
+
+ Before you update the existing repositories in the web server, you must
+ ensure that you have updated the version number (2) in the component's
+ \e{package.xml} file (see \l{Package Directory}). This version number is
+ used in the generated file name of the .7z content file. For example, see the <Version> element in
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations/pkg_templates/pkg_593/qt.593.gcc_64/meta/package.xml}.
+
+ In case you do not remember to update the version numbers, the online installer
+ gives a checksum failure error for the end user during the installation.
+
+ Updating the content to the online server has the following steps:
+
+ \list 1
+ \li Update the new content to the web server. Note that the version number
+ of the content differs from the version of old content. Thus both the
+ old and the new content can exist at the same time in the server.
+ \li Wait until all the new content has been synchronized to the online server.
+ \li Make new repositories available to end users by overwriting
+ the \e{Updates.xml} file in the root of the repository directory. All the
+ new content should nwo be available in the server as Updates.xml directly
+ refers to it.
+ \li Wait for example one day and delete the old content (.7z files) from
+ the online server.
+ \endlist
+
+*/
+
diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-repositories.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-repositories.qdoc
new file mode 100644
index 0000000..c18fc74
--- /dev/null
+++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-repositories.qdoc
@@ -0,0 +1,346 @@
+/****************************************************************************
+**
+** Copyright (C) 2018 The Qt Company Ltd.
+** Contact: https://www.qt.io/licensing/
+**
+** This file is part of the documentation of the Qt Automotive Suite.
+**
+** $QT_BEGIN_LICENSE:FDL-QTAS$
+** Commercial License Usage
+** Licensees holding valid commercial Qt Automotive Suite 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 qtas-sdk-repository-structure.html
+ \title Planning Repository Structure
+ \previouspage qtas-sdk-workflow.html
+ \nextpage qtas-sdk-build-repositories.html
+
+ You should carefully plan an online repository structure before building
+ the repositories. Consider the following items when you implement your SDK:
+
+ \section1 Amount of Updated Content
+
+ A full update of a very large repository might not be optimal, because
+ uploading the repository content would take a long time.
+ See \l{Partially Updating Repositories} for practical tips
+ how to update repositories partially.
+
+ \section1 Flexible Repository Structure
+
+ You can keep the online repository structure flexible if you do not hard
+ code the repository addresses into the online installer. Instead of hard
+ coding the addresses, you can make the online installer point to a
+ single repository.
+
+ For example, define a remote repository in your \e{config.xml} as follows:
+
+ \badcode
+ <RemoteRepositories>
+ <Repository>
+ <Url>https://mycompany.com/myonlinerepository/linux-x86_64/root</Url>
+ <Enabled>1</Enabled>
+ <DisplayName>MyCompany Linux-x64 root online repository</DisplayName>
+ </Repository>
+ </RemoteRepositories>
+ \endcode
+
+ In the configuration file structure demonstrated in \l{Building Online Installer},
+ the remote repository is defined in
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations/linux/config.xml.template.linux-x64.qt5-sdk}.
+
+ For more information about the configuration file elements, see \l{Configuration File}.
+
+ In \e{https://mycompany.com/myonlinerepository/linux-x86_64/root/Updates.xml}
+ under your root directory, define a list of updated repositories as follows:
+
+ \badcode
+ <Updates>
+ <ApplicationName>{AnyApplication}</ApplicationName>
+ <ApplicationVersion>IFW_REPOSITORY_FORMAT_VERSION</ApplicationVersion>
+ <Checksum>true</Checksum>
+ <RepositoryUpdate>
+ <Repository action="add" url="https://mycompany.com/myonlinerepository/linux-x86_64/desktop/qtcreator" displayname="description..."/>
+ <Repository action="add" url="https://mycompany.com/myonlinerepository/linux-x86_64/desktop/another_cool_tool" displayname="description..."/>
+ <Repository action="add" url="https://mycompany.com/myonlinerepository/linux-x86_64/desktop/qt58" displayname="description..."/>
+ ...
+ </RepositoryUpdate>
+ </Updates>
+ \endcode
+
+ Now you can make new repositories available to end users simply by adding a
+ new line into the root repository \e{Updates.xml}. You can add repositories
+ to any \e{Updates.xml} using the same syntax.
+
+ For general information about online repositories, see
+ \l{Creating Online Installers}.
+
+ \section1 File Structure in Qt Releases
+
+ A Qt release provides a concrete example of a tree structure of an online
+ repository. The tree structure corresponds to the structure that an end user
+ sees in the Qt installer wizard's \uicontrol{Select component} page.
+
+ For example, the online installer contains the following tree structure:
+
+ \badcode
+ qt
+ 57
+ msvc2013 32-bit
+ msvc2013 64-bit
+ ...
+ Android x86
+ 58
+ msvc2015 32-bit
+ msvc2015 64-bit
+ ...
+ ...
+ Tools
+ Qt Creator 4.1.0
+ MinGW 5.3.0
+ ...
+ \endcode
+
+ You find a similar structure under the Qt release configuration directories
+ in the \l{Qt SDK Git Repository}{Qt SDK Git repository}. For example,
+ see \e{pkg_<Qt version>} directories under
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations/pkg_templates}.
+
+ A particular package is included into an online repository via configuration
+ files. For example, see
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations/linux/x64/58/x86_64-qt58-gcc-conf}.
+
+ \section1 Qt Configuration Files
+
+ The following syntax is used in the Qt configuration files:
+
+ \table
+ \header
+ \li Property name
+ \li Description
+ \li Example
+ \row
+ \li archives
+ \li A comma-separated list of values that will be specified in a detailed
+ level later in the file.
+ \li
+ archives: 58.gcc_64.qtbase,
+ 58.gcc_64.qtconnectivity
+ \row
+ \li target_install_base
+ \li A common base directory for all archives in a component
+ \li
+ target_install_base: /%QT_VERSION_MINOR%/gcc_64
+ \row
+ \li archive_url
+ \li The location from where an archived content is fetched. The location can
+ be an absolute file system path or a URL. By default, the path or the URL
+ is appended to a base directory defined in \e{target_install_base}.
+ \li
+ archive_uri: /qt/%QT_VERSION_MINOR%/latest/qtbase/qtbase-Linux-RHEL_6_6-GCC-Linux-RHEL_6_6-X86_64.7z
+ \row
+ \li package_strip_dirs
+ \li Can get numerical values, for example 0, 1 or 3. The value defines
+ the number of unnecessary directories that are stripped away from the path.
+ \li \e{package_strip_dirs} is set as \e{3} and an archive path is
+ \e{/home/qtbuilder/build/<actual content>}. After you have run \e{build_wrapper.py},
+ the archive is repackaged so that it has only <actual content>
+ in the repository root directory. If the path is not stripped,
+ an unnecessary directory structure is created in the end user host
+ when they install the component.
+ \row
+ \li target_install_dir
+ \li Defines a subdirectory for archive installation.
+ \li target_install_dir: /lib
+ \endtable
+
+ A configuration file can refer to other configuration files. For example,
+ see the \e{[PackageConfigurationFiles]} section in
+ \l{http://code.qt.io/cgit/qtsdk/qtsdk.git/tree/packaging-tools/configurations/offline_installer_jobs/5.8/linux_x64}.
+ It lists the included configuration files:
+
+ \badcode
+ [PackageConfigurationFiles]
+ file_list: qt-conf,
+ qt-license-conf,
+ qt-installer-changelog,
+ qt58-src-conf,
+ qt58-doc-examples-conf,
+ x86_64-qt58-gcc-conf,
+ x86_64-tools-qtcreator-qt58x-conf
+ \endcode
+
+ See \l{Package Directory} for general information about the package
+ directory structure.
+*/
+
+/*!
+ \page qtas-sdk-build-repositories.html
+ \title Working with Online Repositories
+ \previouspage qtas-sdk-repository-structure.html
+ \nextpage qtas-sdk-troubleshooting-repositories.html
+
+ You need to build online repositories when you add a new repository to
+ a server or when you update an existing repository.
+
+ \section1 Creating New Repository
+
+ When you create an online repository that does not yet exist in the server,
+ you can upload the repository content and add it to the root repository as
+ instructed in \l{Flexible Repository Structure}.
+
+ \section1 Updating Repository
+
+ \l{Promoting Updates} describes the steps required for updating online repositories.
+
+ Updating an online repository can vary greatly depending on the used online
+ server system. Typically, updating contains the following steps:
+
+ \list 1
+ \li Uploading content files to the server. See \l{Uploading Content Files}.
+ \li Uploading \e{Updates.xml} to the server. See \l{Uploading Updates.xml}.
+ \endlist
+
+ \section2 Uploading Content Files
+
+ For example, a maintenance tool update could contain the following content files:
+
+ \badcode
+ mycompany.tools.maintenancetool/2.0.4-0meta.7z
+ mycompany.tools.maintenancetool/2.0.4-0maintenancetool.7z
+ mycompany.tools.maintenancetool/2.0.4-0maintenancetool.7z.sha1
+ \endcode
+
+ Each content file is prepended with a version number set in the \c{<Version>} element
+ in the component's \e{package.xml} file. Thus you can copy the updated
+ files to a same directory that contains current file versions. It is just
+ important to remember to update the version numbers. For example, the
+ maintenance tool directory could contain the following files:
+
+ \badcode
+ mycompany.tools.maintenancetool/2.0.2-0meta.7z
+ mycompany.tools.maintenancetool/2.0.2-0maintenancetool.7z
+ mycompany.tools.maintenancetool/2.0.2-0maintenancetool.7z.sha1
+ mycompany.tools.maintenancetool/2.0.3-0meta.7z
+ mycompany.tools.maintenancetool/2.0.3-0maintenancetool.7z
+ mycompany.tools.maintenancetool/2.0.3-0maintenancetool.7z.sha1
+ mycompany.tools.maintenancetool/2.0.4-0meta.7z
+ mycompany.tools.maintenancetool/2.0.4-0maintenancetool.7z
+ mycompany.tools.maintenancetool/2.0.4-0maintenancetool.7z.sha1
+ \endcode
+
+ \section2 Uploading Updates.xml
+
+ If your online server uses mirroring, it is important to ensure that all
+ content is synchronized to the server before you update \e{Updates.xml}.
+
+ You can set a cache expiration time as zero for \e{Updates.xml} in order to
+ reduce delay in synchronization.
+
+ \section1 Maintenance Tool
+
+ A maintenance tool is built when you build the
+ \l{Building Qt Installer Framework} {Qt Installer Framework}. Usually,
+ the maintenance tool is included in online repositories. It is installed to
+ the end user host from the online repository with other installed content.
+
+ Online repositories should always provide the latest version of the
+ maintenance tool. We recommend that you build both an online installer and
+ the maintenance tool with the Qt Installer Framework version with the same
+ SHA-1. Otherwise, end users can install an old version of the maintenance
+ tool via the online installer. Then, if some updates on the server side are
+ available only via the latest maintenance tool version, the end users with
+ the old maintenance tool cannot access them.
+
+ For example, the maintenance tool online repository could be as follows:
+
+ \badcode
+ linux_x64/desktop/tools_maintenancetool/Updates.xml
+ mycompany.tools.maintenancetool/2.0.4-0meta.7z
+ mycompany.tools.maintenancetool/2.0.4-0maintenancetool.7z
+ mycompany.tools.maintenancetool/2.0.4-0maintenancetool.7z.sha1
+ \endcode
+*/
+
+/*!
+ \page qtas-sdk-troubleshooting-repositories.html
+ \title Troubleshooting and Best Practices
+ \previouspage qtas-sdk-build-repositories.html
+ \nextpage qtas-sdk-creation.html
+
+ When you work with online repositories, it is important to understand
+ how different actions affect the repositories. \l{Troubleshooting}
+ lists use cases that should be handled carefully so they do not lead to
+ errors in end user host. \l{Best Practices} lists some useful
+ practices that might be helpful in your daily work with online repositories.
+
+ \section1 Troubleshooting
+
+ \section2 Dependencies to Online Repository
+
+ Immediately after an end user installs something from an online repository
+ via an online installer or a maintenance tool, a local dependency from the
+ end user host to the online repository is established. Thus you should
+ follow the following quidelines:
+
+ \list
+ \li Do not remove repositories from the online server simply by deleting
+ the repositories. Instead, you should add the following setting in the
+ root repository:
+ \badcode
+ <Repository action="remove" url="...">
+ \endcode
+ \li Do not manually change content in online repositories as it causes
+ a SHA-1 checksum mismatch.
+ \li If you push an update for a component in an online repository, you
+ must always remember to increase the version number of the updated component.
+ See \l{Updating Repository}.
+ \endlist
+
+ \section2 Unsuccessful Updates
+
+ If something goes wrong while you are uploading either
+ \l{Uploading Content Files}{content} or \l{Uploading Updates.xml}{Updates.xml},
+ do not upload the previous versions from your own backup-files.
+ The Qt Installer Framework does not support roll-back functionality. Thus the
+ maintenance tool does not allow end users to install again the previous
+ version that is known to work.
+
+ You should create a new version of the broken component and upload it
+ to the online repository. End users need to uninstall the broken component
+ and install the fixed one instead.
+
+ \section2 Mirroring and File Caching
+
+ If the web server uses mirroring or file caching, it is important to ensure
+ that all content has been uploaded to the server before you upload a new version
+ of \e{Updates.xml}.
+
+ Some web servers support setting cache expiration time to zero for some
+ files. In this case, you could set the cache expiration time to zero for
+ \e{Updates.xml}.
+
+ \section1 Best Practices
+
+ \section2 Uploading to Test Server
+
+ You can use a test server where you upload the repository builds for testing
+ purposes. After you have verified the content, you can upload it publicly
+ available to the web server that is used by online installers.
+
+*/
diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite-tutorial-deploying.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite-tutorial-deploying.qdoc
index 1ca068f..8fe6fca 100644
--- a/src/doc/qtautomotivesuite/src/qtautomotivesuite-tutorial-deploying.qdoc
+++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite-tutorial-deploying.qdoc
@@ -27,7 +27,7 @@
/*!
\page qtautomotive-tutorial-deploying.html
\title Tutorial: Deploying Your First Project with Qt Automotive Suite
- \previouspage qtas-preparing-hardware-drivecx.html
+ \previouspage qtas-install.html
\nextpage qtautomotive-byos.html
You can deploy all kinds of Qt projects to your target device:
diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc
index e229d91..30e6783 100644
--- a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc
+++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc
@@ -1,6 +1,6 @@
/****************************************************************************
**
-** Copyright (C) 2017 The Qt Company Ltd.
+** Copyright (C) 2018 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Automotive Suite.
@@ -54,6 +54,9 @@
\li \l {Qt IVI}{Qt IVI Module Reference Documentation}
\li \l {Qt Application Manager}
\li \l {Qt QmlLive}
+ \li \l {Qt Safe Renderer}
+ \li \l {Qt 3D Studio}
+ \li \l {Qt Creator Application Manager Plugin}
\li \l {Neptune 3 UI}{Reference UI (Neptune 3 UI)}
\li \l {GammaRay}
\endlist
@@ -137,6 +140,27 @@
Qt Quick applications, dramatically reducing the time it takes to
deploy and test changes in the UI design.
+ \section1 Qt Safe Renderer
+
+ The \l{Qt Safe Renderer} module provides a UI rendering component that can be
+ used to render safety-critical items, such as warning indicators, in
+ functional safety systems. Qt Safe Renderer separates the safety-critical
+ rendering from the other parts of the system. This ensures that
+ Qt Safe Renderer is able to render the safety-critical UI elements even if
+ there are failures in the main UI. With separation, Qt can be used in a
+ system requiring certification without changing the Qt libraries.
+
+ \section1 Qt 3D Studio
+
+ \l{Qt 3D Studio} is an artist-centric tool designed for designing and
+ building rich interactive interfaces. Though there is a strong emphasis on
+ 3D content - all objects are placed in three dimensional space - it is not
+ a 3D content creation tool. It is also not a drawing program, though it uses
+ 2D images and vectors heavily. Studio is a compositing tool.
+
+ You can create your 2D, 3D, and script assets in other programs and
+ then use Qt 3D Studio to place them in your presentation.
+
\section1 Deployment
Device deployment can be done directly from the Qt Creator IDE to a
@@ -177,7 +201,7 @@
\page qtas-install.html
\title Installing Qt Automotive Suite
\previouspage {Qt Automotive Suite Overview}{Overview}
- \nextpage qtas-preparing-hardware-drivecx.html
+ \nextpage qtautomotive-tutorial-deploying.html
\QAS is a commercial product and requires a license to install and
explore its possibilities. Use the guide on the
@@ -197,12 +221,14 @@
configure these prerequisites on your development host, see
\l {Requirements for Linux/X11} and \l {Requirements for Windows}.
- \section2 \QAS Prerequisites
+ \section1 Installing \QAS
- The DriveCX support in \B2Q requires Vibrante 4.1 Linux Drive CX2
- PDK version 4.1.4.0.
+ When you install \QAS, you can select which \QAS components, SD-card
+ images, and toolchains are installed. To use the \QAS components on your host system, you also
+ need to have proper Qt version installed. When you install any of the
+ \QAS components, the suitable Qt version will be automatically installed.
- \section1 Installing \QAS
+ You can install \QAS as follows:
\list 1
\li Download the \l{Qt Online Installer Download}{Qt online installer}.
@@ -220,8 +246,11 @@
\li Select \uicontrol Next to see available packages to install from.
- \li Select \b{Qt Automotive Suite} and at least one \b Qt version
- (v5.7 or later) from the list, and follow the instructions to complete
+ \li Under \uicontrol{Qt Automotive Suite}, you see the available Qt for Automotive Suite
+ software stacks. Under the stack, select the components and Qt Automotive
+ for your hardware.
+
+ \li Select \uicontrol Next and follow the instructions to complete
the installation.
\borderedimage qtinstaller-qas.png
@@ -234,9 +263,13 @@
steps in the target device guide:
\list
- \li \l{NVIDIA DRIVE CX Guide}
+ \li \l{Intel NUC}
+ \li \l{NVIDIA Jetson TX2}
+ \li \l{Toradex Apalis iMX6}
\endlist
Once the installation is complete, start Qt Creator and try running one of the
- examples against an automotive target or the Qt Automotive emulator.
+ examples against an automotive target. With \l{Neptune 3 UI} you can test
+ the reference UI for Qt in IVI (in-vehicle infotainment). For more information,
+ see \l{Neptune 3 UI Insights}.
*/
diff --git a/src/doc/qtautomotivesuite/src/shared/qtas-common.qdocinc b/src/doc/qtautomotivesuite/src/shared/qtas-common.qdocinc
index c7ff081..ed2a368 100644
--- a/src/doc/qtautomotivesuite/src/shared/qtas-common.qdocinc
+++ b/src/doc/qtautomotivesuite/src/shared/qtas-common.qdocinc
@@ -30,7 +30,7 @@
\li \l {Qt Automotive Suite Overview}{Overview}
\li \l {Installing Qt Automotive Suite}
\li \l {Tutorial: Deploying Your First Project with Qt Automotive Suite}
- \li \l {Building Your Own NVIDIA DRIVE CX Image}
+ \li \l {Building Your Own Image}
\li \l {Licenses Used in Qt Automotive Suite}
\endlist
//! [qtas contents]
diff --git a/src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl b/src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl
index b3a7cee..237ab8d 100644
--- a/src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl
+++ b/src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl
@@ -56,6 +56,9 @@ QT_BEGIN_NAMESPACE
{% if interface.tags.config.zoned %}
{{class}}::{{class}}(const QString &zone, QObject *parent)
: QObject(parent)
+ {% for property in interface.properties %}
+ , m_{{ property }}({{property|default_value}})
+ {% endfor %}
, m_currentZone(zone)
{
if (!zone.isEmpty()) {
diff --git a/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl b/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl
index bbc535a..b30301e 100644
--- a/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl
+++ b/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl
@@ -44,7 +44,7 @@
{% set base_class = 'QIviFeatureInterface' %}
{% endif %}
{% set oncedefine = '{0}_{1}_H_'.format(module.module_name|upper, class|upper) %}
-{% set exportsymbol = 'Q_{0}_EXPORT'.format(module.module_name|upper) %}
+{% set exportsymbol = 'Q_{0}_EXPORT'.format(module|upper|replace('.', '_')) %}
{% include 'generated_comment.cpp.tpl' %}
#ifndef {{oncedefine}}
diff --git a/src/tools/ivigenerator/templates_frontend/global.h.tpl b/src/tools/ivigenerator/templates_frontend/global.h.tpl
index a98c1ae..e12ea36 100644
--- a/src/tools/ivigenerator/templates_frontend/global.h.tpl
+++ b/src/tools/ivigenerator/templates_frontend/global.h.tpl
@@ -36,7 +36,7 @@
#
# SPDX-License-Identifier: LGPL-3.0
#}
-{% set exportsymbol = '{0}'.format(module.module_name|upper) %}
+{% set exportsymbol = '{0}'.format(module|upper|replace('.', '_')) %}
{% set oncedefine = '{0}GLOBAL_H_'.format(exportsymbol) %}
{% include 'generated_comment.cpp.tpl' %}
diff --git a/src/tools/ivigenerator/templates_frontend/interface.h.tpl b/src/tools/ivigenerator/templates_frontend/interface.h.tpl
index 20efa50..8b2a0b4 100644
--- a/src/tools/ivigenerator/templates_frontend/interface.h.tpl
+++ b/src/tools/ivigenerator/templates_frontend/interface.h.tpl
@@ -44,7 +44,7 @@
{% set base_class = 'QIviAbstractFeature' %}
{% endif %}
{% set oncedefine = '{0}_{1}_H_'.format(module.module_name|upper, class|upper) %}
-{% set exportsymbol = 'Q_{0}_EXPORT'.format(module.module_name|upper) %}
+{% set exportsymbol = 'Q_{0}_EXPORT'.format(module|upper|replace('.', '_')) %}
{% include 'generated_comment.cpp.tpl' %}
#ifndef {{oncedefine}}
diff --git a/src/tools/ivigenerator/templates_frontend/module.h.tpl b/src/tools/ivigenerator/templates_frontend/module.h.tpl
index 5595eaa..36836c6 100644
--- a/src/tools/ivigenerator/templates_frontend/module.h.tpl
+++ b/src/tools/ivigenerator/templates_frontend/module.h.tpl
@@ -36,7 +36,7 @@
#
# SPDX-License-Identifier: LGPL-3.0
#}
-{% set exportsymbol = 'Q_{0}_EXPORT'.format(module.module_name|upper) %}
+{% set exportsymbol = 'Q_{0}_EXPORT'.format(module|upper|replace('.', '_')) %}
{% set class = '{0}Module'.format(module.module_name|upperfirst) %}
{% set oncedefine = '{0}_H_'.format(class|upper) %}
{% include 'generated_comment.cpp.tpl' %}
diff --git a/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl b/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl
index a4c3274..02736d8 100644
--- a/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl
+++ b/src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl
@@ -36,7 +36,7 @@
#
# SPDX-License-Identifier: LGPL-3.0
#}
-{% set exportsymbol = 'Q_{0}_EXPORT'.format(module.module_name|upper) %}
+{% set exportsymbol = 'Q_{0}_EXPORT'.format(module|upper|replace('.', '_')) %}
{% set class = '{0}ModuleFactory'.format(module.module_name|upperfirst) %}
{% set oncedefine = '{0}_H_'.format(class|upper) %}
{% include 'generated_comment.cpp.tpl' %}
diff --git a/src/tools/ivigenerator/templates_frontend/struct.h.tpl b/src/tools/ivigenerator/templates_frontend/struct.h.tpl
index 3729d2f..ed85fef 100644
--- a/src/tools/ivigenerator/templates_frontend/struct.h.tpl
+++ b/src/tools/ivigenerator/templates_frontend/struct.h.tpl
@@ -40,7 +40,7 @@
{% import 'qtivi_macros.j2' as ivi %}
{% set class = '{0}'.format(struct) %}
{% set oncedefine = '{0}_{1}_H_'.format(module.module_name|upper, class|upper) %}
-{% set exportsymbol = 'Q_{0}_EXPORT'.format(module.module_name|upper) %}
+{% set exportsymbol = 'Q_{0}_EXPORT'.format(module|upper|replace('.', '_')) %}
{% include 'generated_comment.cpp.tpl' %}
#ifndef {{oncedefine}}
diff --git a/tests/auto/core/ivigenerator/projects/org-example-echo-noprivate/frontend/frontend.pro b/tests/auto/core/ivigenerator/projects/org-example-echo-noprivate/frontend/frontend.pro
index 6d81dbd..7e2c7aa 100644
--- a/tests/auto/core/ivigenerator/projects/org-example-echo-noprivate/frontend/frontend.pro
+++ b/tests/auto/core/ivigenerator/projects/org-example-echo-noprivate/frontend/frontend.pro
@@ -6,7 +6,7 @@ CONFIG += ivigenerator
QT += ivicore ivicore-private qml quick
-DEFINES += QT_BUILD_ECHO_LIB
+DEFINES += QT_BUILD_ORG_EXAMPLE_ECHO_LIB
macos: QMAKE_SONAME_PREFIX = @rpath
diff --git a/tests/auto/core/ivigenerator/projects/org-example-echo-qtro/frontend/frontend.pro b/tests/auto/core/ivigenerator/projects/org-example-echo-qtro/frontend/frontend.pro
index f515c5a..0754145 100644
--- a/tests/auto/core/ivigenerator/projects/org-example-echo-qtro/frontend/frontend.pro
+++ b/tests/auto/core/ivigenerator/projects/org-example-echo-qtro/frontend/frontend.pro
@@ -6,7 +6,7 @@ CONFIG += ivigenerator
QT += ivicore ivicore-private qml quick
-DEFINES += QT_BUILD_ECHO_LIB
+DEFINES += QT_BUILD_ORG_EXAMPLE_ECHO_LIB
macos: QMAKE_SONAME_PREFIX = @rpath
diff --git a/tests/auto/core/ivigenerator/projects/org-example-echo-simulator/frontend/frontend.pro b/tests/auto/core/ivigenerator/projects/org-example-echo-simulator/frontend/frontend.pro
index 156a404..130ea15 100644
--- a/tests/auto/core/ivigenerator/projects/org-example-echo-simulator/frontend/frontend.pro
+++ b/tests/auto/core/ivigenerator/projects/org-example-echo-simulator/frontend/frontend.pro
@@ -6,7 +6,7 @@ CONFIG += ivigenerator
QT += ivicore ivicore-private qml quick
-DEFINES += QT_BUILD_ECHO_LIB
+DEFINES += QT_BUILD_ORG_EXAMPLE_SIMULATOR_ECHO_LIB
macos: QMAKE_SONAME_PREFIX = @rpath
diff --git a/tests/auto/core/ivigenerator/projects/org-example-echo/frontend/frontend.pro b/tests/auto/core/ivigenerator/projects/org-example-echo/frontend/frontend.pro
index af958af..703e74a 100644
--- a/tests/auto/core/ivigenerator/projects/org-example-echo/frontend/frontend.pro
+++ b/tests/auto/core/ivigenerator/projects/org-example-echo/frontend/frontend.pro
@@ -6,7 +6,7 @@ CONFIG += ivigenerator
QT += ivicore ivicore-private qml quick
-DEFINES += QT_BUILD_ECHO_LIB
+DEFINES += QT_BUILD_ORG_EXAMPLE_ECHO_LIB
macos: QMAKE_SONAME_PREFIX = @rpath