Commit Graph

123 Commits

Author SHA1 Message Date
Andreas Holzammer
a3a1fea094 Support mkspecs in subdirs for xcompile under windows
Support mkspecs in subdirectories for cross compilation
under windows. Mkspecs in subdirectories are separated by
slashes.

Change-Id: Id3954cc38df2922b20156589335faad989ec0537
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-02 12:16:39 +02:00
Thiago Macieira
f1b324a83c Make configure.exe not overwrite its own Makefile in -fast mode
configure.exe's Makefile is created by configure.bat. While severely
lacking, it is what gets executed when the user configures, so
developers modifying configure.exe should use that too.

Change-Id: Ib216889594d08c980bfae6d2dbbb27ee9901375a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-25 12:43:25 +02:00
Thiago Macieira
8da57f3732 Make configure.exe create files with Windows line-endings
Except for the perl sources, just in case.

This helps if you need to open the output files in, say, notepad.exe.

Change-Id: Ibf46b74af2efd6936586650e1405750bfef17952
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-04-25 12:43:25 +02:00
Girish Ramakrishnan
0074cc5d34 Fix detection of default platform plugin.
Let configure generate the QT_QPA_DEFAULT_PLATFORM_NAME in
qconfig.h. This allows us to override the platform name
using a configure argument.

This commit adds -qpa <platform> that lets the user specify
the default platform at configure time. Note that the default
platform is not checked against the tree since plugins are
allowed to exist outside the Qt source tree.

In the absence of -qpa argument, configure checks the mkspec
for a variable named QT_QPA_DEFAULT_PLATFORM. This check is
implemented only in the unix configure because it will be primarily
used in custom mkspecs (devices, boards).

If -qpa argument is absent and the mkspec variable is absent,
the default value is determined based on the OS as below:
    Unix - "xcb"
    Windows - "windows"
    Mac - "cocoa"
    QNX - "qnx"

Done-with: Jørgen Lind

Change-Id: I0df31811a1b901a3242bfada1232e596ebda04f4
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-04-19 16:40:29 +02:00
Oswald Buddenhagen
143c4d3e13 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	configure
	src/widgets/styles/qwindowsxpstyle.cpp
	tests/auto/gui/kernel/qwindow/qwindow.pro
	tests/auto/gui/kernel/qwindow/tst_qwindow.cpp

Change-Id: I624b6d26abce9874c610c04954c1c45bc074bef3
2012-04-10 15:31:45 +02:00
Thiago Macieira
7ae76153cb Remove -DQT_NO_STL from the bootstrapped builds
Change-Id: I37ea06426b66e617a49ec46952abdaad8814eadf
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-07 05:19:56 +02:00
Giuseppe D'Angelo
33984e72ab QHash security fix (1/2): add global QHash seed
Algorithmic complexity attacks against hash tables have been known
since 2003 (cf. [1, 2]), and they have been left unpatched for years
until the 2011 attacks [3] against many libraries /
(reference) implementations of programming languages.

This patch adds a global integer, to be used as a seed for the hash
function itself. The seed is randomly initialized the first time a
QHash detaches from shared_null.

Right now the seed is not used at all -- another patch will modify
qHash to make use of it.

[1] http://www.cs.rice.edu/~scrosby/hash/CrosbyWallach_UsenixSec2003.pdf
[2] http://perldoc.perl.org/perlsec.html#Algorithmic-Complexity-Attacks
[3] http://www.ocert.org/advisories/ocert-2011-003.html

Task-number: QTBUG-23529
Change-Id: I7519e4c02b9c2794d1c14079b01330eb356e9c65
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-04-03 19:12:13 +02:00
Kai Koehne
0556540b41 Rename the 'declarative debug support' to 'qml debug support'
Since the library and almost everything got renamed to qml, we
should do so for the debugging support, too.

(CONFIG+=declarative_debug will continue to work for some time
being, but prints a deprecated warning).

Change-Id: I295155dce873e2585c1452d2bf0625ea6ce219c4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-31 16:33:04 +02:00
Debao Zhang
94f7d70a4b Remove qpa option form configure.exe
Change-Id: Ib35b65be43f76ac4babf6e7dd3b0763274f0ab8c
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-30 00:38:31 +02:00
Jędrzej Nowacki
fb650b0271 Compile QArrayData in bootstrap phase.
This change will be needed during migration from QByteArrayData to
QArrayData.

Change-Id: I0c8d6f9ed3ef7c33af62736af55259a8f9a70c0f
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-29 11:28:41 +02:00
Thiago Macieira
7adbc9b234 Remove the -no-stl option from configure
This was decided on the mailing list. See:
http://lists.qt-project.org/pipermail/development/2012-March/002442.html
http://lists.qt-project.org/pipermail/development/2012-March/002465.html

