mirror of
git://code.qt.io/qt/qt5.git
synced 2026-02-28 17:56:20 +08:00
Compare commits
119 Commits
v5.0.0-bet
...
v5.1.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
45b8f5c7fc | ||
|
|
e78aad71e6 | ||
|
|
33072afc58 | ||
|
|
730e330068 | ||
|
|
b25fcb31a7 | ||
|
|
18aaac1806 | ||
|
|
09c3d8537e | ||
|
|
7b034fec34 | ||
|
|
cfbfb61233 | ||
|
|
6d08e322c7 | ||
|
|
fced9b8199 | ||
|
|
3e26038d5c | ||
|
|
80c8ed3c21 | ||
|
|
66ed87fc67 | ||
|
|
ec783bb21e | ||
|
|
2f8a096c9c | ||
|
|
d3d46ac7b3 | ||
|
|
2ef82978ca | ||
|
|
08ec2c7a62 | ||
|
|
aeed8ce504 | ||
|
|
0089431326 | ||
|
|
3d960ec9a9 | ||
|
|
d7ca18632a | ||
|
|
9e7460525d | ||
|
|
c639fec072 | ||
|
|
d2b2b92d49 | ||
|
|
ba4baee789 | ||
|
|
901fd28fd8 | ||
|
|
fd3ee8634a | ||
|
|
56e6962ad7 | ||
|
|
e653efe17d | ||
|
|
f0efc5c5cc | ||
|
|
238c0f5ce0 | ||
|
|
8d77ff1ef2 | ||
|
|
495c7a13f7 | ||
|
|
f67e9c6bf2 | ||
|
|
039f8c8555 | ||
|
|
8cb6c9373f | ||
|
|
c409a85bb8 | ||
|
|
5e8c47946a | ||
|
|
c18c2a76ef | ||
|
|
a41ce6cb4f | ||
|
|
97d477d4ff | ||
|
|
af96eba3e7 | ||
|
|
bf8311f879 | ||
|
|
9eefa9fb9a | ||
|
|
471842d8f4 | ||
|
|
b335981ca0 | ||
|
|
24031b2120 | ||
|
|
b1c03b4497 | ||
|
|
a9e3e72b2e | ||
|
|
b9f3ea418a | ||
|
|
766ed50650 | ||
|
|
0f16101977 | ||
|
|
db59699011 | ||
|
|
b9b8db0745 | ||
|
|
2ad41f3ba7 | ||
|
|
371ae019fc | ||
|
|
cb530cbe80 | ||
|
|
8dfa5d43e1 | ||
|
|
4ec68bcba5 | ||
|
|
7319eb06fd | ||
|
|
e605d1675e | ||
|
|
7a9722d3ab | ||
|
|
76d59a3fa4 | ||
|
|
a6254526d8 | ||
|
|
01b8ffb28f | ||
|
|
2b92b3ea1f | ||
|
|
0125076d12 | ||
|
|
41c3f2cb5f | ||
|
|
a1f4d9db15 | ||
|
|
71c071399a | ||
|
|
c72a240108 | ||
|
|
c0772fa7a5 | ||
|
|
98a605eb6b | ||
|
|
f81bf2b5ee | ||
|
|
0e1169ca2d | ||
|
|
0e169c8e8b | ||
|
|
34f1dbc74a | ||
|
|
21f9eaf60e | ||
|
|
da8730bf21 | ||
|
|
749b83f337 | ||
|
|
508072fb03 | ||
|
|
cd3a4676c8 | ||
|
|
008fb07a0f | ||
|
|
d3a55bf0aa | ||
|
|
600b295f2c | ||
|
|
58acd59fa6 | ||
|
|
8f9fcfdcb5 | ||
|
|
e4d841490b | ||
|
|
a2d6af491e | ||
|
|
4e87fe89ce | ||
|
|
4865835418 | ||
|
|
58178a8a0e | ||
|
|
bf4c64ada0 | ||
|
|
6ccb808ef6 | ||
|
|
c0626490d1 | ||
|
|
be16d21a80 | ||
|
|
0e1c9d3724 | ||
|
|
aa7ff01d60 | ||
|
|
837c3e68a0 | ||
|
|
23701ec556 | ||
|
|
138fb6e22e | ||
|
|
8fbf48fd93 | ||
|
|
2e1a8b49f4 | ||
|
|
c4c9ca640a | ||
|
|
5de69ba432 | ||
|
|
c1a3e0c2f2 | ||
|
|
34cf394226 | ||
|
|
10d5a02dcd | ||
|
|
c83a5d49a3 | ||
|
|
9b19587959 | ||
|
|
34904ca89d | ||
|
|
0b501b19de | ||
|
|
36e84c61a1 | ||
|
|
bd1716005a | ||
|
|
5fc7879313 | ||
|
|
3913643642 | ||
|
|
ed65966d5d |
6
.gitattributes
vendored
Normal file
6
.gitattributes
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
.tag export-subst
|
||||
.gitignore export-ignore
|
||||
.gitattributes export-ignore
|
||||
.gitmodules export-ignore
|
||||
.commit-template export-ignore
|
||||
init-repository export-ignore
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,3 +1,2 @@
|
||||
Makefile
|
||||
Makefile.qtwebkit
|
||||
.qmake.cache
|
||||
|
||||
77
.gitmodules
vendored
77
.gitmodules
vendored
@@ -1,81 +1,96 @@
|
||||
[submodule "qtbase"]
|
||||
path = qtbase
|
||||
url = git://gitorious.org/qt/qtbase.git
|
||||
url = ../qtbase.git
|
||||
[submodule "qtsvg"]
|
||||
path = qtsvg
|
||||
url = git://gitorious.org/qt/qtsvg.git
|
||||
url = ../qtsvg.git
|
||||
[submodule "qtdeclarative"]
|
||||
path = qtdeclarative
|
||||
url = git://gitorious.org/qt/qtdeclarative.git
|
||||
url = ../qtdeclarative.git
|
||||
[submodule "qtactiveqt"]
|
||||
path = qtactiveqt
|
||||
url = git://gitorious.org/qt/qtactiveqt.git
|
||||
url = ../qtactiveqt.git
|
||||
[submodule "qtscript"]
|
||||
path = qtscript
|
||||
url = git://gitorious.org/qt/qtscript.git
|
||||
url = ../qtscript.git
|
||||
[submodule "qtmultimedia"]
|
||||
path = qtmultimedia
|
||||
url = git://gitorious.org/qt/qtmultimedia.git
|
||||
url = ../qtmultimedia.git
|
||||
[submodule "qttools"]
|
||||
path = qttools
|
||||
url = git://gitorious.org/qt/qttools.git
|
||||
url = ../qttools.git
|
||||
[submodule "qtxmlpatterns"]
|
||||
path = qtxmlpatterns
|
||||
url = git://gitorious.org/qt/qtxmlpatterns.git
|
||||
url = ../qtxmlpatterns.git
|
||||
[submodule "qttranslations"]
|
||||
path = qttranslations
|
||||
url = git://gitorious.org/qt/qttranslations.git
|
||||
url = ../qttranslations.git
|
||||
[submodule "qtdoc"]
|
||||
path = qtdoc
|
||||
url = git://gitorious.org/qt/qtdoc.git
|
||||
url = ../qtdoc.git
|
||||
[submodule "qlalr"]
|
||||
path = qlalr
|
||||
url = git://gitorious.org/qt/qlalr.git
|
||||
url = ../qlalr.git
|
||||
[submodule "qtrepotools"]
|
||||
path = qtrepotools
|
||||
url = git://gitorious.org/qt/qtrepotools.git
|
||||
[submodule "qtwebkit-examples-and-demos"]
|
||||
path = qtwebkit-examples-and-demos
|
||||
url = git://gitorious.org/qt/qtwebkit-examples-and-demos.git
|
||||
[submodule "qtqa"]
|
||||
path = qtqa
|
||||
url = git://gitorious.org/qt/qtqa.git
|
||||
url = ../qtrepotools.git
|
||||
[submodule "qtwebkit"]
|
||||
path = qtwebkit
|
||||
url = git://gitorious.org/qtwebkit/qt5-module.git
|
||||
url = ../qtwebkit.git
|
||||
[submodule "qtwebkit-examples"]
|
||||
path = qtwebkit-examples
|
||||
url = ../qtwebkit-examples.git
|
||||
[submodule "qtqa"]
|
||||
path = qtqa
|
||||
url = ../qtqa.git
|
||||
[submodule "qtlocation"]
|
||||
path = qtlocation
|
||||
url = git://gitorious.org/qt/qtlocation.git
|
||||
url = ../qtlocation.git
|
||||
[submodule "qtsensors"]
|
||||
path = qtsensors
|
||||
url = git://gitorious.org/qt/qtsensors.git
|
||||
url = ../qtsensors.git
|
||||
[submodule "qtsystems"]
|
||||
path = qtsystems
|
||||
url = git://gitorious.org/qt/qtsystems.git
|
||||
url = ../qtsystems.git
|
||||
[submodule "qtfeedback"]
|
||||
path = qtfeedback
|
||||
url = git://gitorious.org/qt/qtfeedback.git
|
||||
url = ../qtfeedback.git
|
||||
[submodule "qtdocgallery"]
|
||||
path = qtdocgallery
|
||||
url = ../qtdocgallery.git
|
||||
[submodule "qtpim"]
|
||||
path = qtpim
|
||||
url = git://gitorious.org/qt/qtpim.git
|
||||
url = ../qtpim.git
|
||||
[submodule "qtconnectivity"]
|
||||
path = qtconnectivity
|
||||
url = git://gitorious.org/qt/qtconnectivity.git
|
||||
url = ../qtconnectivity.git
|
||||
[submodule "qtwayland"]
|
||||
path = qtwayland
|
||||
url = git://gitorious.org/qt/qtwayland.git
|
||||
url = ../qtwayland.git
|
||||
[submodule "qtjsondb"]
|
||||
path = qtjsondb
|
||||
url = ../qtjsondb.git
|
||||
[submodule "qt3d"]
|
||||
path = qt3d
|
||||
url = git://gitorious.org/qt/qt3d.git
|
||||
url = ../qt3d.git
|
||||
[submodule "qtjsbackend"]
|
||||
path = qtjsbackend
|
||||
url = git://gitorious.org/qt/qtjsbackend.git
|
||||
url = ../qtjsbackend.git
|
||||
[submodule "qtimageformats"]
|
||||
path = qtimageformats
|
||||
url = git://gitorious.org/qt/qtimageformats.git
|
||||
url = ../qtimageformats.git
|
||||
[submodule "qtquick1"]
|
||||
path = qtquick1
|
||||
url = git://gitorious.org/qt/qtquick1.git
|
||||
url = ../qtquick1.git
|
||||
[submodule "qtgraphicaleffects"]
|
||||
path = qtgraphicaleffects
|
||||
url = git://gitorious.org/qt/qtgraphicaleffects.git
|
||||
url = ../qtgraphicaleffects.git
|
||||
[submodule "qtquickcontrols"]
|
||||
path = qtquickcontrols
|
||||
url = ../qtquickcontrols.git
|
||||
[submodule "qtserialport"]
|
||||
path = qtserialport
|
||||
url = ../qtserialport.git
|
||||
[submodule "qtx11extras"]
|
||||
path = qtx11extras
|
||||
url = ../qtx11extras.git
|
||||
|
||||
119
README
119
README
@@ -5,8 +5,22 @@ HOW TO BUILD QT5
|
||||
Synopsis
|
||||
========
|
||||
|
||||
See http://qt-project.org/wiki/Building_Qt_5_from_Git for instructions
|
||||
on building Qt 5.
|
||||
System requirements
|
||||
------------------
|
||||
|
||||
- Perl 5.8 or later
|
||||
- Python 2.7 or later
|
||||
- C++ compiler supporting the C++98 standard
|
||||
|
||||
For other platform specific requirements,
|
||||
please see section "Setting up your machine" on:
|
||||
http://qt-project.org/wiki/Get_The_Source
|
||||
|
||||
Optional requirements
|
||||
---------------------
|
||||
|
||||
- OpenSSL for SSL sockets or HTTPS
|
||||
- Wayland
|
||||
|
||||
New dependencies in Qt 5
|
||||
------------------------
|
||||
@@ -29,99 +43,28 @@ HOW TO BUILD QT5
|
||||
-----------
|
||||
|
||||
cd <path>/qt-everywhere-opensource-src-<version>
|
||||
export PATH=$PATH:$PWD/qtbase/bin
|
||||
./configure -prefix $PWD/qtbase -opensource -nomake tests
|
||||
./build -j 4
|
||||
make -j 4
|
||||
|
||||
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.
|
||||
Open a Windows SDK (7.0, 7.1 or later) command prompt. Ensure that the
|
||||
following tools can be found in the path:
|
||||
* Perl version 5.12 or later [http://www.activestate.com/activeperl/]
|
||||
* Python version 2.7 or later [http://www.activestate.com/activepython/]
|
||||
* Ruby version 1.9.3 or later [http://rubyinstaller.org/]
|
||||
|
||||
cd <path>\qt-everywhere-opensource-src-<version>
|
||||
set PATH=%PATH%;%CD%\qtbase\bin;
|
||||
configure -prefix %CD%\qtbase -opensource -nomake tests
|
||||
perl build
|
||||
nmake // jom // mingw32-make
|
||||
|
||||
For MinGW (gcc version 4.6 or later), ensure that the compiler can
|
||||
be found in the path.
|
||||
|
||||
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.
|
||||
To accelerate the bootstrap of qmake with MSVC, it may be useful to pass
|
||||
"-make-tool jom" on the configure command line. If you do not use jom,
|
||||
adding "/MP" to the CL environment variable is a good idea.
|
||||
|
||||
More details follow.
|
||||
|
||||
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%
|
||||
|
||||
Get The Submodules
|
||||
==================
|
||||
|
||||
Obtaining the source code is described in detail at
|
||||
http://qt-project.org/wiki/Category:Developing_Qt and
|
||||
http://qt-project.org/wiki/Get_The_Source.
|
||||
|
||||
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!
|
||||
======
|
||||
|
||||
@@ -166,12 +109,16 @@ HOW TO BUILD QT5
|
||||
Hints
|
||||
=====
|
||||
|
||||
Shadow builds are possible, but not as well tested/supported as in-source
|
||||
builds.
|
||||
|
||||
The submodule repository qtrepotools contains useful scripts for
|
||||
developers and release engineers. Consider adding qtrepotools/bin
|
||||
to your PATH environment variable to access them.
|
||||
|
||||
The qt5_tool in qtrepotools has some more features which may be of interest.
|
||||
Try `qt5_tool --help'.
|
||||
|
||||
|
||||
Building Qt5 from git
|
||||
=====================
|
||||
See http://qt-project.org/wiki/Building-Qt-5-from-Git and README.git
|
||||
for more information.
|
||||
See http://qt-project.org/wiki/Qt-5 for the reference platforms.
|
||||
|
||||
55
README.git
Normal file
55
README.git
Normal file
@@ -0,0 +1,55 @@
|
||||
OBTAINING QT5 FROM GIT
|
||||
======================
|
||||
|
||||
Synopsis
|
||||
========
|
||||
|
||||
For a more in-depth description on how to build Qt5 from git,
|
||||
please see: http://qt-project.org/wiki/Building-Qt-5-from-Git
|
||||
|
||||
|
||||
Get The Submodules
|
||||
==================
|
||||
|
||||
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>'
|
||||
|
||||
|
||||
Developing and Contributing to Qt
|
||||
================================
|
||||
|
||||
For more information on how to develop and contribute to Qt, please see:
|
||||
http://qt-project.org/wiki/Category:Developing_Qt
|
||||
554
build
554
build
@@ -1,554 +0,0 @@
|
||||
#!/usr/bin/perl
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
## Contact: http://www.qt-project.org/
|
||||
##
|
||||
## This file is part of the utilities of the Qt Toolkit.
|
||||
##
|
||||
## $QT_BEGIN_LICENSE:LGPL$
|
||||
## GNU Lesser General Public License Usage
|
||||
## This file may be used under the terms of the GNU Lesser General Public
|
||||
## License version 2.1 as published by the Free Software Foundation and
|
||||
## appearing in the file LICENSE.LGPL included in the packaging of this
|
||||
## file. Please review the following information to ensure the GNU Lesser
|
||||
## General Public License version 2.1 requirements will be met:
|
||||
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
##
|
||||
## In addition, as a special exception, Nokia gives you certain additional
|
||||
## rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
##
|
||||
## GNU General Public License Usage
|
||||
## Alternatively, this file may be used under the terms of the GNU General
|
||||
## Public License version 3.0 as published by the Free Software Foundation
|
||||
## and appearing in the file LICENSE.GPL included in the packaging of this
|
||||
## file. Please review the following information to ensure the GNU General
|
||||
## Public License version 3.0 requirements will be met:
|
||||
## http://www.gnu.org/copyleft/gpl.html.
|
||||
##
|
||||
## Other Usage
|
||||
## Alternatively, this file may be used in accordance with the terms and
|
||||
## conditions contained in a signed written agreement between you and Nokia.
|
||||
##
|
||||
##
|
||||
##
|
||||
##
|
||||
##
|
||||
##
|
||||
## $QT_END_LICENSE$
|
||||
##
|
||||
#############################################################################
|
||||
|
||||
use v5.008;
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
package Qt::Build;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
build - builds the Qt5 repository with all submodules in order
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<build> [B<-v>|B<--verbose> [n]] [B<-c>|B<--continue> [n]] [B<-j>|B<--jobs> [n]] [B<-n>|B<--dry-run> [n]] [B<--force-qmake>] [modules to build]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This script is used to build all the Qt modules in the correct order. The way of building the Qt
|
||||
modules is fairly complex, since they need to both be built and installed in the proper order, if
|
||||
configured prefix happens to be in a different location than the build directory of QtBase.
|
||||
|
||||
It's not enough to do first a top-level 'make', then a 'make install', since modules would then no
|
||||
be available to the consecutive modules. The build script also handles a situation where Jom
|
||||
exposes a dependency bug with parallel builds, by doing a 'qmake -r' on each individual module as
|
||||
part of each modules build process.
|
||||
|
||||
If no modules to build are passed on the command-line, all the default modules will be built.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over
|
||||
|
||||
=item B<-v> [n], B<--verbose> [n]
|
||||
|
||||
Makes output more verbose. Level of verboseness optional (default: 1).
|
||||
|
||||
=item B<-c> [n], B<--continue> [n]
|
||||
|
||||
Ignore failed submodules, and continue building. Continue has levels (default: 1). The default
|
||||
level will make the build script ignore any errors in a submodule, and continue to build the next
|
||||
dependency. Level 2 means that the --keep-going option is also passed to make for each submodule.
|
||||
|
||||
=item B<-j> [n], B<--jobs> [n]
|
||||
|
||||
Sets the number of parallel builds. Number is optional, but providing no number indicates
|
||||
Unlimited, which you most likely do not want.
|
||||
|
||||
=item B<--force-qmake>
|
||||
|
||||
Forces a 'qmake -r' on a module, even if the build script detects an already existing Makefile in
|
||||
the module.
|
||||
|
||||
=item B<-n> [n], B<--dry-run> [n]
|
||||
|
||||
Does a dry-run, show which actions will be taken without actually performing them. Dry-run has
|
||||
levels (default: 1). The default level only shows which commands this script will execute. Level 2
|
||||
will also do a dry-run on make, showing all the actions the build-script will result in. Level 2
|
||||
requires C<qmake -r> to run, so it is not completely "dry" in its purest sense, although nothing is
|
||||
built.
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
Contact: http://www.qt-project.org/
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
This file is part of the utilities of the Qt Toolkit, and may be used under the terms of the GNU
|
||||
Lesser General Public (LGPL 2.1), or the GNU General Public License (GPL 3.0)
|
||||
|
||||
=cut
|
||||
|
||||
use Carp qw( confess );
|
||||
use English qw( -no_match_vars );
|
||||
use Getopt::Long qw( GetOptionsFromArray );
|
||||
use Pod::Usage qw( pod2usage );
|
||||
use Cwd qw( getcwd );
|
||||
use File::Spec qw( path catfile );
|
||||
use Config;
|
||||
|
||||
sub parse_arguments
|
||||
{
|
||||
my ($self, @args) = @_;
|
||||
|
||||
%{$self} = (%{$self},
|
||||
'verbose' => 0,
|
||||
'continue' => 0,
|
||||
'jobs' => -1,
|
||||
'force_qmake' => 0,
|
||||
'build-submodules' => [],
|
||||
'dry-run' => 0,
|
||||
);
|
||||
|
||||
GetOptionsFromArray(\@args,
|
||||
'verbose|v:1' => \$self->{'verbose'},
|
||||
'continue|c:1' => \$self->{'continue'},
|
||||
'jobs|j:0' => \$self->{'jobs'},
|
||||
'force-qmake' => \$self->{'force_qmake'},
|
||||
'dry-run|n:1' => \$self->{'dry-run'},
|
||||
'help|?' => sub { pod2usage(1); },
|
||||
) || pod2usage(2);
|
||||
|
||||
push(@{$self->{'build-submodules'}}, @args) if (@args);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
# Like `system', but possibly log the command, and die on non-zero exit code
|
||||
sub exe
|
||||
{
|
||||
my ($self, @cmd) = @_;
|
||||
|
||||
print "+ @cmd\n" unless ($self->{quiet});
|
||||
|
||||
# dry-run > 1 means run sub-processes with dry-run too
|
||||
if ($self->{'dry-run'} != 1) {
|
||||
confess "@cmd exited with status $CHILD_ERROR" if (system(@cmd) != 0);
|
||||
}
|
||||
}
|
||||
|
||||
sub dropPrivileges()
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
if ($> == 0) { # EUID == 0: must drop if possible
|
||||
local $! = undef;
|
||||
if ($< != 0) { # UID != 0 (run through setuid). swap UID with EUID
|
||||
($(, $)) = ($), $();
|
||||
die "Cannot lower gid privileges: $!" if $!;
|
||||
($<, $>) = ($>, $<);
|
||||
die "Cannot lower uid privileges: $!" if $!;
|
||||
} else { # UID == 0: run through sudo?
|
||||
if (defined $ENV{SUDO_GID}) {
|
||||
$) = "$ENV{SUDO_GID} $ENV{SUDO_GID}";
|
||||
die "Cannot lower gid privileges: $!" if $!;
|
||||
}
|
||||
if (defined $ENV{SUDO_UID}) {
|
||||
$> = $ENV{SUDO_UID};
|
||||
die "Cannot lower uid privileges: $!" if $!;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub exeHighPriv()
|
||||
{
|
||||
my ($self, @cmd) = @_;
|
||||
# confesses upon system() failure
|
||||
$self->exe(@cmd);
|
||||
}
|
||||
|
||||
sub exeLowPriv()
|
||||
{
|
||||
my ($self, @cmd) = @_;
|
||||
|
||||
if ("$Config{osname}" !~ /mswin/i) {
|
||||
my $ret;
|
||||
my $pid = fork();
|
||||
die "Couldn't fork" unless defined $pid;
|
||||
if ($pid == 0) {
|
||||
$self->dropPrivileges;
|
||||
# just exit on error, exception propagated below
|
||||
eval { $self->exe(@cmd); };
|
||||
exit $?;
|
||||
} else {
|
||||
waitpid($pid, 0);
|
||||
# propagate exception upon system() failure in fork
|
||||
die if ($? != 0);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
# Just like exeHighPriv for now, and confesses upon failure
|
||||
$self->exe(@cmd);
|
||||
}
|
||||
|
||||
sub which {
|
||||
my ($self, $exe) = @_;
|
||||
|
||||
foreach my $path (File::Spec->path()) {
|
||||
my $file = File::Spec->catfile($path, $exe);
|
||||
return $file if -x $file;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
sub detect_configuration
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
die "You need to configure Qt before you try to build it, aborting." if (!-e 'qtbase/.qmake.cache');
|
||||
|
||||
use Cwd qw(abs_path);
|
||||
use Env qw(@PATH);
|
||||
|
||||
my $abs_path = abs_path('qtbase/bin');
|
||||
unshift @PATH, $abs_path;
|
||||
|
||||
my $opts = "";
|
||||
$opts = "-j" if ($self->{'jobs'} >= 0);
|
||||
$opts .= " $self->{'jobs'}" if ($self->{'jobs'} > 0);
|
||||
$self->{'MAKEOPTS'} = $opts;
|
||||
$self->{'MAKE'} = $ENV{MAKE} || "make";
|
||||
|
||||
if ("$Config{osname}" =~ /mswin/i) {
|
||||
my $exe = $self->which("nmake.exe");
|
||||
$exe = $self->which("jom.exe") if (defined $exe && $self->which("jom.exe"));
|
||||
$exe = $self->which("mingw32-make.exe") if (!defined $exe);
|
||||
|
||||
if (defined $exe) {
|
||||
$self->{'MAKE'} = "\"$exe\"";
|
||||
|
||||
if ($exe =~ 'nmake') {
|
||||
# Use the /MP compiler option if using nmake, to use all CPU threads when compiling
|
||||
my $cl = $ENV{'CL'};
|
||||
if (defined $cl) {
|
||||
$cl .= ' /MP';
|
||||
} else {
|
||||
$cl = '/MP';
|
||||
}
|
||||
$ENV{'CL'} = $cl;
|
||||
# Remove the -j option, since nmake cannot handle it.
|
||||
$self->{'MAKEOPTS'} = "";
|
||||
} elsif ($exe =~ 'jom' && $self->{'jobs'} == 0) {
|
||||
# Jom currently doesn't handle the -j (unlimited) option, so remove it.
|
||||
$self->{'MAKEOPTS'} = "";
|
||||
}
|
||||
|
||||
if ($exe =~ 'nmake|jom') {
|
||||
$self->{'MAKEOPTS'} = "/N $self->{'MAKEOPTS'}" if ($self->{'dry-run'} > 1);
|
||||
$self->{'MAKEOPTS'} = "/K $self->{'MAKEOPTS'}" if ($self->{'continue'} > 1);
|
||||
}
|
||||
}
|
||||
|
||||
# Tools needed for building QtWebKit/Windows (Bison, Flex, gperf, iconv)
|
||||
my $abs_path = abs_path('gnuwin32/bin');
|
||||
unshift @PATH, "$abs_path";
|
||||
}
|
||||
if ($self->{'MAKE'} !~ "nmake|jom") {
|
||||
$self->{'MAKEOPTS'} = "--dry-run $self->{'MAKEOPTS'}" if ($self->{'dry-run'} > 1);
|
||||
$self->{'MAKEOPTS'} = "--keep-going $self->{'MAKEOPTS'}" if ($self->{'continue'} > 1);
|
||||
}
|
||||
}
|
||||
|
||||
sub find_pro_file
|
||||
{
|
||||
my ($self, $dir) = @_;
|
||||
my $D;
|
||||
if (opendir($D,$dir)) {
|
||||
($dir =~ /\/$/) || ($dir .= "/");
|
||||
foreach my $file (sort readdir($D)) {
|
||||
if ($file =~ /^.*\.pro$/) {
|
||||
closedir($D);
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
closedir($D);
|
||||
}
|
||||
}
|
||||
|
||||
sub eliminate_empty_modules
|
||||
{
|
||||
my ($self) = @_;
|
||||
foreach my $repo (keys(%{$self->{'deps'}})) {
|
||||
if (!$self->find_pro_file($repo)) {
|
||||
printf "Missing module %s, ignored\n", $repo;
|
||||
delete $self->{'deps'}->{$repo};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sub check_build_module
|
||||
{
|
||||
my ($self, $module) = @_;
|
||||
my @missing_link;
|
||||
foreach my $submod (split(/,/, $self->{'deps'}->{$module})) {
|
||||
next if ($submod =~ /:s$/); # Soft dependency
|
||||
if (defined $self->{'deps'}->{$submod}) {
|
||||
push(@missing_link, $self->check_build_module($submod));
|
||||
} else {
|
||||
push(@missing_link, $submod);
|
||||
}
|
||||
}
|
||||
return @missing_link;
|
||||
}
|
||||
|
||||
sub check_build_modules
|
||||
{
|
||||
my ($self, $fail) = @_;
|
||||
my $letsdie = 0;
|
||||
foreach my $module (@{$self->{'build-submodules'}}) {
|
||||
if (defined $self->{'deps'}->{$module}) {
|
||||
my @missing_link = $self->check_build_module($module);
|
||||
if (scalar @missing_link) {
|
||||
$letsdie = 1;
|
||||
my $mods = join(", ", @missing_link);
|
||||
print STDERR "Ignoring module '$module': requires $mods\n";
|
||||
}
|
||||
} else {
|
||||
print STDERR "No module named '$module'\n";
|
||||
$letsdie = 1;
|
||||
}
|
||||
}
|
||||
die "FAIL: Missing module dependencies, build aborted." if ($letsdie && $fail);
|
||||
}
|
||||
|
||||
sub resolve_soft_dependencies
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
my @nondefault = @{$self->{'nondefault'}};
|
||||
foreach my $module (keys(%{$self->{'deps'}})) {
|
||||
my @deps = split(/,/, $self->{'deps'}->{$module});
|
||||
my @newdeps;
|
||||
foreach my $dep (@deps) {
|
||||
if ($dep =~ /(.*):s$/) {
|
||||
my $mod = $1;
|
||||
if (defined $self->{'deps'}->{$mod}
|
||||
&& !grep {$_ eq $mod} @nondefault) {
|
||||
push(@newdeps, $mod);
|
||||
}
|
||||
} else {
|
||||
push(@newdeps, $dep);
|
||||
}
|
||||
}
|
||||
$self->{'deps'}->{$module} = join(",", @newdeps);
|
||||
}
|
||||
}
|
||||
|
||||
sub mark_as_finished
|
||||
{
|
||||
my ($self, $doneModule) = @_;
|
||||
|
||||
delete $self->{'deps'}->{$doneModule};
|
||||
foreach my $module (keys(%{$self->{'deps'}})) {
|
||||
my @deps = split(/,/, $self->{'deps'}->{$module});
|
||||
@deps = grep { $_ !~ /$doneModule/ } @deps;
|
||||
$self->{'deps'}->{$module} = join(",", @deps);
|
||||
}
|
||||
}
|
||||
|
||||
sub get_next_modules
|
||||
{
|
||||
my ($self, $module) = @_;
|
||||
|
||||
my @nextModules;
|
||||
my $deps = $self->{'deps'}->{$module};
|
||||
return if (!defined $deps);
|
||||
$self->{'seenHash'}->{$module}++;
|
||||
if ($deps eq '') {
|
||||
push (@nextModules, $module);
|
||||
return @nextModules;
|
||||
}
|
||||
|
||||
foreach my $dep (split(/,/, $deps)) {
|
||||
push (@nextModules, $self->get_next_modules($dep)) unless $self->{'seenHash'}->{$dep};
|
||||
}
|
||||
|
||||
return @nextModules;
|
||||
}
|
||||
|
||||
sub get_all_next_modules
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
$self->{'seenHash'} = ();
|
||||
|
||||
my @nextModules;
|
||||
foreach my $module (@{$self->{'build-submodules'}}) {
|
||||
my @mods = $self->get_next_modules($module);
|
||||
push(@nextModules, @mods);
|
||||
}
|
||||
|
||||
my %seen = ();
|
||||
my @uniqModules;
|
||||
foreach my $item (@nextModules) {
|
||||
push(@uniqModules, $item) unless $seen{$item}++;
|
||||
}
|
||||
|
||||
return @uniqModules;
|
||||
}
|
||||
|
||||
sub build_project
|
||||
{
|
||||
my ($self, $module) = @_;
|
||||
my $build_command = $self->{'buildcmds'}->{$module};
|
||||
my $install_command = $self->{'instcmds'}->{$module};
|
||||
if (!defined $build_command) {
|
||||
if (!-e "$module/Makefile") {
|
||||
$self->exeLowPriv("cd $module && qmake -r");
|
||||
}
|
||||
$build_command = "$self->{MAKE} $self->{MAKEOPTS}";
|
||||
}
|
||||
eval { $self->exeLowPriv("cd $module && $build_command"); };
|
||||
if ($@) {
|
||||
print STDERR "'cd $module && $build_command' failed: $?\n";
|
||||
if ($self->{'continue'}) {
|
||||
print STDERR "Ignoring failure building $module (--continue)\n";
|
||||
} else {
|
||||
confess "Fatal failure building $module";
|
||||
}
|
||||
}
|
||||
$install_command = "$self->{MAKE} install" if (!defined $install_command);
|
||||
### TODO: Should be fixed after the alpha
|
||||
unless ("$Config{osname}" =~ /(dar|ms)win/i) {
|
||||
eval { $self->exeHighPriv("cd $module && $install_command"); };
|
||||
if ($@) {
|
||||
print STDERR "'cd $module && $install_command failed: $?\n";
|
||||
if ($self->{'continue'}) {
|
||||
print STDERR "Ignoring failure installing $module (--continue)\n";
|
||||
} else {
|
||||
confess "Fatal failure installing $module";
|
||||
}
|
||||
}
|
||||
}
|
||||
$self->mark_as_finished($module);
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub build_qt
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
printf "OS Name ........ %s\n", $Config{osname};
|
||||
printf "Verbose ........ %s\n", ($self->{'verbose'} ? $self->{'verbose'} : "no");
|
||||
printf "Continue ....... %s\n", ($self->{'continue'} ? "yes" : "no");
|
||||
printf "Force qmake..... %s\n", ($self->{'force_qmake'} ? "yes" : "no");
|
||||
printf "Jobs ........... %s\n", ($self->{'jobs'} >= 0 ? $self->{'jobs'} : "unset");
|
||||
|
||||
my $path = $ENV{'PATH'};
|
||||
print "PATH $path\n";
|
||||
|
||||
print "Modules to build:\n";
|
||||
my $mods = "(all present)";
|
||||
$mods = join(", ", @{$self->{'build-submodules'}}) if (@{$self->{'build-submodules'}});
|
||||
print " $mods\n";
|
||||
|
||||
while (my @modules = $self->get_all_next_modules) {
|
||||
foreach my $module (@modules) {
|
||||
print "build $module...\n";
|
||||
$self->build_project($module);
|
||||
}
|
||||
}
|
||||
|
||||
print "build done!\n";
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub new
|
||||
{
|
||||
my ($class, @arguments) = @_;
|
||||
|
||||
my $self = {};
|
||||
bless $self, $class;
|
||||
|
||||
$self->parse_arguments(@arguments);
|
||||
$self->detect_configuration;
|
||||
|
||||
my $depfile = "build.dependencies";
|
||||
my $result;
|
||||
our (%build_dependencies, %build_commands, %install_commands, @nondefault_modules);
|
||||
|
||||
# following variables may be expanded in the evaluation below
|
||||
my $MAKEOPTS = $self->{'MAKEOPTS'};
|
||||
my $MAKE = $self->{'MAKE'};
|
||||
|
||||
unless ($result = do $depfile) {
|
||||
die "build couldn't parse $depfile: $@" if $@;
|
||||
die "build couldn't execute $depfile: $!" unless defined $result;
|
||||
}
|
||||
|
||||
$self->{'deps'} = \%build_dependencies;
|
||||
$self->{'buildcmds'} = \%build_commands;
|
||||
$self->{'instcmds'} = \%install_commands;
|
||||
$self->{'nondefault'} = \@nondefault_modules;
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub run
|
||||
{
|
||||
my ($self) = @_;
|
||||
|
||||
$self->eliminate_empty_modules;
|
||||
|
||||
if (scalar @{$self->{'build-submodules'}} > 0) {
|
||||
$self->check_build_modules(1);
|
||||
} else {
|
||||
my @default = keys(%{$self->{'deps'}});
|
||||
my @nondefault = @{$self->{'nondefault'}};
|
||||
foreach my $item (@nondefault) {
|
||||
@default = grep { $_ ne $item } @default;
|
||||
}
|
||||
push(@{$self->{'build-submodules'}}, @default);
|
||||
$self->check_build_modules(0);
|
||||
}
|
||||
|
||||
$self->resolve_soft_dependencies;
|
||||
|
||||
$self->build_qt;
|
||||
|
||||
# print Dumper($self);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
#==============================================================================
|
||||
|
||||
Qt::Build->new(@ARGV)->run if (!caller);
|
||||
1;
|
||||
@@ -1,63 +0,0 @@
|
||||
# Platform independent modules
|
||||
|
||||
# Dependencies separated with comma ','
|
||||
# Dependencies with ':s' appended indicate soft dependencies, which
|
||||
# means that they are a dependency if the module is present, if not
|
||||
# they are ignored.
|
||||
|
||||
use Config;
|
||||
%build_dependencies = (
|
||||
"qlalr" => "qtbase",
|
||||
"qt3d" => "qtbase,qtdeclarative",
|
||||
"qtbase" => "",
|
||||
"qtconnectivity" => "qtsystems",
|
||||
"qtdeclarative" => "qtbase,qtxmlpatterns,qtjsbackend",
|
||||
"qtdoc" => "qtbase,qtdeclarative",
|
||||
"qtfeedback" => "qtbase,qtmultimedia,qtdeclarative",
|
||||
"qtgraphicaleffects" => "qtbase,qtdeclarative,qtxmlpatterns",
|
||||
"qtimageformats" => "qtbase",
|
||||
"qtjsbackend" => "qtbase",
|
||||
"qtlocation" => "qtbase,qtdeclarative,qt3d",
|
||||
"qtmultimedia" => "qtbase,qtdeclarative",
|
||||
"qtpim" => "qtdeclarative",
|
||||
"qtqa" => "qtbase",
|
||||
"qtquick1" => "qtbase,qtscript,qtxmlpatterns,qttools,qtsvg:s",
|
||||
"qtscript" => "qtbase",
|
||||
"qtsensors" => "qtbase,qtdeclarative",
|
||||
"qtsvg" => "qtbase",
|
||||
"qtsystems" => "qtbase,qtdeclarative",
|
||||
"qttools" => "qtbase,qtdeclarative,qtwebkit:s",
|
||||
"qttranslations" => "qttools",
|
||||
"qtwebkit" => "qtbase,qtscript,qtdeclarative,qtquick1,qtlocation",
|
||||
"qtwebkit-examples-and-demos" => "qtwebkit",
|
||||
"qtxmlpatterns" => "qtbase",
|
||||
);
|
||||
|
||||
@nondefault_modules = (
|
||||
"qtwayland",
|
||||
);
|
||||
|
||||
if ("$Config{osname}" =~ /mswin/i) {
|
||||
%build_commands = (
|
||||
"qtwebkit" => "perl Tools/Scripts/build-webkit --qt --no-netscape-plugin --no-webkit2",
|
||||
);
|
||||
push @nondefault_modules, ("qtwebkit", "qtwebkit-examples-and-demos");
|
||||
} else {
|
||||
%build_commands = (
|
||||
"qtwebkit" => "perl Tools/Scripts/build-webkit --qt --release --no-netscape-plugin",
|
||||
);
|
||||
}
|
||||
|
||||
%install_commands = (
|
||||
"qtwebkit" => "perl Tools/Scripts/build-webkit --qt --makeargs=\"install\"",
|
||||
);
|
||||
|
||||
# Platform specific modules
|
||||
|
||||
if ("$Config{osname}" =~ /linux/i) {
|
||||
$build_dependencies{"qtwayland"} = "qtbase,qtdeclarative";
|
||||
}
|
||||
|
||||
if ("$Config{osname}" =~ /(ms|cyg)win/i) {
|
||||
$build_dependencies{"qtactiveqt"} = "qtbase";
|
||||
}
|
||||
68
configure
vendored
68
configure
vendored
@@ -1,39 +1,39 @@
|
||||
#!/usr/bin/perl
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
## Contact: http://www.qt-project.org/
|
||||
## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
## Contact: http://www.qt-project.org/legal
|
||||
##
|
||||
## This file is part of the build tools of the Qt Toolkit.
|
||||
##
|
||||
## $QT_BEGIN_LICENSE:LGPL$
|
||||
## GNU Lesser General Public License Usage
|
||||
## This file may be used under the terms of the GNU Lesser General Public
|
||||
## License version 2.1 as published by the Free Software Foundation and
|
||||
## appearing in the file LICENSE.LGPL included in the packaging of this
|
||||
## file. Please review the following information to ensure the GNU Lesser
|
||||
## General Public License version 2.1 requirements will be met:
|
||||
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
## Commercial License Usage
|
||||
## Licensees holding valid commercial Qt 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 Digia. For licensing terms and
|
||||
## conditions see http://qt.digia.com/licensing. For further information
|
||||
## use the contact form at http://qt.digia.com/contact-us.
|
||||
##
|
||||
## In addition, as a special exception, Nokia gives you certain additional
|
||||
## rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
## GNU Lesser General Public License Usage
|
||||
## Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
## General Public License version 2.1 as published by the Free Software
|
||||
## Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
## packaging of this file. Please review the following information to
|
||||
## ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
##
|
||||
## In addition, as a special exception, Digia gives you certain additional
|
||||
## rights. These rights are described in the Digia Qt LGPL Exception
|
||||
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
##
|
||||
## GNU General Public License Usage
|
||||
## Alternatively, this file may be used under the terms of the GNU General
|
||||
## Public License version 3.0 as published by the Free Software Foundation
|
||||
## and appearing in the file LICENSE.GPL included in the packaging of this
|
||||
## file. Please review the following information to ensure the GNU General
|
||||
## Public License version 3.0 requirements will be met:
|
||||
## http://www.gnu.org/copyleft/gpl.html.
|
||||
##
|
||||
## Other Usage
|
||||
## Alternatively, this file may be used in accordance with the terms and
|
||||
## conditions contained in a signed written agreement between you and Nokia.
|
||||
##
|
||||
##
|
||||
##
|
||||
##
|
||||
## Alternatively, this file may be used under the terms of the GNU
|
||||
## General Public License version 3.0 as published by the Free Software
|
||||
## Foundation and appearing in the file LICENSE.GPL included in the
|
||||
## packaging of this file. Please review the following information to
|
||||
## ensure the GNU General Public License version 3.0 requirements will be
|
||||
## met: http://www.gnu.org/copyleft/gpl.html.
|
||||
##
|
||||
##
|
||||
## $QT_END_LICENSE$
|
||||
@@ -73,9 +73,7 @@ sub ensureDir {
|
||||
# `system', but also print the command
|
||||
sub system_v
|
||||
{
|
||||
print "+ ";
|
||||
print @_;
|
||||
print "\n";
|
||||
print "+ @_\n";
|
||||
return system(@_);
|
||||
}
|
||||
|
||||
@@ -90,23 +88,13 @@ if (! -e "$relpath/qtbase/configure") {
|
||||
|
||||
ensureDir("$outpath/qtbase");
|
||||
chdir("$outpath/qtbase");
|
||||
if (-e ".qmake.cache") {
|
||||
# Remove this so we can detect if configure finished properly
|
||||
unlink ".qmake.cache";
|
||||
}
|
||||
my $ret = system_v("$relpath/qtbase/configure @ARGV");
|
||||
my $ret = system_v("$relpath/qtbase/configure", @ARGV);
|
||||
if ($ret != 0) {
|
||||
print "*** qtbase/configure exited with non-zero status.\n";
|
||||
exit ($ret>>8) ;
|
||||
}
|
||||
if (! -e ".qmake.cache") {
|
||||
# Even though there was no error code, this file wasn't created
|
||||
# so configure didn't finish properly. This is probably because
|
||||
# the user passed -help
|
||||
exit 0;
|
||||
}
|
||||
|
||||
chdir("$outpath");
|
||||
|
||||
$ret = system_v("$outpath/qtbase/bin/qmake $relpath/qt.pro");
|
||||
$ret = system_v("$outpath/qtbase/bin/qmake", "$relpath/qt.pro");
|
||||
exit ($ret>>8);
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
|
||||
::
|
||||
:: Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
:: Contact: http://www.qt-project.org/
|
||||
:: Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
:: Contact: http://www.qt-project.org/legal
|
||||
::
|
||||
:: This file is part of the tools applications of the Qt Toolkit.
|
||||
::
|
||||
:: $QT_BEGIN_LICENSE:LGPL$
|
||||
:: GNU Lesser General Public License Usage
|
||||
:: This file may be used under the terms of the GNU Lesser General Public
|
||||
:: License version 2.1 as published by the Free Software Foundation and
|
||||
:: appearing in the file LICENSE.LGPL included in the packaging of this
|
||||
:: file. Please review the following information to ensure the GNU Lesser
|
||||
:: General Public License version 2.1 requirements will be met:
|
||||
:: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
:: Commercial License Usage
|
||||
:: Licensees holding valid commercial Qt 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 Digia. For licensing terms and
|
||||
:: conditions see http://qt.digia.com/licensing. For further information
|
||||
:: use the contact form at http://qt.digia.com/contact-us.
|
||||
::
|
||||
:: In addition, as a special exception, Nokia gives you certain additional
|
||||
:: rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
:: GNU Lesser General Public License Usage
|
||||
:: Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
:: General Public License version 2.1 as published by the Free Software
|
||||
:: Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
:: packaging of this file. Please review the following information to
|
||||
:: ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
:: will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
::
|
||||
:: In addition, as a special exception, Digia gives you certain additional
|
||||
:: rights. These rights are described in the Digia Qt LGPL Exception
|
||||
:: version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
::
|
||||
:: GNU General Public License Usage
|
||||
:: Alternatively, this file may be used under the terms of the GNU General
|
||||
:: Public License version 3.0 as published by the Free Software Foundation
|
||||
:: and appearing in the file LICENSE.GPL included in the packaging of this
|
||||
:: file. Please review the following information to ensure the GNU General
|
||||
:: Public License version 3.0 requirements will be met:
|
||||
:: http://www.gnu.org/copyleft/gpl.html.
|
||||
::
|
||||
:: Other Usage
|
||||
:: Alternatively, this file may be used in accordance with the terms and
|
||||
:: conditions contained in a signed written agreement between you and Nokia.
|
||||
::
|
||||
::
|
||||
::
|
||||
::
|
||||
:: Alternatively, this file may be used under the terms of the GNU
|
||||
:: General Public License version 3.0 as published by the Free Software
|
||||
:: Foundation and appearing in the file LICENSE.GPL included in the
|
||||
:: packaging of this file. Please review the following information to
|
||||
:: ensure the GNU General Public License version 3.0 requirements will be
|
||||
:: met: http://www.gnu.org/copyleft/gpl.html.
|
||||
::
|
||||
::
|
||||
:: $QT_END_LICENSE$
|
||||
|
||||
9
gnuwin32/README
Normal file
9
gnuwin32/README
Normal file
@@ -0,0 +1,9 @@
|
||||
This directory contains the Windows binaries of various tools such as bison
|
||||
from the GnuWin32 project (http://gnuwin32.sourceforge.net/). We've put them
|
||||
here for your convenience, as they are needed to build projects such as
|
||||
QtWebKit.
|
||||
|
||||
Aside from GnuWin32 binaries this directory also contains a distribution of Win
|
||||
flex-bison project (http://sourceforge.net/projects/winflexbison/), which provides
|
||||
much newer ports of Flex and Bison than what GnuWin32 provides.
|
||||
|
||||
BIN
gnuwin32/bin/win_flex.exe
Normal file
BIN
gnuwin32/bin/win_flex.exe
Normal file
Binary file not shown.
47
gnuwin32/patches/win_flex.patch
Normal file
47
gnuwin32/patches/win_flex.patch
Normal file
@@ -0,0 +1,47 @@
|
||||
Index: flex/src/main.c
|
||||
===================================================================
|
||||
--- flex/src/main.c (revision 24)
|
||||
+++ flex/src/main.c (working copy)
|
||||
@@ -112,7 +112,7 @@
|
||||
struct yytbl_writer tableswr;
|
||||
|
||||
int prev_stdout = 0;
|
||||
-char *flex_temp_out_main="~flex_temp_out_main";
|
||||
+char *flex_temp_out_main = 0;
|
||||
|
||||
/* Make sure program_name is initialized so we don't crash if writing
|
||||
* out an error message before getting the program name from argv[0].
|
||||
@@ -767,6 +767,8 @@
|
||||
tblsiz);
|
||||
}
|
||||
|
||||
+ free (flex_temp_out_main);
|
||||
+ flex_temp_out_main = 0;
|
||||
exit (exit_status);
|
||||
}
|
||||
|
||||
@@ -779,8 +781,10 @@
|
||||
{
|
||||
int i, sawcmpflag, rv, optind;
|
||||
char *arg;
|
||||
+ char flex_temp_out_main_template[] = "~flex_temp_out_main_XXXXXX";
|
||||
scanopt_t sopt;
|
||||
|
||||
+ flex_temp_out_main = _strdup(_mktemp(flex_temp_out_main_template));
|
||||
printstats = syntaxerror = trace = spprdflt = false;
|
||||
lex_compat = posix_compat = C_plus_plus = backing_up_report =
|
||||
ddebug = fulltbl = false;
|
||||
Index: flex/src/filter.c
|
||||
===================================================================
|
||||
--- flex/src/filter.c (revision 24)
|
||||
+++ flex/src/filter.c (working copy)
|
||||
@@ -86,7 +86,8 @@
|
||||
|
||||
/* Get some more or less random data. */
|
||||
{
|
||||
- static unsigned long long g_value = 827363;
|
||||
+ static unsigned long long g_value;
|
||||
+ g_value = _getpid();
|
||||
g_value += 100;
|
||||
random_time_bits = (((unsigned long long)234546 << 32)
|
||||
| (unsigned long long)g_value);
|
||||
136
init-repository
136
init-repository
@@ -1,39 +1,39 @@
|
||||
#!/usr/bin/env perl
|
||||
#############################################################################
|
||||
##
|
||||
## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
|
||||
## Contact: http://www.qt-project.org/
|
||||
## Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
|
||||
## Contact: http://www.qt-project.org/legal
|
||||
##
|
||||
## This file is part of the utilities of the Qt Toolkit.
|
||||
##
|
||||
## $QT_BEGIN_LICENSE:LGPL$
|
||||
## GNU Lesser General Public License Usage
|
||||
## This file may be used under the terms of the GNU Lesser General Public
|
||||
## License version 2.1 as published by the Free Software Foundation and
|
||||
## appearing in the file LICENSE.LGPL included in the packaging of this
|
||||
## file. Please review the following information to ensure the GNU Lesser
|
||||
## General Public License version 2.1 requirements will be met:
|
||||
## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
## Commercial License Usage
|
||||
## Licensees holding valid commercial Qt 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 Digia. For licensing terms and
|
||||
## conditions see http://qt.digia.com/licensing. For further information
|
||||
## use the contact form at http://qt.digia.com/contact-us.
|
||||
##
|
||||
## In addition, as a special exception, Nokia gives you certain additional
|
||||
## rights. These rights are described in the Nokia Qt LGPL Exception
|
||||
## GNU Lesser General Public License Usage
|
||||
## Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
## General Public License version 2.1 as published by the Free Software
|
||||
## Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
## packaging of this file. Please review the following information to
|
||||
## ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
##
|
||||
## In addition, as a special exception, Digia gives you certain additional
|
||||
## rights. These rights are described in the Digia Qt LGPL Exception
|
||||
## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||
##
|
||||
## GNU General Public License Usage
|
||||
## Alternatively, this file may be used under the terms of the GNU General
|
||||
## Public License version 3.0 as published by the Free Software Foundation
|
||||
## and appearing in the file LICENSE.GPL included in the packaging of this
|
||||
## file. Please review the following information to ensure the GNU General
|
||||
## Public License version 3.0 requirements will be met:
|
||||
## http://www.gnu.org/copyleft/gpl.html.
|
||||
##
|
||||
## Other Usage
|
||||
## Alternatively, this file may be used in accordance with the terms and
|
||||
## conditions contained in a signed written agreement between you and Nokia.
|
||||
##
|
||||
##
|
||||
##
|
||||
##
|
||||
## Alternatively, this file may be used under the terms of the GNU
|
||||
## General Public License version 3.0 as published by the Free Software
|
||||
## Foundation and appearing in the file LICENSE.GPL included in the
|
||||
## packaging of this file. Please review the following information to
|
||||
## ensure the GNU General Public License version 3.0 requirements will be
|
||||
## met: http://www.gnu.org/copyleft/gpl.html.
|
||||
##
|
||||
##
|
||||
## $QT_END_LICENSE$
|
||||
@@ -91,6 +91,8 @@ git repository.
|
||||
|
||||
Only initialize the specified subset of modules given as the argument. Specified
|
||||
modules must already exist in .gitmodules.
|
||||
The string "all" results in cloning all known modules. The default is the set of
|
||||
maintained modules.
|
||||
|
||||
=item --no-update
|
||||
|
||||
@@ -102,7 +104,7 @@ Skip the `git submodule update' command.
|
||||
Set git config to ignore submodules by default when doing operations on the
|
||||
qt5 repo, such as `pull', `fetch', `diff' etc.
|
||||
|
||||
This option is default for --nokia-developer/--brisbane.
|
||||
This option is default for --nokia-developer.
|
||||
|
||||
After using this option, pass `--ignore-submodules=none' to git to override
|
||||
it as needed.
|
||||
@@ -119,15 +121,10 @@ B<Repository options:>
|
||||
Switch to internal Nokia URLs.
|
||||
|
||||
|
||||
=item --brisbane
|
||||
|
||||
Switch to internal Nokia URLs and make use of the Brisbane git mirrors.
|
||||
(Implies `--mirror' and `--mirror-webkit').
|
||||
|
||||
=item --berlin
|
||||
|
||||
Switch to internal Nokia URLs and make use of the Berlin git mirrors.
|
||||
(Implies `--mirror' and `--mirror-webkit').
|
||||
(Implies `--mirror').
|
||||
|
||||
|
||||
=item --ssh
|
||||
@@ -197,10 +194,6 @@ For example:
|
||||
The mirror is permitted to contain a subset of the submodules; any
|
||||
missing modules will fall back to the canonical URLs.
|
||||
|
||||
=item --mirror-webkit <url>
|
||||
|
||||
Uses <url> as the URL for the webkit git mirror.
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
@@ -226,43 +219,64 @@ my %GERRIT_REPOS = map { $_ => "qt/$_" } qw(
|
||||
qtconnectivity
|
||||
qtdeclarative
|
||||
qtdoc
|
||||
qtdocgallery
|
||||
qtfeedback
|
||||
qtgraphicaleffects
|
||||
qtimageformats
|
||||
qtjsondb
|
||||
qtjsbackend
|
||||
qtlocation
|
||||
qtmultimedia
|
||||
qtpim
|
||||
qtqa
|
||||
qtquick1
|
||||
qtquickcontrols
|
||||
qtrepotools
|
||||
qtscript
|
||||
qtsensors
|
||||
qtserialport
|
||||
qtsvg
|
||||
qtsystems
|
||||
qttools
|
||||
qttranslations
|
||||
qtwayland
|
||||
qtwebkit-examples-and-demos
|
||||
qtwebkit
|
||||
qtwebkit-examples
|
||||
qtx11extras
|
||||
qtxmlpatterns
|
||||
);
|
||||
|
||||
my @DEFAULT_REPOS = qw(
|
||||
qtactiveqt
|
||||
qtbase
|
||||
qtdeclarative
|
||||
qtdoc
|
||||
qtgraphicaleffects
|
||||
qtimageformats
|
||||
qtjsbackend
|
||||
qtmultimedia
|
||||
qtqa
|
||||
qtquick1
|
||||
qtquickcontrols
|
||||
qtrepotools
|
||||
qtscript
|
||||
qtsensors
|
||||
qtserialport
|
||||
qtsvg
|
||||
qttools
|
||||
qttranslations
|
||||
qtwebkit
|
||||
qtwebkit-examples
|
||||
qtx11extras
|
||||
qtxmlpatterns
|
||||
);
|
||||
|
||||
my $GERRIT_SSH_BASE
|
||||
= 'ssh://@USER@codereview.qt-project.org@PORT@/';
|
||||
|
||||
my $BNE_MIRROR_URL_BASE
|
||||
= 'git://bq-git.apac.nokia.com/qtsoftware/';
|
||||
|
||||
my $BNE_MIRROR_WEBKIT_URL
|
||||
= 'git://bq-git.apac.nokia.com/qtsoftware/research/gitorious-org-webkit-qtwebkit-mirror.git';
|
||||
|
||||
my $BER_MIRROR_URL_BASE
|
||||
= 'git://ber-git.europe.nokia.com/';
|
||||
|
||||
my $BER_MIRROR_WEBKIT_URL
|
||||
= 'git://ber-git.europe.nokia.com/qtwebkit/qtwebkit.git';
|
||||
|
||||
|
||||
sub new
|
||||
{
|
||||
my ($class, @arguments) = @_;
|
||||
@@ -301,12 +315,11 @@ sub parse_arguments
|
||||
'force' => 0 ,
|
||||
'ignore-submodules' => 0 ,
|
||||
'mirror-url' => "",
|
||||
'mirror-webkit-url' => "",
|
||||
'nokia-developer' => 0 ,
|
||||
'protocol' => "",
|
||||
'update' => 1 ,
|
||||
'webkit' => 1 ,
|
||||
'module-subset' => "",
|
||||
'module-subset' => join(",", @DEFAULT_REPOS),
|
||||
);
|
||||
|
||||
GetOptionsFromArray(\@args,
|
||||
@@ -315,7 +328,6 @@ sub parse_arguments
|
||||
'copy-objects' => \$self->{qw{ detach-alternates }},
|
||||
'force' => \$self->{qw{ force }},
|
||||
'ignore-submodules' => \$self->{qw{ ignore-submodules }},
|
||||
'mirror-webkit=s' => \$self->{qw{ mirror-webkit-url }},
|
||||
'mirror=s' => \$self->{qw{ mirror-url }},
|
||||
'nokia-developer' => \$self->{qw{ nokia-developer }},
|
||||
'quiet' => \$self->{qw{ quiet }},
|
||||
@@ -327,19 +339,10 @@ sub parse_arguments
|
||||
'http' => sub { $self->{protocol} = 'http'; },
|
||||
'ssh|ssh-protocol' => sub { $self->{protocol} = 'ssh'; },
|
||||
|
||||
'brisbane|brisbane-nokia-developer' => sub {
|
||||
$self->{'nokia-developer'} = 1;
|
||||
$self->{'protocol'} = 'internal';
|
||||
$self->{'mirror-url'} = $BNE_MIRROR_URL_BASE;
|
||||
$self->{'mirror-webkit-url'} = $BNE_MIRROR_WEBKIT_URL;
|
||||
$self->{'ignore-submodules'} = 1;
|
||||
},
|
||||
|
||||
'berlin|berlin-nokia-developer' => sub {
|
||||
$self->{'nokia-developer'} = 1;
|
||||
$self->{'protocol'} = 'internal';
|
||||
$self->{'mirror-url'} = $BER_MIRROR_URL_BASE;
|
||||
$self->{'mirror-webkit-url'} = $BER_MIRROR_WEBKIT_URL;
|
||||
},
|
||||
|
||||
'nokia-developer' => sub {
|
||||
@@ -357,7 +360,9 @@ sub parse_arguments
|
||||
# Replace any double trailing slashes from end of mirror
|
||||
$self->{'mirror-url'} =~ s{//+$}{/};
|
||||
|
||||
if ($self->{'module-subset'}) {
|
||||
if ($self->{'module-subset'} eq "all") {
|
||||
$self->{'module-subset'} = "";
|
||||
} else {
|
||||
$self->{'module-subset'} = {
|
||||
map { $_ => 1 } split(qr{,}, $self->{'module-subset'})
|
||||
};
|
||||
@@ -414,7 +419,7 @@ sub git_disable_webkit_submodule
|
||||
my ($self) = @_;
|
||||
|
||||
$self->exe('git', 'config', '--remove', 'submodule.qtwebkit');
|
||||
$self->exe('git', 'config', '--remove', 'submodule.qtwebkit-examples-and-demos');
|
||||
$self->exe('git', 'config', '--remove', 'submodule.qtwebkit-examples');
|
||||
|
||||
return;
|
||||
}
|
||||
@@ -450,8 +455,6 @@ sub git_set_submodule_config
|
||||
my $value = $2;
|
||||
|
||||
if ($protocol) {
|
||||
# WebKit is special, and has only external link.
|
||||
if (!($key eq 'qtwebkit' && $protocol eq 'internal')) {
|
||||
# qt-labs projects are still hosted under qt internally.
|
||||
if ($protocol ne 'http') {
|
||||
$value =~ s,^git://gitorious\.org/qt-labs/,${url_base_for_protocol}qt/,;
|
||||
@@ -459,7 +462,6 @@ sub git_set_submodule_config
|
||||
|
||||
# assume all other projects hosted under gitorious publicly.
|
||||
$value =~ s,^git://gitorious\.org/,$url_base_for_protocol,;
|
||||
}
|
||||
}
|
||||
|
||||
$self->exe('git', 'config', "submodule.$key.url", $value);
|
||||
@@ -525,7 +527,6 @@ sub git_clone_one_submodule
|
||||
|
||||
my $alternates = $self->{ 'alternates' };
|
||||
my $mirror_url = $self->{ 'mirror-url' };
|
||||
my $mirror_webkit_url = $self->{ 'mirror-webkit-url' };
|
||||
my $protocol = $self->{ 'protocol' };
|
||||
|
||||
# `--reference FOO' args for the clone, if any.
|
||||
@@ -542,13 +543,10 @@ sub git_clone_one_submodule
|
||||
}
|
||||
|
||||
my $mirror;
|
||||
if ($mirror_url && ($submodule ne 'qtwebkit')) {
|
||||
if ($mirror_url) {
|
||||
$mirror = $mirror_url."qt/$submodule";
|
||||
$mirror .= ".git" unless (-d $mirror); # Support local disk mirror
|
||||
}
|
||||
elsif ($mirror_webkit_url && ($submodule eq 'qtwebkit')) {
|
||||
$mirror = $mirror_webkit_url;
|
||||
}
|
||||
|
||||
if ($mirror) {
|
||||
# Only use the mirror if it can be reached.
|
||||
|
||||
2
qlalr
2
qlalr
Submodule qlalr updated: c786df115d...d7064c2c7d
240
qt.pro
240
qt.pro
@@ -1,184 +1,86 @@
|
||||
# Create the super cache so modules will add themselves to it.
|
||||
cache(, super)
|
||||
|
||||
CONFIG += build_pass # hack to disable the .qmake.super auto-add
|
||||
load(qt_build_config)
|
||||
|
||||
TEMPLATE = subdirs
|
||||
|
||||
module_qtbase.subdir = qtbase
|
||||
module_qtbase.target = module-qtbase
|
||||
defineReplace(moduleName) {
|
||||
return(module_$$replace(1, -, _))
|
||||
}
|
||||
|
||||
module_qtsvg.subdir = qtsvg
|
||||
module_qtsvg.target = module-qtsvg
|
||||
module_qtsvg.depends = module_qtbase
|
||||
# Arguments: module name, [mandatory deps], [optional deps], [project file]
|
||||
defineTest(addModule) {
|
||||
contains(QT_SKIP_MODULES, $$1): return(false)
|
||||
mod = $$moduleName($$1)
|
||||
|
||||
module_qtxmlpatterns.subdir = qtxmlpatterns
|
||||
module_qtxmlpatterns.target = module-qtxmlpatterns
|
||||
module_qtxmlpatterns.depends = module_qtbase
|
||||
isEmpty(4) {
|
||||
!exists($$1/$${1}.pro): return(false)
|
||||
$${mod}.subdir = $$1
|
||||
export($${mod}.subdir)
|
||||
} else {
|
||||
!exists($$1/$${4}): return(false)
|
||||
$${mod}.file = $$1/$$4
|
||||
$${mod}.makefile = Makefile
|
||||
export($${mod}.file)
|
||||
export($${mod}.makefile)
|
||||
}
|
||||
|
||||
module_qtscript.subdir = qtscript
|
||||
module_qtscript.target = module-qtscript
|
||||
module_qtscript.depends = module_qtbase
|
||||
for(d, 2) {
|
||||
dn = $$moduleName($$d)
|
||||
!contains(SUBDIRS, $$dn): \
|
||||
return(false)
|
||||
$${mod}.depends += $$dn
|
||||
}
|
||||
for(d, 3) {
|
||||
dn = $$moduleName($$d)
|
||||
contains(SUBDIRS, $$dn): \
|
||||
$${mod}.depends += $$dn
|
||||
}
|
||||
!isEmpty($${mod}.depends): \
|
||||
export($${mod}.depends)
|
||||
|
||||
module_qtjsbackend.subdir = qtjsbackend
|
||||
module_qtjsbackend.target = module-qtjsbackend
|
||||
module_qtjsbackend.depends = module_qtbase
|
||||
$${mod}.target = module-$$1
|
||||
export($${mod}.target)
|
||||
|
||||
module_qtdeclarative.subdir = qtdeclarative
|
||||
module_qtdeclarative.target = module-qtdeclarative
|
||||
module_qtdeclarative.depends = module_qtbase module_qtjsbackend
|
||||
|
||||
module_qtwebkit.file = qtwebkit.pri
|
||||
module_qtwebkit.makefile = Makefile.qtwebkit
|
||||
module_qtwebkit.depends = module_qtbase module_qtdeclarative
|
||||
# The qtwebkit subdir does not follow the "module-*" scheme, so make our own target that does.
|
||||
module_qtwebkit_target.target = module-qtwebkit
|
||||
module_qtwebkit_target.commands =
|
||||
module_qtwebkit_target.depends = sub-qtwebkit-pri
|
||||
QMAKE_EXTRA_TARGETS += module_qtwebkit_target
|
||||
|
||||
module_qtwebkit_examples_and_demos.subdir = qtwebkit-examples-and-demos
|
||||
module_qtwebkit_examples_and_demos.target = module-qtwebkit-examples-and-demos
|
||||
module_qtwebkit_examples_and_demos.depends = module_qtwebkit module_qttools
|
||||
|
||||
module_qttools.subdir = qttools
|
||||
module_qttools.target = module-qttools
|
||||
module_qttools.depends = module_qtbase module_qtdeclarative
|
||||
|
||||
module_qttranslations.subdir = qttranslations
|
||||
module_qttranslations.target = module-qttranslations
|
||||
module_qttranslations.depends = module_qttools
|
||||
|
||||
module_qtdoc.subdir = qtdoc
|
||||
module_qtdoc.target = module-qtdoc
|
||||
module_qtdoc.depends = module_qtbase module_qtdeclarative
|
||||
|
||||
module_qtactiveqt.subdir = qtactiveqt
|
||||
module_qtactiveqt.target = module-qtactiveqt
|
||||
module_qtactiveqt.depends = module_qtbase
|
||||
|
||||
module_qlalr.subdir = qlalr
|
||||
module_qlalr.target = module-qlalr
|
||||
module_qlalr.depends = module_qtbase
|
||||
|
||||
module_qtqa.subdir = qtqa
|
||||
module_qtqa.target = module-qtqa
|
||||
module_qtqa.depends = module_qtbase
|
||||
|
||||
module_qtlocation.subdir = qtlocation
|
||||
module_qtlocation.target = module-qtlocation
|
||||
module_qtlocation.depends = module_qtbase module_qtdeclarative module_qt3d
|
||||
|
||||
module_qtsensors.subdir = qtsensors
|
||||
module_qtsensors.target = module-qtsensors
|
||||
module_qtsensors.depends = module_qtbase module_qtdeclarative
|
||||
|
||||
module_qtsystems.subdir = qtsystems
|
||||
module_qtsystems.target = module-qtsystems
|
||||
module_qtsystems.depends = module_qtbase module_qtdeclarative
|
||||
|
||||
module_qtmultimedia.subdir = qtmultimedia
|
||||
module_qtmultimedia.target = module-qtmultimedia
|
||||
module_qtmultimedia.depends = module_qtbase module_qtdeclarative
|
||||
|
||||
module_qtfeedback.subdir = qtfeedback
|
||||
module_qtfeedback.target = module-qtfeedback
|
||||
module_qtfeedback.depends = module_qtbase module_qtdeclarative
|
||||
|
||||
module_qt3d.subdir = qt3d
|
||||
module_qt3d.target = module-qt3d
|
||||
module_qt3d.depends = module_qtbase module_qtdeclarative
|
||||
|
||||
module_qtpim.subdir = qtpim
|
||||
module_qtpim.target = module-qtpim
|
||||
module_qtpim.depends = module_qtdeclarative
|
||||
|
||||
module_qtconnectivity.subdir = qtconnectivity
|
||||
module_qtconnectivity.target = module-qtconnectivity
|
||||
module_qtconnectivity.depends = module_qtsystems
|
||||
|
||||
module_qtwayland.subdir = qtwayland
|
||||
module_qtwayland.target = module-qtwayland
|
||||
module_qtwayland.depends = module_qtbase module_qtdeclarative
|
||||
# not yet enabled by default
|
||||
module_qtwayland.CONFIG = no_default_target no_default_install
|
||||
|
||||
module_qtimageformats.subdir = qtimageformats
|
||||
module_qtimageformats.target = module-qtimageformats
|
||||
module_qtimageformats.depends = module_qtbase
|
||||
|
||||
module_qtquick1.subdir = qtquick1
|
||||
module_qtquick1.target = module-qtquick1
|
||||
module_qtquick1.depends = module_qtbase module_qtscript
|
||||
|
||||
module_qtgraphicaleffects.subdir = qtgraphicaleffects
|
||||
module_qtgraphicaleffects.target = module-qtgraphicaleffects
|
||||
module_qtgraphicaleffects.depends = module_qtbase module_qtdeclarative
|
||||
SUBDIRS += $$mod
|
||||
export(SUBDIRS)
|
||||
return(true)
|
||||
}
|
||||
|
||||
# only qtbase is required to exist. The others may not - but it is the
|
||||
# users responsibility to ensure that all needed dependencies exist, or
|
||||
# it may not build.
|
||||
|
||||
SUBDIRS = module_qtbase
|
||||
|
||||
exists(qtsvg/qtsvg.pro) {
|
||||
SUBDIRS += module_qtsvg
|
||||
# These modules do not require qtsvg, but can use it if it is available
|
||||
module_qtdeclarative.depends += module_qtsvg
|
||||
module_qtquick1.depends += module_qtsvg
|
||||
}
|
||||
exists(qtxmlpatterns/qtxmlpatterns.pro) {
|
||||
SUBDIRS += module_qtxmlpatterns
|
||||
# These modules do not require qtxmlpatterns, but can use it if it is available
|
||||
module_qtdeclarative.depends += module_qtxmlpatterns
|
||||
module_qtquick1.depends += module_qtxmlpatterns
|
||||
}
|
||||
|
||||
exists(qtjsbackend/qtjsbackend.pro): SUBDIRS += module_qtjsbackend
|
||||
exists(qtdeclarative/qtdeclarative.pro): SUBDIRS += module_qtdeclarative
|
||||
exists(qt3d/qt3d.pro): SUBDIRS += module_qt3d
|
||||
exists(qtscript/qtscript.pro): SUBDIRS += module_qtscript
|
||||
exists(qtlocation/qtlocation.pro) {
|
||||
SUBDIRS += module_qtlocation
|
||||
# These modules do not require qtlocation, but can use it if it is available
|
||||
module_qtwebkit.depends += module_qtlocation
|
||||
}
|
||||
exists(qtsensors/qtsensors.pro) {
|
||||
SUBDIRS += module_qtsensors
|
||||
# These modules do not require qtsensors, but can use it if it is available
|
||||
module_qtwebkit.depends += module_qtsensors
|
||||
}
|
||||
exists(qtsystems/qtsystems.pro) {
|
||||
SUBDIRS += module_qtsystems
|
||||
# These modules do not require qtsystems, but can use it if it is available
|
||||
module_qtlocation.depends += module_qtsystems
|
||||
}
|
||||
exists(qtmultimedia/qtmultimedia.pro) {
|
||||
SUBDIRS += module_qtmultimedia
|
||||
# These modules do not require qtmultimedia, but can use it if it is available
|
||||
module_qtfeedback.depends += module_qtmultimedia
|
||||
module_qtlocation.depends += module_qtmultimedia
|
||||
}
|
||||
exists(qtfeedback/qtfeedback.pro): SUBDIRS += module_qtfeedback
|
||||
exists(qtpim/qtpim.pro): SUBDIRS += module_qtpim
|
||||
exists(qtconnectivity/qtconnectivity.pro): SUBDIRS += module_qtconnectivity
|
||||
exists(qtactiveqt/qtactiveqt.pro) {
|
||||
SUBDIRS += module_qtactiveqt
|
||||
module_qttools.depends += module_qtactiveqt
|
||||
}
|
||||
exists(qtwebkit/WebKit.pro) {
|
||||
SUBDIRS += module_qtwebkit
|
||||
module_qttools.depends += module_qtwebkit
|
||||
}
|
||||
exists(qttools/qttools.pro) {
|
||||
SUBDIRS += module_qttools
|
||||
module_qtquick1.depends += module_qttools
|
||||
}
|
||||
exists(qtwebkit/WebKit.pro):exists(qtwebkit-examples-and-demos/qtwebkit-examples-and-demos.pro): \
|
||||
SUBDIRS += module_qtwebkit_examples_and_demos
|
||||
exists(qtquick1/qtquick1.pro): SUBDIRS += module_qtquick1
|
||||
!win32:!mac:exists(qtwayland/qtwayland.pro): SUBDIRS += module_qtwayland
|
||||
exists(qtimageformats/qtimageformats.pro): SUBDIRS += module_qtimageformats
|
||||
exists(qtgraphicaleffects/qtgraphicaleffects.pro): SUBDIRS += module_qtgraphicaleffects
|
||||
exists(qttranslations/qttranslations.pro): SUBDIRS += module_qttranslations
|
||||
exists(qtdoc/qtdoc.pro): SUBDIRS += module_qtdoc
|
||||
exists(qtqa/qtqa.pro): SUBDIRS += module_qtqa
|
||||
exists(qlalr/qlalr.pro): SUBDIRS += module_qlalr
|
||||
addModule(qtbase)
|
||||
addModule(qtx11extras, qtbase)
|
||||
addModule(qlalr, qtbase)
|
||||
addModule(qtsvg, qtbase)
|
||||
addModule(qtxmlpatterns, qtbase)
|
||||
addModule(qtjsbackend, qtbase)
|
||||
addModule(qtdeclarative, qtjsbackend, qtsvg qtxmlpatterns)
|
||||
addModule(qtquickcontrols, qtdeclarative)
|
||||
addModule(qtmultimedia, qtdeclarative)
|
||||
addModule(qtactiveqt, qtbase)
|
||||
addModule(qt3d, qtdeclarative)
|
||||
addModule(qtjsondb, qtdeclarative)
|
||||
addModule(qtsystems, qtbase, qtdeclarative qtjsondb)
|
||||
addModule(qtlocation, qtbase, qt3d qtjsondb qtsystems qtmultimedia)
|
||||
addModule(qtsensors, qtbase, qtdeclarative)
|
||||
addModule(qtconnectivity, qtsystems)
|
||||
addModule(qtfeedback, qtdeclarative, qtmultimedia)
|
||||
addModule(qtpim, qtdeclarative, qtjsondb)
|
||||
addModule(qtwebkit, qtdeclarative, qtlocation qtsensors, WebKit.pro)
|
||||
addModule(qttools, qtbase, qtdeclarative qtactiveqt qtwebkit)
|
||||
addModule(qtwebkit-examples, qtwebkit qttools)
|
||||
addModule(qtimageformats, qtbase)
|
||||
addModule(qtgraphicaleffects, qtdeclarative)
|
||||
addModule(qtscript, qtbase)
|
||||
addModule(qtquick1, qtscript, qtsvg qtxmlpatterns qtwebkit qttools)
|
||||
addModule(qtdocgallery, qtdeclarative, qtjsondb)
|
||||
!win32:!mac:addModule(qtwayland, qtbase, qtdeclarative)
|
||||
addModule(qtserialport, qtbase)
|
||||
addModule(qttranslations, qttools)
|
||||
addModule(qtdoc, qtdeclarative)
|
||||
addModule(qtqa, qtbase)
|
||||
|
||||
2
qt3d
2
qt3d
Submodule qt3d updated: 5a14306a84...6b8ee028ac
Submodule qtactiveqt updated: 26ebb99a49...bfb09e618b
2
qtbase
2
qtbase
Submodule qtbase updated: 62b0f41ae0...1d22f20887
Submodule qtconnectivity updated: 6801d35523...fee6b50154
Submodule qtdeclarative updated: 5162fa11a5...7c0156309e
2
qtdoc
2
qtdoc
Submodule qtdoc updated: 0490488500...5bdaa89203
1
qtdocgallery
Submodule
1
qtdocgallery
Submodule
Submodule qtdocgallery added at f3fa41d4a9
Submodule qtfeedback updated: 58b8233d7e...0d85e95a06
Submodule qtgraphicaleffects updated: f93b069454...bd434a6ea3
Submodule qtimageformats updated: 0d9856b2a7...f293cc8539
Submodule qtjsbackend updated: e49f760da4...1dd094a4da
1
qtjsondb
Submodule
1
qtjsondb
Submodule
Submodule qtjsondb added at 3b693a54e5
Submodule qtlocation updated: 059388adce...fd330db9e5
Submodule qtmultimedia updated: 8a3706a5a1...46bf67b7dc
2
qtpim
2
qtpim
Submodule qtpim updated: a869b9ab41...099111a9fb
2
qtqa
2
qtqa
Submodule qtqa updated: 0d416ebca4...d01d5ea3ae
2
qtquick1
2
qtquick1
Submodule qtquick1 updated: 49a3f16a0c...31c3dec9fe
1
qtquickcontrols
Submodule
1
qtquickcontrols
Submodule
Submodule qtquickcontrols added at a454ff7f44
Submodule qtrepotools updated: d61e3d6388...60a26b7f17
2
qtscript
2
qtscript
Submodule qtscript updated: 89219f11b8...15f8b3a5f8
Submodule qtsensors updated: e4ae48b675...8b7ecd0eb2
1
qtserialport
Submodule
1
qtserialport
Submodule
Submodule qtserialport added at d424c1ee44
2
qtsvg
2
qtsvg
Submodule qtsvg updated: 27862077b5...04959ec43e
Submodule qtsystems updated: f2e1341908...620592b4bc
2
qttools
2
qttools
Submodule qttools updated: aad7955756...b161f54d75
Submodule qttranslations updated: e9ff668fd9...1a0366fd16
Submodule qtwayland updated: eaa78cf339...7334963a79
2
qtwebkit
2
qtwebkit
Submodule qtwebkit updated: 2e2ba8ff45...26e6818bad
1
qtwebkit-examples
Submodule
1
qtwebkit-examples
Submodule
Submodule qtwebkit-examples added at 376d3c61aa
Submodule qtwebkit-examples-and-demos deleted from 821a77e6f8
94
qtwebkit.pri
94
qtwebkit.pri
@@ -1,94 +0,0 @@
|
||||
# Wrapper profile for QtWebkit.
|
||||
#
|
||||
# This is needed because webkit builds via a script.
|
||||
# Technically this script is a .pro file, but we name it .pri to avoid clashing
|
||||
# with qt.pro.
|
||||
|
||||
isEmpty(vcproj) {
|
||||
QMAKE_LINK = @: IGNORE THIS LINE
|
||||
OBJECTS_DIR =
|
||||
win32:CONFIG -= embed_manifest_exe
|
||||
} else {
|
||||
CONFIG += console
|
||||
PHONY_DEPS = .
|
||||
phony_src.input = PHONY_DEPS
|
||||
phony_src.output = phony.c
|
||||
phony_src.variable_out = GENERATED_SOURCES
|
||||
phony_src.commands = echo int main() { return 0; } > phony.c
|
||||
phony_src.name = CREATE phony.c
|
||||
phony_src.CONFIG += combine
|
||||
QMAKE_EXTRA_COMPILERS += phony_src
|
||||
}
|
||||
|
||||
DS = $$QMAKE_DIR_SEP
|
||||
contains(DS, /) {
|
||||
env_export = export
|
||||
OPTI=+
|
||||
SBC=$$quote($$QMAKE_CHK_DIR_EXISTS qtwebkit || mkdir qtwebkit &&)
|
||||
} else {
|
||||
env_export = set
|
||||
GNUTOOLS = $$quote("set \"PATH=$$PWD/gnuwin32/bin;%PATH%\" &&")
|
||||
}
|
||||
|
||||
# Any configuration making use of QMAKE_POST_LINK will not work for this project,
|
||||
# since the building is done by webkit's own build script and qmake at this level
|
||||
# does not know the real TARGET. Disable them here.
|
||||
CONFIG -= separate_debug_info
|
||||
|
||||
exists($$PWD/qtwebkit/WebKitTools):qtwebkit_tools_dir = WebKitTools
|
||||
else:qtwebkit_tools_dir = Tools
|
||||
|
||||
QTWEBKIT_BUILD_CONFIG =
|
||||
contains(CONFIG, release):!contains(CONFIG, debug_and_release): {QTWEBKIT_BUILD_CONFIG = --release}
|
||||
|
||||
# WebKit2 is not yet supported on Windows, so avoid trying to build it
|
||||
# Disable WebKit2 until https://bugs.webkit.org/show_bug.cgi?id=94914 is fixed.
|
||||
QTWEBKIT_BUILD_CONFIG += --no-webkit2
|
||||
|
||||
# The '+' is to make parallel "make" work across the script boundary.
|
||||
module_qtwebkit.commands = $${OPTI}$${SBC}cd qtwebkit && \
|
||||
$$env_export \"WEBKITOUTPUTDIR=$$OUT_PWD/qtwebkit/WebKitBuild\" && $$GNUTOOLS \
|
||||
perl $$PWD$${DS}qtwebkit$${DS}$${qtwebkit_tools_dir}$${DS}Scripts$${DS}build-webkit \
|
||||
--qt \
|
||||
--qmake=$(QMAKE) \
|
||||
--install-libs=$$[QT_INSTALL_LIBS] \
|
||||
--qmakearg=CONFIG+=production_build \
|
||||
$$QTWEBKIT_BUILD_CONFIG
|
||||
# "--makeargs=\"-$(MAKEFLAGS)\""
|
||||
# Trick to force dependency on this rule.
|
||||
#module_qtwebkit.commands += $$escape_expand(\\n)make_default: module-qtwebkit
|
||||
module_qtwebkit.target = module-qtwebkit
|
||||
|
||||
# The '+' is to make parallel "make" work across the script boundary.
|
||||
module_qtwebkit_clean.commands = $${OPTI}$${SBC}cd qtwebkit && \
|
||||
$$env_export \"WEBKITOUTPUTDIR=$$OUT_PWD/qtwebkit/WebKitBuild\" && $$GNUTOOLS \
|
||||
perl $$PWD$${DS}qtwebkit$${DS}$${qtwebkit_tools_dir}$${DS}Scripts$${DS}build-webkit \
|
||||
--qt \
|
||||
--qmake=$(QMAKE) \
|
||||
--install-libs=$$[QT_INSTALL_LIBS] \
|
||||
$$QTWEBKIT_BUILD_CONFIG \
|
||||
"--makeargs=\"$(MAKEFLAGS)\"" \
|
||||
--clean
|
||||
# Trick to force dependency on this rule.
|
||||
module_qtwebkit_clean.commands += $$escape_expand(\\n)clean: module-qtwebkit-clean
|
||||
module_qtwebkit_clean.target = module-qtwebkit-clean
|
||||
|
||||
module_qtwebkit_install.commands = $${OPTI}$${SBC}cd qtwebkit/WebKitBuild/Release && $(MAKE) install
|
||||
# Trick to force dependency on this rule.
|
||||
module_qtwebkit_install.commands+= $$escape_expand(\\n)install: module-qtwebkit-install
|
||||
module_qtwebkit_install.target = module-qtwebkit-install
|
||||
|
||||
module_qtwebkit_uninstall.commands = $${OPTI}$${SBC}cd qtwebkit && \
|
||||
$$env_export \"WEBKITOUTPUTDIR=$$OUT_PWD/qtwebkit/WebKitBuild\" && $$GNUTOOLS \
|
||||
perl $$PWD$${DS}qtwebkit$${DS}$${qtwebkit_tools_dir}$${DS}Scripts$${DS}build-webkit \
|
||||
--qt \
|
||||
--qmake=$(QMAKE) \
|
||||
--install-libs=$$[QT_INSTALL_LIBS] \
|
||||
"--makeargs=\"uninstall\""
|
||||
# Trick to force dependency on this rule.
|
||||
module_qtwebkit_uninstall.commands+= $$escape_expand(\\n)uninstall: module-qtwebkit-uninstall
|
||||
module_qtwebkit_uninstall.target = module-qtwebkit-uninstall
|
||||
|
||||
# WebKit needs a nonstandard target because the build has to be initiated by the bundled script.
|
||||
QMAKE_EXTRA_TARGETS += module_qtwebkit module_qtwebkit_clean module_qtwebkit_install module_qtwebkit_uninstall
|
||||
PRE_TARGETDEPS += module-qtwebkit
|
||||
1
qtx11extras
Submodule
1
qtx11extras
Submodule
Submodule qtx11extras added at a03d4ddf0a
Submodule qtxmlpatterns updated: 75d13b247f...3ca482d01c
Reference in New Issue
Block a user