From 5c1f009da8da166c70f15104511ed29dcbdadd4f Mon Sep 17 00:00:00 2001 From: Tarja Sundqvist Date: Tue, 5 Jun 2018 16:56:14 +0300 Subject: Doc: Update compoment list Update the component list on the Qt Automotive Suite front page with Qt Safe Rendere, Qt 3D Studio and Qt Creator Application Manager Plugin. Also, the overview page updated. It already contained the plugin info so only Qt Safe Renderer and Qt 3D Studio were added. The component descriptions ware taken from the components own pages. Task-number: AUTOSUITE-517 Change-Id: I12e4a82f09293d98383b35ccb1b47e3f0227efd4 Reviewed-by: Samuli Piippo --- .../qtautomotivesuite/src/external-resources.qdoc | 10 +++++++++ .../qtautomotivesuite/src/qtautomotivesuite.qdoc | 26 +++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src/doc/qtautomotivesuite/src/external-resources.qdoc b/src/doc/qtautomotivesuite/src/external-resources.qdoc index 1245fa8..7784ed8 100644 --- a/src/doc/qtautomotivesuite/src/external-resources.qdoc +++ b/src/doc/qtautomotivesuite/src/external-resources.qdoc @@ -219,3 +219,13 @@ \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 +*/ diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc index e229d91..bf9ec3f 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 -- cgit v1.2.1 From 00e12504283e47ae52b2909563e5df5b827c0ae9 Mon Sep 17 00:00:00 2001 From: Tarja Sundqvist Date: Tue, 5 Jun 2018 16:13:14 +0300 Subject: Doc: update byos instructions Byos instructions updated so that they refer to the Qt Device Creation instruction page. The outdated content removed. Task-number: AUTOSUITE-516 Change-Id: Ic6f9fc49d4e568e97beaa50653ff8c85e90e268c Reviewed-by: Samuli Piippo --- .../src/qtautomotivesuite-byos.qdoc | 160 +-------------------- .../src/shared/qtas-common.qdocinc | 2 +- 2 files changed, 7 insertions(+), 155 deletions(-) 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 - //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 - /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 - //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 /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 /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/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] -- cgit v1.2.1 From e38c15a45a70033717cd7a01304d7b267b9b90e1 Mon Sep 17 00:00:00 2001 From: Tarja Sundqvist Date: Wed, 6 Jun 2018 11:54:12 +0300 Subject: Doc: update installation guide for 5.11 Installation instruction updated for 5.11: - screen shot - installation steps clarified - links to reference HW installation guides - added link to Neptune UI's getting started guide Task-number: AUTOSUITE-519 Task-number: AUTOSUITE-522 Change-Id: I7cd5f01c447cf7b07713991c917d61f98cc708c2 Reviewed-by: Samuli Piippo --- .../qtautomotivesuite/src/external-resources.qdoc | 20 +++++++++++++++++ .../src/images/qtinstaller-qas.png | Bin 29365 -> 16636 bytes .../qtautomotivesuite/src/qtautomotivesuite.qdoc | 25 ++++++++++++++------- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/src/doc/qtautomotivesuite/src/external-resources.qdoc b/src/doc/qtautomotivesuite/src/external-resources.qdoc index 7784ed8..8d39b7c 100644 --- a/src/doc/qtautomotivesuite/src/external-resources.qdoc +++ b/src/doc/qtautomotivesuite/src/external-resources.qdoc @@ -110,6 +110,12 @@ \title Neptune 3 UI */ +/*! + \externalpage https://doc.qt.io/Neptune3UI/neptune3ui-gettingstarted.html + \title Neptune 3 UI Getting Started +*/ + + /*! \externalpage https://doc.qt.io/QtIVI/index.html \title Qt IVI @@ -228,4 +234,18 @@ /*! \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 */ diff --git a/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png b/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png index 4da903d..67fc88c 100644 Binary files a/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png and b/src/doc/qtautomotivesuite/src/images/qtinstaller-qas.png differ diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc index bf9ec3f..e4bff6a 100644 --- a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc +++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc @@ -221,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}. @@ -244,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 @@ -258,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 Getting Started}. */ -- cgit v1.2.1 From 472e09f1c5139c4a2504e52e1c787d46e411fe99 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Tue, 5 Jun 2018 14:49:41 +0200 Subject: Initialize all properties in the vehiclefunction-controller This is actually a fix for the control_panel template and makes sure all properties are initialized correctly. Otherwise we might run into situations where an uninitialized value is returned to QML and from there also send the backend. Task-number: AUTOSUITE-523 Change-Id: I85671cd378dcd457c5038cbcb1735315d6da3a5e Reviewed-by: Robert Griebl --- src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl b/src/tools/ivigenerator/templates_control_panel/interface.cpp.tpl index db89c84..afb5f5d 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()) { -- cgit v1.2.1 From 7dbc952b0cf3b278a1ea487b82569cde34eb5b44 Mon Sep 17 00:00:00 2001 From: Dominik Holland Date: Tue, 5 Jun 2018 10:40:31 +0200 Subject: Use the full module uri for the class export macro Using the full uri makes it more unlikely that the export macro names clash with the export macro of an library with the same name. Task-number: AUTOSUITE-509 Change-Id: If5d66f7dc4d7e3e8edc4cbede1d2dfcbaad3b1d7 Reviewed-by: Robert Griebl --- examples/ivicore/qface-ivi-climate/frontend/frontend.pro | 2 +- examples/ivicore/qface-ivi-remote/frontend/frontend.pro | 2 +- src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl | 2 +- src/tools/ivigenerator/templates_frontend/global.h.tpl | 2 +- src/tools/ivigenerator/templates_frontend/interface.h.tpl | 2 +- src/tools/ivigenerator/templates_frontend/module.h.tpl | 2 +- src/tools/ivigenerator/templates_frontend/modulefactory.h.tpl | 2 +- src/tools/ivigenerator/templates_frontend/struct.h.tpl | 2 +- src/tools/ivigenerator/templates_frontend/structmodel.h.tpl | 2 +- .../projects/org-example-echo-noprivate/frontend/frontend.pro | 2 +- .../ivigenerator/projects/org-example-echo-qtro/frontend/frontend.pro | 2 +- .../projects/org-example-echo-simulator/frontend/frontend.pro | 2 +- .../core/ivigenerator/projects/org-example-echo/frontend/frontend.pro | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) 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/tools/ivigenerator/templates_frontend/backendinterface.h.tpl b/src/tools/ivigenerator/templates_frontend/backendinterface.h.tpl index 83aeb58..ae01f1c 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 6db880a..a68fa31 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 12c1dcb..4e3e540 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 5eda736..e21ce93 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/src/tools/ivigenerator/templates_frontend/structmodel.h.tpl b/src/tools/ivigenerator/templates_frontend/structmodel.h.tpl index 24ca9a3..8d98add 100644 --- a/src/tools/ivigenerator/templates_frontend/structmodel.h.tpl +++ b/src/tools/ivigenerator/templates_frontend/structmodel.h.tpl @@ -39,7 +39,7 @@ #} {% set class = '{0}Model'.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 -- cgit v1.2.1 From 2469660f37f15303508c0864c1a57aa5e189077a Mon Sep 17 00:00:00 2001 From: Bramastyo Harimukti Date: Tue, 12 Jun 2018 11:53:46 +0200 Subject: [doc] Update broken link to Neptune pages Task-number: AUTOSUITE-559 Change-Id: Ibeccbb34088a1de6dac2b95742ce3aa5840d23c4 Reviewed-by: Vladimir Minenko --- src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc index e4bff6a..bac5659 100644 --- a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc +++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc @@ -271,5 +271,5 @@ Once the installation is complete, start Qt Creator and try running one of the 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 Getting Started}. + see \l{Neptune 3 UI Insights}. */ -- cgit v1.2.1 From 06f12333782e6bd21b35742fb64bcf6e3fe0131b Mon Sep 17 00:00:00 2001 From: Topi Reinio Date: Thu, 21 Jun 2018 08:48:27 +0200 Subject: Doc: Fix problems in external-resources.qdoc Update link for Neptune 3 UI and add missing '*/' to terminate a documentation comment. Change-Id: I18e4dc4f8be2c5db8afbe869e0c4082de41a4190 Reviewed-by: Dominik Holland --- src/doc/qtautomotivesuite/src/external-resources.qdoc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/doc/qtautomotivesuite/src/external-resources.qdoc b/src/doc/qtautomotivesuite/src/external-resources.qdoc index 8d39b7c..91160f0 100644 --- a/src/doc/qtautomotivesuite/src/external-resources.qdoc +++ b/src/doc/qtautomotivesuite/src/external-resources.qdoc @@ -111,8 +111,8 @@ */ /*! - \externalpage https://doc.qt.io/Neptune3UI/neptune3ui-gettingstarted.html - \title Neptune 3 UI Getting Started + \externalpage https://doc.qt.io/Neptune3UI/index.html#ui-insights + \title Neptune 3 UI Insights */ @@ -234,6 +234,7 @@ /*! \externalpage https://doc.qt.io/QtSafeRenderer/index.html \title Qt Safe Renderer +*/ /*! \externalpage https://doc.qt.io/QtForDeviceCreation/qtee-preparing-hardware-apalis-imx6.html -- cgit v1.2.1 From 9597934087e395659aedb7735e1fc233a3407fd7 Mon Sep 17 00:00:00 2001 From: Tarja Sundqvist Date: Mon, 6 Aug 2018 14:12:03 +0300 Subject: Doc: Remove links to DriveCX installation guide B2Qt for Qt 5.11 does not provide a DriveCX image so the installation guide can be removed. Task-number: QTBUG-69759 Change-Id: I09abffbd86ee9f898feb7a0f8ce14c9928770b1e Reviewed-by: Samuli Piippo --- .../src/qtautomotivesuite-drive-cx.qdoc | 71 ---------------------- .../src/qtautomotivesuite-tutorial-deploying.qdoc | 2 +- .../qtautomotivesuite/src/qtautomotivesuite.qdoc | 2 +- 3 files changed, 2 insertions(+), 73 deletions(-) delete mode 100644 src/doc/qtautomotivesuite/src/qtautomotivesuite-drive-cx.qdoc 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 - 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-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 bac5659..30e6783 100644 --- a/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc +++ b/src/doc/qtautomotivesuite/src/qtautomotivesuite.qdoc @@ -201,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 -- cgit v1.2.1 From c3da57cf0c7213120803fe63003d0cc14d14f871 Mon Sep 17 00:00:00 2001 From: Tarja Sundqvist Date: Fri, 8 Sep 2017 14:59:07 +0300 Subject: Add SDK Creation Instructions to Qt AS documentation Add instructions how to create an online SDK. In case of online SDK, Qt Installer Framework manual is referred. Task-number: QTAUTO-389 Change-Id: I1dfd3a97d942c42686859e120382656600edaa70 Reviewed-by: Antti Kokko Reviewed-by: Akseli Salovaara --- .../qtautomotivesuite/src/external-resources.qdoc | 141 +++++++-- .../qtautomotivesuite/src/images/ifw-overview.png | Bin 0 -> 41080 bytes .../src/images/qtas-sdk-tools.png | Bin 0 -> 37749 bytes src/doc/qtautomotivesuite/src/images/qtas_sdk.png | Bin 0 -> 25900 bytes .../src/qtautomotivesuite-create-sdk.qdoc | 167 ++++++++++ .../src/qtautomotivesuite-sdk-build-ifw.qdoc | 215 +++++++++++++ .../src/qtautomotivesuite-sdk-repositories.qdoc | 346 +++++++++++++++++++++ 7 files changed, 849 insertions(+), 20 deletions(-) create mode 100644 src/doc/qtautomotivesuite/src/images/ifw-overview.png create mode 100644 src/doc/qtautomotivesuite/src/images/qtas-sdk-tools.png create mode 100644 src/doc/qtautomotivesuite/src/images/qtas_sdk.png create mode 100644 src/doc/qtautomotivesuite/src/qtautomotivesuite-create-sdk.qdoc create mode 100644 src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-build-ifw.qdoc create mode 100644 src/doc/qtautomotivesuite/src/qtautomotivesuite-sdk-repositories.qdoc diff --git a/src/doc/qtautomotivesuite/src/external-resources.qdoc b/src/doc/qtautomotivesuite/src/external-resources.qdoc index 91160f0..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 */ @@ -127,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 */ @@ -250,3 +250,104 @@ \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 Binary files /dev/null and b/src/doc/qtautomotivesuite/src/images/ifw-overview.png 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 Binary files /dev/null and b/src/doc/qtautomotivesuite/src/images/qtas-sdk-tools.png 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 Binary files /dev/null and b/src/doc/qtautomotivesuite/src/images/qtas_sdk.png differ 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 /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-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=.tar.gz> --ifw_uri= + \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=.tar.gz> --ifw_uri= --ifw_branch= --openssl_dir = + \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 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/meta.7z + repository/qt.595.src/meta.7z + repository/qt.595.doc/meta.7z + repository/qt.595.examples/meta.7z + \endcode + + The \e{} (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 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 + + + https://mycompany.com/myonlinerepository/linux-x86_64/root + 1 + MyCompany Linux-x64 root online repository + + + \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 + + {AnyApplication} + IFW_REPOSITORY_FORMAT_VERSION + true + + + + + ... + + + \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_} 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/}. After you have run \e{build_wrapper.py}, + the archive is repackaged so that it has only + 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{} 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 + + \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. + +*/ -- cgit v1.2.1