Change-Id: I7681e5cc743b20f6d4e29d2aea45c50df41a0b98
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-28 16:31:34 +02:00
Friedemann Kleint
b2d205b587 Windows: Fix handling of -nomake.
Add to list of disabled build parts (see
b9a498bf51).
This fixes the tests are currently built in developer-build
despite "-nomake tests".

Change-Id: I43282112e03328dd89d8c874ca31b0483742ddb3
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-28 13:01:01 +02:00
Kent Hansen
d236fe2214 Merge master into api_changes
Conflicts:
	src/corelib/global/qisenum.h
	src/dbus/qdbusconnection_p.h
	src/widgets/kernel/qwidget.cpp
	tests/auto/other/qaccessibility/tst_qaccessibility.cpp

Change-Id: I85102515d5fec835832cc20ffdc5c1ba578bd01d
2012-03-27 19:22:48 +02:00
Marius Storm-Olsen
ac02d4e7ad Remove 'tests' as default build part.
This requires 'configure -make tests' if you want to automatically
build autotests for a module by default.

You can still go into the individual tests/ directories and
    'qmake && make check'
to build and run the autotests.

configure -developer-build will enable the tests by default,
like it did in Qt4.

Change-Id: If4d870987de0947a8328509dcc227fa9e6284201
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-27 12:01:59 +02:00
Marius Storm-Olsen
b9a498bf51 Sync configure with Unix version (-make/-nomake)
Move previous -make <exe> feature to -make-tool <exe>

Change-Id: I1cbc87e60e2588fd8b2a11c11178988003cac7c1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-27 03:36:30 +02:00
Thiago Macieira
6ab6b0fc1c Disable QUrl support in QVariant in bootstrapped mode
The only use of QUrl in qmake, moc, uic and rcc is due to QVariant's
internals, so let's disable it. This means those binaries are now
probably a lot smaller since the parsing and IDNA code don't need to
be present.

Change-Id: Ie156b0817d119b2ba5d3dcb9712a9fea2ee7d4a1
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-03-24 16:30:58 +01:00
Thiago Macieira
a1b30b49ef Remove detection for MMX support and related technology
This also removes the check for SSE, but the check for SSE2 and
further technologies is kept. If SSE2 is present, then SSE is too. We
don't have any code that uses the original SSE instructions only.

Remove the CMOV detection, since we don't use that anywhere and we're
not likely to ever use them..

Change-Id: I3faf2c555ad1c007c52a54644138902f716c1fe1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-23 19:43:00 +01:00
Kent Hansen
3b512ae142 Merge master into api_changes
Change-Id: I93551e4d13a1b0815b359b9415060e9089477db1
2012-03-23 14:10:58 +01:00
Bradley T. Hughes
70a8833151 configure: Fix x86_64 detection
The regular expression should look for underscores in addition to
alphanumeric characters.

Change-Id: Idc3dbd67291ec1420f818d74fba8413b1e7cbcf1
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-03-23 07:50:57 +01:00
Girish Ramakrishnan
4cc9523a31 Make architecture detection more robust.
Any message/error in mkspecs or qmake feature files ends up confusing
the current arch detection logic. Instead, search for
"Project MESSAGE: .* Architecture: <arch>".

Change-Id: I308932a5b75f3a1fcbc4fe30c74faf2e83b2d752
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-22 20:59:27 +01:00
Donald Carr
b936b95965 EGLFS: Integrate building into configure.
With the move to the QPA architecture EGL is now only required by
individual platform plugins and the configure script has been adjusted to
reflect this.

Change-Id: Ieadacef0b970f29752d9e3e36a007e5cbb005b0d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-03-21 03:03:29 +01:00
Kent Hansen
95d6f8a4cf Merge master into api_changes
Conflicts:
	src/corelib/tools/qvector.h
	tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp

Change-Id: I877256e95f3788e617437f4e9661a88047f38cd6
2012-03-19 10:03:48 +01:00
Marius Storm-Olsen
1711bab719 Add support for ICU on Windows
Needed by QtWebKit now.

Change-Id: I177d8dcf6063a14501f7ba3081b43a29a48661c7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-17 17:54:59 +01:00
Kent Hansen
440f452aa3 Merge master into api_changes
Conflicts:
	src/corelib/kernel/qmetatype.cpp
	src/gui/kernel/qplatformsurface_qpa.cpp
	tests/auto/corelib/tools/qtimeline/qtimeline.pro

Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
2012-03-16 10:01:29 +01:00
Donald Carr
0738c38f0e Add Qt Widgets opt out support to build system
There should be a clear QWidget free path for people with no interest in
legacy QWidget functionality. Adding this option to configure makes this
path readily accessible and hence testable.

