2011-07-05 01:37:55 +00:00
|
|
|
HOW TO BUILD QT5
|
|
|
|
================
|
2011-04-28 13:16:48 +00:00
|
|
|
|
|
|
|
|
2011-07-05 01:37:55 +00:00
|
|
|
Synopsis
|
|
|
|
========
|
2011-04-28 13:16:48 +00:00
|
|
|
|
2012-08-31 07:10:41 +00:00
|
|
|
See http://qt-project.org/wiki/Building-Qt-5-from-Git for instructions
|
2012-03-15 09:23:04 +00:00
|
|
|
on building Qt 5.
|
2011-05-10 08:41:41 +00:00
|
|
|
|
2012-03-15 09:23:04 +00:00
|
|
|
New dependencies in Qt 5
|
|
|
|
------------------------
|
|
|
|
|
|
|
|
Linux: On systems running X11, the XCB libraries are required for
|
|
|
|
the platform plugin to build. qtbase/src/plugins/platforms/xcb/README
|
|
|
|
lists the required packages.
|
|
|
|
|
|
|
|
Qt 5 can make use of the ICU libraries providing Unicode and Globalization
|
|
|
|
support (see http://site.icu-project.org/). They are required for building
|
|
|
|
QtWebKit.
|
|
|
|
On Linux, they will be auto-detected.
|
|
|
|
On Windows, they need to be manually installed and the "include" and "lib"
|
|
|
|
folders of the ICU installation must be appended to the INCLUDE and LIB
|
|
|
|
environment variables after calling the Windows SDK setup script.
|
|
|
|
The "bin" folder of the ICU installation should be appended to the PATH
|
|
|
|
environment variable in order to for the DLLs to be found at run-time.
|
|
|
|
|
|
|
|
Linux, Mac:
|
|
|
|
-----------
|
|
|
|
|
|
|
|
cd <path>/qt-everywhere-opensource-src-<version>
|
|
|
|
export PATH=$PATH:$PWD/qtbase/bin
|
|
|
|
./configure -prefix $PWD/qtbase -opensource -nomake tests
|
2012-03-29 14:17:33 +00:00
|
|
|
./build -j 4
|
2012-03-15 09:23:04 +00:00
|
|
|
|
|
|
|
Windows:
|
|
|
|
--------
|
|
|
|
|
|
|
|
Open a Windows SDK (7.0, 7.1 or later) command prompt. Ensure that Perl
|
|
|
|
version 5.12 or later and Python version 2.7 or later can be found in the
|
|
|
|
path.
|
|
|
|
|
|
|
|
cd <path>\qt-everywhere-opensource-src-<version>
|
2012-03-28 10:48:40 +00:00
|
|
|
set PATH=%PATH%;%CD%\qtbase\bin;
|
2012-03-15 09:23:04 +00:00
|
|
|
configure -prefix %CD%\qtbase -opensource -nomake tests
|
2012-03-28 10:48:40 +00:00
|
|
|
perl build
|
2012-03-15 09:23:04 +00:00
|
|
|
|
|
|
|
For MinGW (gcc version 4.6 or later), ensure that the compiler can
|
|
|
|
be found in the path.
|
2011-05-10 08:41:41 +00:00
|
|
|
|
2012-03-28 10:48:40 +00:00
|
|
|
The build script will use jom if it's found in the path, which means you can
|
|
|
|
use -j <n> options on Windows as well. If not, the /MP option is added to the
|
|
|
|
compile options of the Microsoft Visual Studio compiler, to use all available
|
|
|
|
cores for batch building.
|
|
|
|
|
2011-07-05 01:37:55 +00:00
|
|
|
More details follow.
|
2011-05-10 08:41:41 +00:00
|
|
|
|
2012-03-15 09:23:04 +00:00
|
|
|
Building QtWebKit
|
|
|
|
=================
|
|
|
|
|
|
|
|
Linux, Mac:
|
|
|
|
-----------
|
|
|
|
|
|
|
|
The tools bison, flex and gperf which are required for building.
|
|
|
|
|
|
|
|
cd qtwebkit
|
|
|
|
export WEBKITOUTPUTDIR=$$PWD/WebKitBuild
|
|
|
|
perl Tools/Scripts/build-webkit --qt --qmake=../qtbase/bin/qmake --install-libs=<install dir> --release --makeargs=$MAKEFLAGS
|
|
|
|
|
|
|
|
Windows:
|
|
|
|
--------
|
|
|
|
|
|
|
|
The tools bison, flex and gperf which are required for building are
|
|
|
|
provided for convenience in the folder gnuwin32\bin.
|
|
|
|
|
|
|
|
set PATH=%PATH%;%CD%\gnuwin32\bin
|
|
|
|
cd qtwebkit
|
|
|
|
set WEBKITOUTPUTDIR=%CD%/WebKitBuild
|
|
|
|
perl Tools\Scripts\build-webkit --qt --qmake=..\qtbase\bin\qmake.exe --install-libs=<install dir> --release --makeargs=%MAKEFLAGS%
|
2011-05-30 13:30:20 +00:00
|
|
|
|
2011-07-05 01:37:55 +00:00
|
|
|
Get The Submodules
|
|
|
|
==================
|
2011-05-30 13:30:20 +00:00
|
|
|
|
2012-03-15 09:23:04 +00:00
|
|
|
Obtaining the source code is described in detail at
|
2012-06-06 14:03:11 +00:00
|
|
|
http://qt-project.org/wiki/Category:Developing_Qt and
|
2012-03-15 09:23:04 +00:00
|
|
|
http://qt-project.org/wiki/Get_The_Source.
|
|
|
|
|
2011-07-05 01:37:55 +00:00
|
|
|
Cloning Qt5 does not automatically clone all submodules.
|
|
|
|
To get the submodules, it is recommended to use the `init-repository' script.
|
|
|
|
|
|
|
|
./init-repository
|
|
|
|
|
|
|
|
See `./init-repository -help' for full documentation on the many supported
|
|
|
|
options.
|
|
|
|
|
|
|
|
|
|
|
|
Update The Submodules (optional)
|
|
|
|
================================
|
|
|
|
|
|
|
|
After a plain `git clone' and `init-repository', you will have each submodule
|
|
|
|
checked out to a particular SHA1. This combination of SHA1s is guaranteed to
|
|
|
|
have passed some basic acceptance testing.
|
|
|
|
|
|
|
|
If (and only if!) you need newer versions of some submodules, you can manually
|
|
|
|
fetch and/or pull and/or reset any modules you like, or use the qt5_tool to
|
|
|
|
pull all modules:
|
|
|
|
|
|
|
|
./qtrepotools/bin/qt5_tool -p
|
|
|
|
|
|
|
|
NOTE! As soon as you change the SHA1 of any submodule, you are using a
|
|
|
|
combination of modules which is potentially untested and broken! If you want
|
|
|
|
something which is more likely to compile, stick to the module SHA1s provided
|
|
|
|
in this repository.
|
|
|
|
|
|
|
|
|
|
|
|
Install The Git Grafts (optional)
|
|
|
|
=================================
|
|
|
|
|
|
|
|
If you want to be able to connect the Qt5 and Qt4 development history, you
|
|
|
|
may set up git grafts with the following command:
|
|
|
|
|
|
|
|
git submodule foreach '../qtrepotools/bin/git-qt-grafts <path_to_history>'
|
|
|
|
|
|
|
|
|
|
|
|
Build!
|
|
|
|
======
|
|
|
|
|
|
|
|
A typical `configure; make' build process is used.
|
|
|
|
|
2012-03-15 09:23:04 +00:00
|
|
|
Some relevant configure options (see configure -help):
|
|
|
|
|
|
|
|
-release Compile and link Qt with debugging turned off.
|
|
|
|
-debug Compile and link Qt with debugging turned on.
|
|
|
|
-nomake tests Disable building of tests to speed up compilation
|
|
|
|
-nomake examples Disable building of examples to speed up compilation
|
|
|
|
-confirm-license Automatically acknowledge the LGPL 2.1 license.
|
|
|
|
|
2011-07-05 01:37:55 +00:00
|
|
|
Example for a release build:
|
|
|
|
(adjust the `-jN' parameter as appropriate for your system)
|
|
|
|
|
2012-01-03 11:53:39 +00:00
|
|
|
./configure -prefix $PWD/qtbase -opensource
|
2011-07-05 01:37:55 +00:00
|
|
|
make -j4
|
|
|
|
|
2012-01-03 11:16:37 +00:00
|
|
|
Example for a developer build:
|
|
|
|
(enables more autotests, builds debug version of libraries, ...)
|
2011-07-05 01:37:55 +00:00
|
|
|
|
2012-01-03 11:53:39 +00:00
|
|
|
./configure -developer-build -opensource
|
2011-07-05 01:37:55 +00:00
|
|
|
make -j4
|
|
|
|
|
|
|
|
See output of `./configure -help' for documentation on various options to
|
|
|
|
configure.
|
|
|
|
|
|
|
|
The above examples will build whatever Qt5 modules have been enabled by
|
|
|
|
default in the build system.
|
|
|
|
|
|
|
|
It is possible to build selected modules with their dependencies by doing
|
|
|
|
a `make module-<foo>'. For example, to build only qtscript and qtwebkit,
|
|
|
|
and the modules they depend on:
|
|
|
|
|
2012-01-03 11:53:39 +00:00
|
|
|
./configure -prefix $PWD/qtbase -opensource
|
2011-07-05 01:37:55 +00:00
|
|
|
make -j4 module-qtscript module-qtwebkit
|
|
|
|
|
|
|
|
This can save a lot of time if you are only interested in a subset of Qt5.
|
|
|
|
|
|
|
|
|
|
|
|
Hints
|
|
|
|
=====
|
|
|
|
|
|
|
|
Shadow builds are possible, but not as well tested/supported as in-source
|
|
|
|
builds.
|
|
|
|
|
2012-03-15 09:23:04 +00:00
|
|
|
The submodule repository qtrepotools contains useful scripts for
|
|
|
|
developers and release engineers. Consider adding qtrepotools/bin
|
|
|
|
to your PATH environment variable to access them.
|
2012-01-03 11:53:39 +00:00
|
|
|
|
2011-07-05 01:37:55 +00:00
|
|
|
The qt5_tool in qtrepotools has some more features which may be of interest.
|
|
|
|
Try `qt5_tool --help'.
|