1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
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
*/
|