Commit 3856c794 authored by Liang Qi's avatar Liang Qi
Browse files

Merge remote-tracking branch 'origin/5.5.0' into 5.5

Change-Id: I21b0a8a1c2a0c45e75c57406bbbaf66ad924d9cd
Showing with 127 additions and 115 deletions
Qt 5.5 introduces many new features and improvements as well as bugfixes
over the 5.4.x series. For more details, refer to the online documentation
included in this distribution. The documentation is also available online:
http://doc.qt.io/qt-5/index.html
The Qt version 5.5 series is binary compatible with the 5.4.x series.
Applications compiled for 5.4 will continue to run with 5.5.
Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:
https://bugreports.qt.io/
Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.
****************************************************************************
* General *
****************************************************************************
- Fixed several instances of missing, incorrect or obsolete information.
- Updated platform-specific documentation for embedded Linux, Windows,
WinRT, Android, and QNX.
- Updated getting started information and added a topic for getting
started with Qt Quick Controls.
- Added documentation and links for the new modules on Qt 5.5
- Marked Qt WebKit, Qt Declarative (Qt Quick 1) and Qt Script modules
deprecated.
- Improved documentation on porting from Qt 4 to Qt 5.
- Updated license documentation for 3rd party libraries.
...@@ -51,6 +51,77 @@ ...@@ -51,6 +51,77 @@
\tableofcontents \tableofcontents
\section1 forkfd
\e{forkfd} is a tool to facilitate spawning sub-processes on Unix systems.
\badcode
Copyright (C) 2014 Intel Corporation
Copyright (C) 2015 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
\endcode
See \c {qtbase/src/3rdparty/forkfd/forkfd.c}.
\section1 FreeBSD strtoll and strtoull
\e {strtoll()} and \e{strtoull()} are functions for converting a string to
(unsigned) long long integer.
\badcode
Copyright (c) 1992, 1993
The Regents of the University of California. All rights reserved.
Copyright (c) 2011 The FreeBSD Foundation
All rights reserved.
Portions of this software were developed by David Chisnall
under sponsorship from the FreeBSD Foundation.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the University nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
\endcode
See \c {qtbase/src/3rdparty/freebsd/strtoll.c} and
\c {qtbase/src/3rdparty/freebsd/strtoull.c}
\section1 FreeType 2 (freetype) version 2.3.12 \section1 FreeType 2 (freetype) version 2.3.12
\e{The FreeType project is a team of volunteers who develop free, portable \e{The FreeType project is a team of volunteers who develop free, portable
......
...@@ -93,7 +93,7 @@ ...@@ -93,7 +93,7 @@
\table \table
\header \li Qt Module/Tool \li Component \li Description \li License Type \li Notes \header \li Qt Module/Tool \li Component \li Description \li License Type \li Notes
\row \li {1,28} Qt Core \row \li {1,30} Qt Core
\row \li \l{QSegfaultHandler Class}{QSegfaultHandler} \row \li \l{QSegfaultHandler Class}{QSegfaultHandler}
\li Parts of implementation of QSegfaultHandler class. \li BSD-style \li \li Parts of implementation of QSegfaultHandler class. \li BSD-style \li
...@@ -134,6 +134,10 @@ ...@@ -134,6 +134,10 @@
\row \li \l{Android GNU C++ Run-time Licensing}{Android C++ Run-time} \row \li \l{Android GNU C++ Run-time Licensing}{Android C++ Run-time}
\li GNU C++ run-time library (libstdc++) for Android. \li GPLv3 with exception \li \l{Qt for Android} \li GNU C++ run-time library (libstdc++) for Android. \li GPLv3 with exception \li \l{Qt for Android}
\row \li \l{forkfd}
\li A tool to facilitate spawning sub-processes. \li MIT \li Unix systems
\row \li \l{FreeBSD strtoll and strtoull}
\li Functions for converting a string to long long integer. \li BSD \li
\row \li \l {MD4 (md4.cpp and md4.h)}{MD4} \row \li \l {MD4 (md4.cpp and md4.h)}{MD4}
\li implements the MD4 message-digest algorithm. \li BSD \li \li implements the MD4 message-digest algorithm. \li BSD \li
\row \li \l{MD5 (md5.cpp and md5.h)}{MD5} \row \li \l{MD5 (md5.cpp and md5.h)}{MD5}
......
...@@ -33,8 +33,8 @@ ...@@ -33,8 +33,8 @@
Qt for VxWorks is available only under a commercial license. Qt for VxWorks is available only under a commercial license.
Please contact Qt sales at Digia to find out more: Please contact Qt sales to find out more:
http://info.qt.digia.com/contact-qt \l http://www.qt.io/contact-us/
*/ */
...@@ -58,7 +58,7 @@ ...@@ -58,7 +58,7 @@
\li \l {http://www.qnx.com/download/group.html?programid=26076}{QNX CAR Platform 2.1}. \li \l {http://www.qnx.com/download/group.html?programid=26076}{QNX CAR Platform 2.1}.
\endlist \endlist
Qt 5 is currently tested and supported on QNX SDP 6.5 SP1 and on SDP 6.6 with QNX SDK for Qt 5 is currently tested and supported on QNX SDP 6.6 with QNX SDK for
Apps and Media, see the section \l {Build Requirements} for more details. Supported Apps and Media, see the section \l {Build Requirements} for more details. Supported
architectures are ARMle-v7 and x86. Older QNX SDP releases and other architectures may also architectures are ARMle-v7 and x86. Older QNX SDP releases and other architectures may also
work, but are not subject to regular builds and testing. work, but are not subject to regular builds and testing.
...@@ -98,12 +98,6 @@ ...@@ -98,12 +98,6 @@
\l{http://www.qnx.com/download/group.html?programid=26072}{QNX SDK for Apps and Media 1.0} which provides \l{http://www.qnx.com/download/group.html?programid=26072}{QNX SDK for Apps and Media 1.0} which provides
\c{fontconfig} and multimedia support along with other features. In this case, Qt will use the \c{fontconfig} and multimedia support along with other features. In this case, Qt will use the
internal font database instead of \c{fontconfig}, and \l{Multimedia}{multimeida} will be not functional. internal font database instead of \c{fontconfig}, and \l{Multimedia}{multimeida} will be not functional.
\li \l {http://www.qnx.com/download/group.html?programid=20905}{SDP 6.5.0 SP1}
supplemented by the \l {http://www.qnx.com/developers/docs/660/topic/com.qnx.doc.screen/topic/manual/cscreen_about.html}
{QNX Screen Graphics Subsystem} (also called just "Screen") as an add-on. The Screen is
a standard component of SDP 6.6 and newer, but for SDP 6.5 it is available upon a request
only, contact QNX Software Systems (info@qnx.com). You should also install possibly all
patches for SDP 6.5 as provided by QNX Software Systems.
\endlist \endlist
The compiler and other parts of the tool chain are provided in the SDP packages. You do not need The compiler and other parts of the tool chain are provided in the SDP packages. You do not need
...@@ -134,16 +128,6 @@ ...@@ -134,16 +128,6 @@
target folder where Qt will be installed and places all build artifacts outside of the target folder where Qt will be installed and places all build artifacts outside of the
source code tree. source code tree.
As noted above, building Qt 5 with QNX SDP 6.5.0 SP1 requires the Screen. Qt 5 needs
related headers and libraries and will not build if they are not available. QNX SDP 6.5.0 SP1
contains an older version of SQLite which is not supported by Qt 5 anymore. You should use the
SQLite provided with the Qt 5 source code. This is the default behavior of \c{configure} anyway,
just do not force the system SQLite with \c{-system-sqlite}. QNX SDP 6.5.0 SP1 does not provide
fontconfig. Qt will fall back to its internal font database. This limits the flexibility with
handling fonts, but it is not a serious issue for most projects. Many other Qt 5 add-on modules
will probably not build with QNX SDP 6.5.0 SP1, since their development has advanced too far
to support that older release of SDP.
\section1 Qt Runtime Target Requirements \section1 Qt Runtime Target Requirements
QNX Software Systems delivers software solutions for making embedded devices. This includes QNX Software Systems delivers software solutions for making embedded devices. This includes
......
...@@ -114,11 +114,9 @@ ...@@ -114,11 +114,9 @@
\table \table
\header \li Platform \header \li Platform
\li Compiler \li Compiler
\row \li Ubuntu Linux 11.10, X11 (32-bit and 64-bit) \row \li Ubuntu Linux 14.04, X11 (64-bit)
\li As provided by Ubuntu
\row \li Ubuntu Linux 12.04, X11 (64-bit)
\li As provided by Ubuntu \li As provided by Ubuntu
\row \li RedHat 6.5, X11 (64-bit) \row \li RedHat 6.6, X11 (64-bit)
\li As provided by Red Hat \li As provided by Red Hat
\row \li openSUSE 13.1, X11 (64-bit) \row \li openSUSE 13.1, X11 (64-bit)
\li As provided by SUSE \li As provided by SUSE
...@@ -166,10 +164,8 @@ ...@@ -166,10 +164,8 @@
\table \table
\header \li Platform \header \li Platform
\li Compiler \li Compiler
\row \li Ubuntu Linux 10.04, X11 (32-bit) \row \li Ubuntu Linux 11.10, X11 (32-bit and 64-bit)
\li As provided by Ubuntu \li As provided by Ubuntu
\row \li Microsoft Windows XP (32-bit)
\li MSVC 2008 SP1
\row \li Microsoft Windows CE 7.0 \row \li Microsoft Windows CE 7.0
\li MSVC 2008 SP1 \li MSVC 2008 SP1
\row \li Apple OS X 10.7 "Lion", Cocoa (64-bit) \row \li Apple OS X 10.7 "Lion", Cocoa (64-bit)
......
...@@ -32,8 +32,8 @@ ...@@ -32,8 +32,8 @@
Qt for WinRT allows you to run Qt applications on devices supporting the Qt for WinRT allows you to run Qt applications on devices supporting the
Windows Store App APIs. This includes Modern UI applications in Windows 8.1 Windows Store App APIs. This includes Modern UI applications in Windows 8.1
and up, as well as devices running the Windows RT and Windows and up, as well as devices running Windows RT 8.1 and Windows Phone 8.1
Phone 8. and up.
Microsoft introduced a new design paradigm with the Windows 8 Modern UI. A Microsoft introduced a new design paradigm with the Windows 8 Modern UI. A
core part of this new approach is Windows Runtime (WinRT) that supports core part of this new approach is Windows Runtime (WinRT) that supports
...@@ -63,13 +63,19 @@ ...@@ -63,13 +63,19 @@
\li Windows RT \li Windows RT
\li Visual Studio 2013 for Windows \li Visual Studio 2013 for Windows
\row \row
\li Windows Phone 8 \li Windows Phone 8.1
\li Visual Studio 2012 for Windows Phone \li Visual Studio 2013 for Windows Phone
\row
\li Windows 10
\li Visual Studio 2015
\endtable \endtable
If you are targeting a remote device, please follow all instructions by If you are targeting a remote device, please follow all instructions by
Visual Studio to set it up correctly. Visual Studio to set it up correctly.
If you are targeting an emulator for Windows Phone, Windows 8.1 Pro is
required by Microsoft to launch the emulator itself.
\section1 Getting Started \section1 Getting Started
\section2 Building Applications \section2 Building Applications
...@@ -134,7 +140,7 @@ ...@@ -134,7 +140,7 @@
\c arm, \c x86, or \c x64. The following is an example of building qtbase \c arm, \c x86, or \c x64. The following is an example of building qtbase
for WinRT: for WinRT:
\code \code
> ./configure -xplatform winrt-x64-msvc2012 -developer-build -release > ./configure -xplatform winrt-x64-msvc2013 -release
> nmake/jom > nmake/jom
\endcode \endcode
...@@ -154,9 +160,6 @@ ...@@ -154,9 +160,6 @@
using a \c plugins folder as root. For more information, see using a \c plugins folder as root. For more information, see
\l{Qt for Windows - Deployment}. \l{Qt for Windows - Deployment}.
Additionally, any pre-compiled shaders used by OpenGL applications must
also be packaged. See \l{OpenGL Shaders on WinRT}.
As WinRT applications are run in a sandboxed environment, setting As WinRT applications are run in a sandboxed environment, setting
the path variable to point to the files required will not work. the path variable to point to the files required will not work.
...@@ -165,24 +168,12 @@ ...@@ -165,24 +168,12 @@
and copies Qt libraries and plugins to the appropriate directories, as and copies Qt libraries and plugins to the appropriate directories, as
necessary. necessary.
In order to be able to run debug builds of your applications you have to
register the correct VCLib debug framework. This framework provides the
\b{C++ Runtime} for Modern UI applications and its files can usually be found in
\b{<Path to Microsoft SDKs>\\<Windows version>\\ExtensionSDKs\\Microsoft.VCLibs\\<VC Version>\\AppX\\Debug\\<CPU architecture>}
To register the debug VCLibs for x64 for Visual Studio 2013
on Windows 8.1, run the following command in PowerShell:
\code
> Add-AppxPackage 'C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1\ExtensionSDKs\Microsoft.VCLibs\12.0\AppX\Debug\x64\Microsoft.VCLibs.x64.Debug.12.00.appx'
\endcode
\note \l{winrtrunner}{The WinRT Runner Tool} installs these dependencies automatically.
Because all resources are placed to one directory, you can register the Because all resources are placed to one directory, you can register the
directory using an XML file (AppxManifest.xml) and Windows Powershell. The reference directory using an XML file (AppxManifest.xml) and Windows Powershell. The reference
for these manifest files can be found for these manifest files can be found
\l{http://msdn.microsoft.com/en-us/library/windows/apps/br211473.aspx}{here}. \l{http://msdn.microsoft.com/en-us/library/windows/apps/br211473.aspx}{here}.
If you are using a debug build, your AppxManifest has to provide information about The target processor architecture must be specified (as opposed to the default,
its dependency on the just added VCLibs. Additionally, the target processor 'neutral').
architecture must be specified (as opposed to the default, 'neutral').
As soon as these requirements are met, change into your \e packaged directory in As soon as these requirements are met, change into your \e packaged directory in
PowerShell and call: PowerShell and call:
\code \code
...@@ -190,7 +181,7 @@ ...@@ -190,7 +181,7 @@
\endcode \endcode
\note \l{winrtrunner}{The WinRT Runner Tool} can perform the same operation with the --install option. \note \l{winrtrunner}{The WinRT Runner Tool} can perform the same operation with the --install option.
If that worked, you should be able to find your application in Windows 8's If that worked, you should be able to find your application in Windows 8.1's
start screen. To remove your application, use Windows' built-in way to start screen. To remove your application, use Windows' built-in way to
uninstall applications (right-click or tap and hold the application and uninstall applications (right-click or tap and hold the application and
choose \c{Uninstall}). choose \c{Uninstall}).
...@@ -251,69 +242,4 @@ ...@@ -251,69 +242,4 @@
upon. Arguments after the package name will upon. Arguments after the package name will
be passed to the application when it starts. be passed to the application when it starts.
\endcode \endcode
\section1 OpenGL Shaders on WinRT
Qt for WinRT uses \l{ANGLE} to provide its OpenGL implementation, which generates
Direct3D HLSL from OpenGL shader source code, and this source code must be
compiled before it can be used by OpenGL APIs, such as those used by the
\l{Qt Quick Scene Graph}. This is normally accomodated at runtime by the
D3D Compiler DLL. However, the traditional D3D Compiler DLL is not available
for use by Windows Phone 8.0 applications. Therefore, a proxy drop-in replacement,
\c{d3dcompiler_qt.dll}, was created to provide precompiled shader binaries
from a service running on the host machine, or from a local file path or
\l{The Qt Resource System}{resource file}.
\note The D3D Compiler API is allowed in Windows 8.1 and Windows Phone 8.1, so
shader precompilation is not required (but may still be used) on those platforms.
\section2 Using the Qt D3D Shader Service
\target qtd3dservice
The Qt D3D Shader Service can be found in QTDIR/bin/qtd3dservice. It is designed
to automatically detect Qt applications running locally and on connected
Windows Phone devices and emulators. To use it, simply start the \c{qtd3dservice}
executable with no arguments. It will then run indefinitely, servicing applications
until it is stopped. Other options may be passed to get additional debug output
or collect information on previously observed shader sources and binaries.
\badcode
Usage: qtd3dservice.exe [options]
Options:
--output <file> Writes output to a file.
--verbose <level> Sets the verbosity level of the message output (0 - silent,
1 -info, 2 - debug). Defaults to 1.
--list-source Lists the known shader sources. Use with --app and/or
--device to narrow the scope.
--list-binary Lists the known shader binaries. Use with --app and/or
--device to narrow the scope.
--app <name> Specifies the application to act upon.
--device <name> Specifies the device to act upon.
--qrc Outputs the content of --list-source/--list-binary in Qt
resource file format.
-?, -h, --help Displays this help.
\endcode
\section2 Packaging Shaders for Deployment
While \l{qtd3dservice} will pick up shader sources and generate shader binaries
during runtime, it obviously cannot be used in published applications. It is
the responsibility of the developer to package these shader "blobs" with the
application before publishing. To do so, first run through your application
on the target device to make sure all shader sources have been compiled. You
can confirm this by running the application without the shader service
running, as the blobs will be picked up from the local device cache.
Once this has been done, generate a QRC for packaging the shader blobs into
the application. For example, to get a QRC for a Windows Phone device and an
application ID of {975735f9-70ac-4593-b1cb-a9bec8cad348}, you would use the
following command:
\code
> qtd3dservice --list-binary --qrc --device 0 --app {975735f9-70ac-4593-b1cb-a9bec8cad348} --output /path/to/project/shaders.qrc
\endcode
You may then include this file in your qmake project file using the following
line:
\code
RESOURCES += shaders.qrc
\endcode
The precompiled shaders will be used by ANGLE when encountered in your
application.
*/ */
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment