Commit Graph

17 Commits

Author SHA1 Message Date
Andrew Knight
e1ba711992 Add a way for qmake + configure to link dynamically to the CRT
The static CRT, libcpmt.lib, is not shipped with Visual Studio Express
for Windows (unlike VS Express for Windows Desktop or Professional
versions), causing configure and qmake to fail linking if this is the
only VS installed. By removing -MT (which is on by default) and adding
$(CFLAGS_CRT) to the compiler line, -MD can be added to the compiler
flags via the environment, providing a workaround for the issue.

Change-Id: I5613346d60a3a1889c121f04d53b09fbb147fc02
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-09-25 22:14:31 +02:00
Kai Koehne
297be273a3 De-inline QDebug destructor
This injected quite some code on every use of qDebug and friends,
while not giving any measurable performance benefits.

Change-Id: I7b51f99130f18f1252da01e313f7b97c43a5480d
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-05-22 08:35:06 +02:00
Thiago Macieira
9c9f609313 Fix configure & qmake compilation with a future MSVC version
When MSVC supports ref-qualified members, we need to ensure that
qstring_compat.cpp can see the non-qualified definitions in qstring.h,
which means no precompiled header.

Alternatively, for a bootstrapped build we could not compile
qstring_compat.cpp or #ifndef the functions.

Change-Id: I8ece34503060f0b4b0f8f2df2fb9b0fb1311e269
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-02-01 06:56:45 +01:00
Friedemann Kleint
2433ee06ef Windows/Windows CE: Do not dynamically load shell32/coredll.
Those libraries are contained in QMAKE_LIBS_CORE and
GetSpecialFolderPath() is present in all supported versions.

Change-Id: Iae40714e0f234625b063aeb50e29fc79c4aaa6ea
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-01-07 21:14:35 +01:00
Frederik Gladhorn
f0fbff4c90 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2defae1904154283446b069d151c3ef57302ec7b
2013-12-24 00:56:59 +01:00
Thiago Macieira
4bbfedd353 Ensure that all .obj wait for the PCH to finish
Otherwise, you get compilation errors like:
c:\Qt\qt5\qtbase\src\corelib\global\qlogging.cpp : fatal error C1083: Cannot open precompiled header file: 'configure_pch.pch': Permission denied

Change-Id: I56401ce7f6aff32e97617c3b4fd5fe06fbeebf58
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-12-20 00:35:52 +01:00
Thiago Macieira
b0afad8f0b Implement support for ref-qualified QString::toLatin1 & friends
This is the first step in implementing an in-place conversion of QString
to QByteArray. This requires ref-qualifiers in member functions so we
know that we have an rvalue QString.

Converting from UTF-16 to Latin1 always requires half the memory.

For conversion from UTF-16 to UTF-8, the typical string will also need
the same memory or less: characters from U+0000 to U+007F consume one
fewer byte; characters from U+0080 to U+07FF and from U+10000 to
U+1FFFFF occupy the same space in UTF-8 and UTF-16; it's only the ones
from U+0800 to U+FFFF that consume more space in the UTF-8 string.

For the locale's 8-bit codec, we can't be sure and the code (currently)
needs to go through QTextCodec anyway.

This requires a #define set before #include'ing "qstring.h". However,
since qstring.h is included by the QtCore PCH, we need an extra qmake
compiler without the PCH flags to compile this .cpp.

After this change, the distribution of calls in QtCore, Network, Gui,
and Widgets is as follows:

                  const &               &&
 toUtf8           31 (74%)              11 (26%)
 toLatin1         79 (77%)              24 (23%)
 toLocal8Bit      26 (16%)              138 (84%)

Change-Id: Idd96f9ddb51b989bc59f6da50054dd10c953dd4f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-12-13 09:29:58 +01:00
Thiago Macieira
a8467780fb Don't compile qcryptographichash into configure.exe
It doesn't need it.

Change-Id: I74a8b382fa77ba5bcdabd5b901742bec645ff0c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-08-15 01:30:54 +02:00
Friedemann Kleint
9c2ec72b95 Improve path search in configure.
- Remove duplicated code locateFile/locateFileInPaths.
- Move basic path search functionality to Environment.
- Add functions for headerPaths/libraryPaths to  Environment.
- Use QStandardPaths::findExecutable().
- Replace Environment::detectExecutable by
  QStandardPaths::findExecutable().
- Introduce static path lists in findFile() to avoid
  repeated directory scans

Change-Id: I9b93066a3de65f40527780d6ddf7989bca35cd04
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-05 17:17:01 +01:00
Oswald Buddenhagen
eff0349102 don't require a fake qconfig.h for the configure bootstrap
Change-Id: I3d1224ad19b9e5278e35cf7c5142a29ccb589140
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-09-19 19:54:44 +02:00
Thiago Macieira
7395e6abc6 Clean up the use of QT_NODLL
QT_NODLL is replaced by QT_STATIC, but the latter is implied if
QT_BOOTSTRAPPED is already defined. Therefore, simply remove the
QT_NODLL definitions.

Change-Id: Iac7ec0b494b7a78197c25d59547f45eaf92d7465
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-28 06:21:52 +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
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
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
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
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
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