Change-Id: If87c1063fcf4c46f5280836126c11999feaa9f8a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-15 11:40:50 +01:00
Johannes Zellner
8a79e8b645 Remove unmaintained and broken VNC platform plugin
Change-Id: Ie0a07c3a6822870b095a20d997b63fb1635f20be
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Robert Griebl <robert.griebl@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-03-15 02:45:31 +01:00
Bradley T. Hughes
ba6952b28d Remove -arch argument and #define QT_ARCH from configures
Do not try to detect the host or target architectures using uname or
similar, and do not override with the -arch or -host-arch configure
arguments. The configures will still accept the -arch and -host-arch
arguments, but it ignores them and instead outputs a warning stating
that these arguments are obsolete and should not be used.

Set QT_ARCH and QT_HOST_ARCH qconfig.pri variables based on the compiler
target. This is done by running qmake (twice when cross-compiling) on
config.tests/arch/arch.pro, which preprocesses a file that contains all
knowns processors.

On Windows, configure.exe has never run any config.tests before, and
does not currently have a function to run a program and capture its
output. Use _popen() to accomplish this (as qmake does for its system()
function). This needs to be done after qmake is built, as does the
mkspecs/qconfig.pri generation. As a side effect, the configure steps
have been slightly re-ordered, but the overall result is the same. The
displayConfig() call is moved to just before generating Makefiles, so
that it can show the detected architecture(s).

Change-Id: I77666c77a93b48848f87648d08e79a42f721683f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-13 12:27:44 +01:00
Lars Knoll
d5098f2802 Merge remote-tracking branch 'origin/master' into api_changes
Conflicts:
	tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp

Change-Id: I884afc3b6d65c6411733a897a1949e19393573a7
2012-03-12 21:03:49 +01:00
Oswald Buddenhagen
197ba93cf0 rip out -incremental from configure
the feature is rather obscure and unlikely to be used by anyone.

Change-Id: I2dfb4ca4d5d1f210d385c013f46bc6389fd6ea2d
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-12 10:59:44 +01:00
Oswald Buddenhagen
46e51ce1dd do not copy/symlink qmake to build dir
make is perfectly capable of doing shadow builds

Change-Id: I7e1c27cddc385b7a17ae5645b9cd26fa56d2f029
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-09 14:23:15 +01:00
Donald Carr
3c47b52bd3 Add cross_compile to qconfig.pri for global advertising
.qmake.cache is not necessarily accessible to other modules which depend on
information about whether we are cross compiling or not. We might as well
advertise this fact globally via the CONFIG variable in qconfig.pri.

Change-Id: I6dee3e6604e5ca1c775c5f9f834fe29b4e27adb8
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
2012-03-08 23:52:34 +01:00
Oswald Buddenhagen
d59e85d909 remove the fixed qt tool assignments from the configures
the tool locations are now determined with qtPrepareTool(), which takes
non-installed qt builds into account already.

Change-Id: I17b2c5f4b181417f2a612be2f540768e7dc0ae4e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-08 23:52:34 +01:00
David Faure
dc75c20397 Split up base class QFileDevice for open-file operations (read/write)
This will be used later on as a base class for QTemporaryFile and
QSaveFile.

Change-Id: Ic2e1d232f95dc29b8e2f75e24a881ab459d3f037
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-03-06 12:09:57 +01:00
Lars Knoll
96232be146 Merge remote-tracking branch 'origin/api_changes'
Conflicts:
	dist/changes-5.0.0
	mkspecs/features/qt_module_config.prf
	qmake/project.cpp
	qmake/property.cpp

Change-Id: I6e4af40743a9aeff8ed18533a48036e332acc296
2012-03-04 21:45:05 +01:00
Bradley T. Hughes
17ddce4692 Remove Q_BYTE_ORDER and -*-endian arguments from configures
Do not write Q_BYTE_ORDER to qconfig.h in the configures. Instead,
we #define Q_BYTE_ORDER in qprocessordetection.h, since many CPUs only
support a single endian format. For bi-endian processors, we set
Q_BYTE_ORDER depending on how the preprocessor sets __BYTE_ORDER__,
__BIG_ENDIAN__, or __LITTLE_ENDIAN__ (instead of using a compile test
to do so).

For operating systems that only support a single byte order, we can
check for Q_OS_* in addition to the preprocessor macros above. This is
possible because qprocessordetection.h is included by qglobal.h after
Q_OS_* and Q_CC_* detection has been done. Do this for Windows CE,
which is always little- endian according to MSDN.

Change-Id: I019a95e05252ef69895c4b38fbfa6ebfb6a943cd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-02 14:48:00 +01:00
Andreas Holzammer
eab53a13f5 Link against the precompiled header.
This fixes the build for Visual Studio 2011.

Change-Id: I8c43eef851d76f8cdde13a57ea3dcd9cf32df0ab
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-03-02 14:44:09 +01:00
Oswald Buddenhagen
d9bf972e2b merge Makefile.win32-g++{,-sh}
the only difference is in the copy & del commands. the msys tools are
tolerant about windows paths, so this just works.
the in-makefile variant detection is stolen from tools/configure/.

Change-Id: Ia283c1fe2e2aaa8cd5b1dfd7ae29244115f07d65
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-01 23:20:44 +01:00
Oswald Buddenhagen
012f799254 revamp -sysroot and -hostprefix handling
instead of being a variable added to the makespec (via qconfig.pri),
QT_SYSROOT is now a property.

the QT_INSTALL_... properties are now automatically prefixed with the
sysroot; the raw values are available as QT_RAW_INSTALL_... - this is
expected to cause the least migration effort for existing projects.

-hostprefix and the new -hostbindir & -hostdatadir now feed the new
QT_HOST_... properties.

adapted the qmake feature files and the qtbase build system accordingly.

Change-Id: Iaa9b65bc10d9fe9c4988d620c70a8ce72177f8d4
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-01 23:18:23 +01:00
Oswald Buddenhagen
486bde8372 make qlibraryinfo table-driven
switch blocks are noisy. this is nicer.

reshuffled the LibraryLocation enum to make table lookups possible and
future-safe.

using pointer-free tables to avoid adding data relocations.

Change-Id: I70ec2c2142ce02a15e67284e4b285d754d930da3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-02-29 15:53:21 +01:00
Oswald Buddenhagen
e05d5c36be factor out code to install default mkspec
Change-Id: I15f371df7bc24cd85c1c0924d1929da4dc3db16d
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-02-29 00:05:38 +01:00
Bradley T. Hughes
fa5cf01e74 Make configure.exe only detect each compiler once
After commit e0acf65043, configure.exe
built with the x64 compiler could detect the same compiler twice,
breaking the -platform detection even when only one compiler is in the
path. Fix this by taking advantage of the CompilerInfo struct ordering
and ignore detection of the same compiler.

Change-Id: I583230520d2e0859196f9d7c8af31adbb981a6ca
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-27 20:52:45 +01:00
Jonathan Liu
bc8bc6018e Fix MinGW configure bootstrap
Makefile.mingw was using the test command which requires sh.exe. This
adds support for bootstrap using cmd.exe instead.

Change-Id: Ieb67843170d2745ce119cc8feaa5433aa82fd7d7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-25 15:28:11 +01:00
Shane Kearns
e0acf65043 configure - fix detection of MSVC compiler in x64
x86 processes get redirected to the 32 bit area of the registry,
while 64 bit processes access the registry in raw form.
Added the registry paths for 64 bit processes to see the 32 bit
registry keys for MS visual studio. (Wow6432Node)

This problem was revealed when we stopped including configure.exe
as a binary checkin to git. Running configure in an x64 compiler
environment results in creating an x64 configure.exe

Change-Id: I5e3e51ddbf20ccc65abf1833bf23ee5670bd973e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-02-25 14:04:22 +01:00
Oswald Buddenhagen
2597d61175 don't attempt to build host tools which are gone from qtbase
Change-Id: If9a3fb9792fc5d90496ff834b2c3adc177e1311e
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-02-20 19:51:41 +01:00
Oswald Buddenhagen
90feedb642 bootstrap configure.exe on windows
it is *ugly* to have the binary in the repository.
this adds a few seconds to the windows build, as the configure needs to
be rebuilt, obviously. that's almost negligible.

Change-Id: I40ffde23b3c3af2b6bab3e78cd0a9f433214b563
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-02-16 01:56:21 +01:00
Oswald Buddenhagen
dc810b81a3 compile without rtti
no point in it

Change-Id: Id6ad95c197095131c6c100afe37b3d48adb157d1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-09 22:13:34 +01:00
Oswald Buddenhagen
946501ab35 remove pointless include paths
we rely on a syncqt'd tree anyway

Change-Id: I23b288b98a5e9289993b058f7dce02e19564c67a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-09 22:13:19 +01:00
Oswald Buddenhagen
cb03577711 properly enable stl via qmake instead of hacking compiler flags
Change-Id: I2c037c9a28043afe53167a766bce7c9d09b8f3a3
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-09 22:13:06 +01:00
Oswald Buddenhagen
2091d4c33a build with QT_NO_GEOM_VARIANT
saves us some pointless code

Change-Id: I24e4fe4107f44ab579c0f951551c4138713a749f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-09 22:12:43 +01:00
Oswald Buddenhagen
2b969b89b9 add missing errno.h include
it was masked by the precompiled header

Change-Id: I9ba7b0faa716cfa6844b9a9f81fa2a3aa67f5da4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-09 22:12:37 +01:00