Janne Anttila [Tue, 19 Jun 2012 08:27:06 +0000 (11:27 +0300)]
Fix qitemview and qdatetimeedit autotest builds for WinCE.
Defined missing SPI_GETPLATFORMTYPE macro as it was done in for example
in qwidget and qaccesiblity test cases.
Change-Id: I33a1e0119848911fbc4830299fcc1854f5259e86
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Janne Anttila [Tue, 19 Jun 2012 08:08:39 +0000 (11:08 +0300)]
Fix qdiriterator autotest build for WEC7.
Change-Id: I18b1bdd79905761eff7a5ddbe1c6538c33624a1f
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Samuel Rødal [Mon, 18 Jun 2012 13:53:30 +0000 (15:53 +0200)]
Fixed mouse grabbing preventing popups from being closed.
The pointer grabbing leads to fake Enter events being sent to the
Qt::Popup window, preventing it from closing since QWidget::underMouse()
returns true. We should only send Enter events if the mouse is actually
inside the widget.
Change-Id: I4ba3fb08943580f93ad4337ff0227becd647767e
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Shane Kearns [Tue, 12 Jun 2012 15:46:37 +0000 (16:46 +0100)]
Handle fragmented responses on SOCKS5 control channel
Server responses may arrive in more than one packet, though this
is rare due to nagle algorithm.
Also fixed IPv6 addresses being discarded from server responses,
which was caught by the new autotest.
Task-number: QTBUG-18564
Change-Id: I32d9e2978037fb3e1fff27b7e618b5da6d222f28
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Janne Anttila [Tue, 19 Jun 2012 08:11:13 +0000 (11:11 +0300)]
Fix qfile autotest build for WEC7
Change-Id: I6c4b4c91ea841ccb91ad685510caaecaf51baced
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Chris Adams [Wed, 9 May 2012 06:43:53 +0000 (16:43 +1000)]
Add new benchmark metrics to testlib
QElapsedTimer provides nanosecond-resolution elapsed timing, which
allows for finer granularity benchmark reporting. Also, clients
may also wish to benchmark the memory usage of a particular component,
but no metric currently exists which matches that requirement.
This commit adds the WalltimeNanoseconds and BytesAllocated metrics
to meet these needs. It is intended for manual use by clients via
setBenchmarkResult() only.
Change-Id: Ib37ada374e265c857eda02d047d51d436618e4a7
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Daniel Molkentin [Mon, 18 Jun 2012 23:00:16 +0000 (01:00 +0200)]
Doc: tmake -> qmake, it's about time
Pushing this before 5.0 since it will most certainly
trigger a major recompile, which is probably why
this has never been changed.
Change-Id: I5fd90537d3b754d0a8a1b522d66183513693e0af
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Shane Kearns [Wed, 13 Jun 2012 16:27:31 +0000 (17:27 +0100)]
Change default Content-Type for http POST to match 4.7.4
Qt 4.7.3 sent no Content-Type header by default.
This was fixed independently on 4.8.0 and 4.7.4 branches, with
different defaults.
Since this is often used for web service logins, the 4.7.4
default of x-www-form-urlencoded seems more likely to work.
The warning message is left in place, since not specifying the
content type is still an application bug.
Task-number: QTBUG-23350
Change-Id: I30bf50fd216ee9894d0168e904cea1ed4251ec68
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Girish Ramakrishnan [Wed, 20 Jun 2012 01:15:48 +0000 (18:15 -0700)]
Remove references to Q_WS_QWS
Affected code includes:
src/widgets/dialogs/qmessagebox.cpp
src/widgets/graphicsview/qgraphicsitem.cpp
src/widgets/kernel/qapplication_p.h
src/widgets/kernel/qwhatsthis.cpp
src/widgets/kernel/qwidget.h
src/widgets/widgets/qdockwidget.cpp
Change-Id: Ib9e920b3cc1253b39e4e00d7137c21321ecc0399
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Girish Ramakrishnan [Wed, 20 Jun 2012 01:03:47 +0000 (18:03 -0700)]
plastique: Use QPlatformTheme::DialogButtonBoxButtonsHaveIcons
Change-Id: I2f493d45820063ef62f16febde0df89a874dddb0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Girish Ramakrishnan [Wed, 20 Jun 2012 00:58:29 +0000 (17:58 -0700)]
Remove dead code
Change-Id: I48c1e3b2ebcf4ec2fb21ed2d1a88e1dae64e937d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
James Turner [Wed, 20 Jun 2012 12:55:40 +0000 (14:55 +0200)]
Fix QWidgetWindow sending duplicate drag-drop events
Unlike the other event handlers in QWidgetWindow, the drag-drop events are not followed by an
early return. This causes all drag-drop events to also be sent to the root widget of the window,
which is a bug. For example in the fridgemagnets example, where the target widget and
root widget are the same, the drop event is received twice.
Change-Id: I99e56ad8c48b3d31b0bd7c815cea8490edbf0af4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Stephen Kelly [Thu, 24 May 2012 12:35:45 +0000 (14:35 +0200)]
Record if a metatype is a smart pointer to a QObject derived.
This allows QVariant/QMetaType software (such as QtDeclarative) to
deal with smart pointers in a similar way to how they can deal with
naked pointers (accessing properties etc).
This also adds a requirement that T be fully defined when
QSharedPointer<T> is inserted into a QVariant.
Change-Id: I29e12b8a6aa5f4aadbd62f92b89bc238f64b5725
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Sat, 9 Jun 2012 20:57:35 +0000 (22:57 +0200)]
Add some internal API for extracting a QSharedPointer<T> from QVariant.
The T must be derived from QObject, or it will fail to compile.
This will allow scripting or other 'wrapping' and runtime environments like
QtDeclarative to handle QSharedPointers to types derived from QObject
properly. A QSharedPointer<T> can be inserted into a QVariant, and
where T derives from QObject, a QSharedPointer<QObject> can be
extracted from the QVariant, and its properties are then accessible.
Change-Id: I68d6d89aceceb019267bd7301baa2047f9c09b90
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Martin Petersson [Wed, 13 Jun 2012 06:59:35 +0000 (08:59 +0200)]
QNetworkAccessManager: delete the httpThread
The httpThread was using deleteLater the finished signal of the
thread to call the deleteLater slot. If the QNetworkAccessManager is
deleted when the application is closed then then fished is emitted
but we never return to the eventloop so the deletion is never done.
This will delete the httpThread directly instead of using deleteLater
Task-number: QTBUG-25487
Change-Id: I1fdbd4eca01e8bd8b3a98936298e5c78217752b4
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Bradley T. Hughes [Thu, 14 Jun 2012 05:14:05 +0000 (07:14 +0200)]
Change *-clang mkspec globs to *-clang*
Like with the numerous g++ mkspecs, we have mkspecs with suffixes, and
these mkspecs should still match the clang globs.
Change-Id: I9296408b5192bc72cc468d229a57923e3f5ab6f0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Bradley T. Hughes [Wed, 13 Jun 2012 11:37:14 +0000 (13:37 +0200)]
mkspecs: Add macx-clang-libc++ and macx-clang-libc++-32
Use these mkspecs to switch to the new libc++ C++ runtime library, which
in turn makes it possible to enable C++11 support with clang.
Change-Id: If92908592f8bee4829a1bad747fe396f527d26c7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Joerg Bornemann [Tue, 19 Jun 2012 16:10:28 +0000 (18:10 +0200)]
fix tst_QWidget::getSetCheck on Windows
Change-Id: Ie11a7576f8e618e2fedb31bd8071abb44b9f9f57
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Mitch Curtis [Wed, 20 Jun 2012 10:38:08 +0000 (12:38 +0200)]
Fix unused parameter warnings in moc test.
Change-Id: I3467a8bf99464c2d3762a171b20508bb4b29ddb4
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Jeremy Katz [Mon, 18 Jun 2012 22:18:09 +0000 (00:18 +0200)]
Make QUuid compile with QT_NO_QUUID_STRING without breaking QDebug <<
Change I0cbb0581a1c3abefdde75b7cd45fdafd31640f0d breaks the use of
operator<< for QDebug, which shows up when trying to link QtCore in
the small qconfig.
Instead, render QUuid as "QUuid(QT_NO_QUUID_STRING)".
Task-number: QTBUG-24816
Change-Id: Ia52283d7461a9907bcec7a110e41c9f830895efe
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Jeremy Katz [Mon, 18 Jun 2012 20:08:00 +0000 (22:08 +0200)]
define QT_NO_ICONV if QT_NO_TEXTCODEC
This also updates qfeatures.h with various other things that have
been neglected. Run $QTSRCDIR/util/scripts/make_qfeatures_dot_h
after changing qfeatures.txt
Task-number: QTBUG-24816
Change-Id: I18b71fcec71efa9cfe3425fb1a7833456ec411b9
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Jeremy Katz [Mon, 18 Jun 2012 15:18:13 +0000 (17:18 +0200)]
Make QVariant compile with QT_NO_QUUID_STRING
Task-number: QTBUG-24816
Change-Id: I76e6a6bcf1a2381e14f400648e3cb8ba554772a6
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Eike Ziller [Fri, 15 Jun 2012 11:42:19 +0000 (13:42 +0200)]
Mac: Fix rendering of non-int sized fonts.
Scrolling happens in integer steps, so it's necessary to use a
fractional correction value.
Task-number: QTCREATORBUG-7127
Change-Id: I6eccba6532f95aa4bf9270bdaec4b57280dc8e3d
Reviewed-by: Matthias Ettrich <matthias.ettrich@nokia.com>
Girish Ramakrishnan [Mon, 18 Jun 2012 21:51:14 +0000 (14:51 -0700)]
Document and use UserEvent::nullWindow for event delivery
nullWindow is used to track if the window was null when the event
was created. If the window was null at contruction time, the qpa
event delivery code will choose a window to deliver it to.
If the window was not-null at creation time but became null during
the actuall event processing time, the event is ignored.
All the event delivery except the touch event delivery has been
changed to reflect this. I have not changed touch event delivery
because I don't really know what all need to be retranslated into
new window co-ordinates.
Change-Id: Ic62d12a13e70dd4d01226509411817db1b6af108
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Oswald Buddenhagen [Wed, 20 Jun 2012 08:34:13 +0000 (10:34 +0200)]
Merge "Merge branch 'buildsystem'" into refs/staging/master
Mitch Curtis [Mon, 18 Jun 2012 13:53:30 +0000 (15:53 +0200)]
Make QDateTime::fromString()/Time::fromString() adhere to ISO 8601.
Currently QDateTime::fromString and QTime::fromString do not correctly
handle fractional minutes and, in some cases, fractional seconds.
In the case of reading fractional minutes, it has been decided to
ignore invalid characters outside of the 5 character portion that
we're interested in (see code comments in fromStringImpl() for
info on why we read 5 digits). The motive is that there is a
performance penalty for calling mid to get the portion of surplus
string and also for converting to it to a float. This is also in
line with what QDate does with surplus characters, for example.
Task-number: QTBUG-14418
Task-number: QTBUG-25387
Change-Id: Ib742fe80686aff3c3770b995678cf838fb4e3bb4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Mitch Curtis [Fri, 8 Jun 2012 16:09:09 +0000 (18:09 +0200)]
Clean up QDateTime tests.
Clean up and consolidate different tests in tst_qdatetime.cpp
(that seem to be doing the same thing) into single tests.
Change-Id: Ib6ceb1cb7fb4c6eca672495f96d9cfd907853c85
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Mitch Curtis [Fri, 8 Jun 2012 11:36:16 +0000 (13:36 +0200)]
Add leading zeros to years below 1000 in QDate::toString().
QDate::toString(Qt::ISODate) lacks prefixed 0's on years below 1000.
The ISO 8601 standard dictates that this should be the case.
Task-number: QTBUG-16476
Change-Id: I7e73152bba0f5894bcbaa3f4418732b74ce86bc5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Gatis Paeglis [Mon, 18 Jun 2012 10:01:57 +0000 (12:01 +0200)]
Update calendarwidget example
Due to API changes introduced by
ff55d64f6788563a6ef9da2b6d0b6dc23bb936aa
Task-number: QTBUG-26130
Change-Id: I4e5bdf3dd81d75308a3e565239b9d7a95452cd43
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Wed, 13 Jun 2012 20:26:30 +0000 (22:26 +0200)]
Use the POSITION_INDEPENDENT_CODE property on targets using Qt.
This property is only set if Qt is configured
with -reduce-relocations (which is the default).
Change-Id: If2f0ab92448f03bbc3f7c828d3bca60107229072
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Martin Petersson [Wed, 13 Jun 2012 10:38:51 +0000 (12:38 +0200)]
QUrl::setEncodedQueryItems should replace
If there is already a query string present in the url. It should be
replace when setEncodedQueryItems is called again.
Task-number: QTBUG-26148
Change-Id: I2bd4e1f5d9b4161d64556062e97141888ad89b3b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Samuel Rødal [Wed, 20 Jun 2012 07:25:54 +0000 (09:25 +0200)]
Improved QCursor::setPos() robustness on xcb.
This makes tst_QGraphicsView::hoverLeave() less flaky.
Change-Id: Iaa1be6e2d02499679c69b26c07132413040173b6
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Kent Hansen [Fri, 15 Jun 2012 11:39:28 +0000 (13:39 +0200)]
Add test for queued call of method with unregistered parameter type
Verify that this produces a warning containing the relevant typename.
Change-Id: I046c02585e410a211e9175600b1027dda83bdd9c
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Kent Hansen [Fri, 15 Jun 2012 10:23:00 +0000 (12:23 +0200)]
QMetaMethod::invoke: Use normalizedType() to normalize return type
The code was probably written before QMetaObject::normalizedType()
was introduced.
The behavior is covered by the existing tests
tst_QMetaObject::invokeMetaMember and
tst_QMetaObject::invokeBlockingQueuedMetaMember.
Change-Id: Ib1c3b3e4dff37947defd1dfdcc860df44539aa3a
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Frederik Gladhorn [Thu, 10 May 2012 19:36:24 +0000 (21:36 +0200)]
Accessibility: Do not automatically add controllers
While I do like the idea, it currently relies on every
QWidget having QAccessibleWidget as a11y representation.
This crashes for example when using the itemviews and
asking them for relations.
Change-Id: Ie15a78dae620eefb97c646b9e802b13bdf864650
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Yuchen Deng [Thu, 14 Jun 2012 12:27:02 +0000 (20:27 +0800)]
MOC: Avoiding MAX_PATH limit on Windows
See: http://msdn.microsoft.com/en-us/library/
aa365247(v=VS.85).aspx
Task-number: QTBUG-26157
Change-Id: Ie74481cd06c31149a060a432352da5b2731caaef
Reviewed-by: Debao Zhang <dbzhang800@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Gabor Ballabas [Tue, 19 Jun 2012 11:24:43 +0000 (13:24 +0200)]
Fix compile-time error macro when building with -fPIE
This macro causes a compile-time error using LLVM with Clang
when the target that includes qglobal.h is built with -fPIE.
Change-Id: I2e82e1a8feed9009c814f187b06501b26ea3b3b7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Tobias Hunger [Sat, 16 Jun 2012 20:52:03 +0000 (22:52 +0200)]
Fix access to uninitialized pointer
The C++ standard says in 9.4..2 that the object expression is evaluated,
so any compliant compiler may access d. So this syntax is a bug in this
place.
Change-Id: I37d2c4ea54febd40410ca473c906bcb1c66c4974
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Olivier Goffart [Wed, 25 Apr 2012 09:09:48 +0000 (11:09 +0200)]
Add qMove macro to support std::move
Change-Id: I373e07f479c11b172dab35ed7e5b62724aa50a1a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Friedemann Kleint [Wed, 13 Jun 2012 14:14:40 +0000 (16:14 +0200)]
Windows: Fix MinGW warnings.
- Missing initializers for structs
- Missing enumeration value
- Mixing enumeration/ints in operator ?
Change-Id: I149ab01ad2ebd04f89e5c699905d5ba724828e0f
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Rohan McGovern [Wed, 20 Jun 2012 01:03:58 +0000 (11:03 +1000)]
tst_qfilesystemmodel: increased test's permitted runtime
This test has recently timed out a few times on Windows test runs, with
no relevant changes to account for the timeout. Double the permitted
runtime.
Change-Id: I93765c9ea592973495bfe3a2f63e63ed615eb542
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Oswald Buddenhagen [Tue, 19 Jun 2012 14:48:23 +0000 (16:48 +0200)]
Merge branch 'buildsystem'
This appears to be fully backwards-compatible with all tested modules,
as far as CI is concerned.
Change-Id: I53f979d06d0a264c5aab1193bab181a38ab837d6
Bjoern Breitmeyer [Fri, 11 May 2012 08:24:28 +0000 (10:24 +0200)]
Fixed Wince Makefile environment
Integrated the checksdk tool into qmake and made
the makefiles selfcontained, so configure make, is now
enough to build qt for wince
Change-Id: I29076702eca2ec23d4d06bb3d5c5cef9d4f95161
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Wed, 6 Jun 2012 11:01:45 +0000 (13:01 +0200)]
make missing qt modules fatal
there is no point in continuing; it will error out later (in more
cryptic ways) anyway.
Change-Id: I2562eadc2d91bfaa6e85368dc3774da31409a141
Oswald Buddenhagen [Wed, 13 Jun 2012 12:42:32 +0000 (14:42 +0200)]
less confusing wording
Change-Id: Ia509fe1a28de803673623d425f5949b35404598c
Oswald Buddenhagen [Mon, 4 Jun 2012 15:10:11 +0000 (17:10 +0200)]
fix misnomer: qt_module.prf => qt_build_config.prf
qt_module suggests to be congruent to qt_plugin.
Change-Id: I629530bcbe2ba6c0adbdc11a275119c8aff0c953
Oswald Buddenhagen [Wed, 13 Jun 2012 12:36:32 +0000 (14:36 +0200)]
fix regexp in qmodule.pri inclusion check
this also allows us removing the redundant flag variable
Change-Id: If26d22280ce7bc2ef3514c7c11ce7cd9baec1293
Oswald Buddenhagen [Fri, 18 May 2012 20:13:51 +0000 (22:13 +0200)]
revamp automatic makefile generation for sub-projects
instead of making the "real" targets depend on the makefiles, add
conditional makefile generation to the targets themselves.
this causes makefile generation to follow the recursion order determined
by the project, which is important when dealing with prl and module pri
files.
a side effect of this is that qmake and make calls are interleaved now,
which is entirely different from a 'qmake -r' run.
on the downside, calling make with multiple targets which operate on the
same subprojects without prior makefile generation will make a mess, as
the qmake calls will be racing. this should be no problem, as qmake does
not generate recursive targets where this would be useful - at least by
default.
it is not sufficient to just order the creation of the makefiles
non-recursively (e.g., by using gnu-specific order-only-prerequisites),
as an interrupted and subsequently resumed build would happily skip the
nested makefiles.
workable alternative approaches would be walking the entire tree in a
pre-pass to ensure makefile presence (which is incredibly slow) or
creating additional stamp files only after recursing and having the
makefiles depend on them (which is ugly).
Task-number: QTBUG-23376
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Change-Id: I88d3e7610215677d362026de316513d3bea04b06
Oswald Buddenhagen [Thu, 19 Apr 2012 17:21:32 +0000 (19:21 +0200)]
support for private depends in modules
if a module's private headers add additional dependencies, QT_PRIVATE is
now the place to declare them. note however, that this may not contain
other private headers in turn - that would be much harder to implement,
and we want the explicitness anyway.
Change-Id: Ic516fcf1a003c95798df4fbe216f92016afaf47e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Fri, 18 May 2012 18:44:01 +0000 (20:44 +0200)]
introduce $$QMAKE_CHK_EXISTS_GLUE
instead of hard-coding platform differences, use a variable.
Change-Id: I20e98811ad5f07429148c6f88aedbabc3ba58fff
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 18 May 2012 18:22:42 +0000 (20:22 +0200)]
centralize definitions of shell commands
there are only two types. everything else is duplication.
Change-Id: I87f2bdd3d56b94bb2ecdb60e8861afeb9af3666f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Mon, 23 Apr 2012 10:44:40 +0000 (12:44 +0200)]
normalize $$QMAKE_QMAKE
everything in the projects should be normalized. only the makefile
generators need to adjust it to the native form.
Change-Id: I06a4e997f32134d13949ec4a9dd1b44367aab7cb
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Tue, 22 May 2012 13:28:48 +0000 (15:28 +0200)]
correctly find idc even for makefiles
this is a qt tool, so it needs appropriate treatment
Change-Id: I0cb30ba07e03c72ee275cd916ca0a39a99fc3705
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Fri, 18 May 2012 19:51:02 +0000 (21:51 +0200)]
fix in-/out-dir mixup
no point in entering the outdir and leaving the indir.
this doesn't really matter except for the obsolete borland generator,
but whatever.
Change-Id: Ieb4e4c549ebd65f99e4d00819c52822968b060a4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 18 May 2012 19:06:54 +0000 (21:06 +0200)]
remove unnecessary conditional
the code above already deals with the differences
Change-Id: Ifb799e46f5187e7bd3d0f0169e868ad267bcfe23
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 29 May 2012 08:53:12 +0000 (10:53 +0200)]
remove duplicate assignments of MKDIR & CHK_DIR_EXISTS
Change-Id: I314659a1ba25227380176dc65a9c81e3c6df28c1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 29 May 2012 08:53:00 +0000 (10:53 +0200)]
unobfuscate makefiles re $(CHK_DIR_EXISTS)
no need to define an obscure variable for it. just inline it.
the assignments are left in for compatibility with hand-written commands.
Change-Id: I9bc3914e2c4116f3b8fe00a421ca0f036bb7e214
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 30 May 2012 10:33:34 +0000 (12:33 +0200)]
make 'qmake_all' targets respect .depends and CONFIG+=ordered
Change-Id: I010a9886ee0d40e4319cb6bd873b038336a42111
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Fri, 18 May 2012 14:59:22 +0000 (16:59 +0200)]
make 'qmake_all' target of SUBDIRS projects properly recursive
so far it would rebuild the makefiles one level down only, which is
somewhat arbitrary and not really helpful.
Change-Id: I5fe01f379ecc4b210610a674d7df7dfc18131eef
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Fri, 18 May 2012 15:07:26 +0000 (17:07 +0200)]
make 'qmake' target of SUBDIRS projects non-recursive
that's consistent with other projects. 'qmake_all' can be used for
recursion.
Change-Id: Ie6d620f7a3e0e28d3f2f82f01ca94c2f46137c68
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Wed, 16 May 2012 12:54:21 +0000 (14:54 +0200)]
don't use $(MAKEFILE) to refer to SUBDIRS' makefiles
$(MAKEFILE) is our own file, and using it would wreak havoc if it was
named anything but Makefile.
Change-Id: I51cae2014a85399b409f18788f864ff2a82e493e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Mon, 14 May 2012 13:13:12 +0000 (15:13 +0200)]
do not add "/." to _PRO_FILE_PWD_
if a "subdir" project added a project file from the same directory as
itself, "/." would be appended to the path, which is obviously not useful.
Change-Id: Ia733dedb57e568c5cf9a3d5eb29727176a5142c5
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 11 May 2012 09:21:42 +0000 (11:21 +0200)]
don't refer to removed headers
Change-Id: Ib1d51f8fb6078c6ac365b455bde5bebf66b13b15
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 10 May 2012 14:49:13 +0000 (16:49 +0200)]
allow projects to suppress qmake recursion
webkit does some unholy tricks with the ordering of qmake and make
invocations, so it does not work with qmake -r. to make it still
possible to integrate it into the qt5 aggregator project, give it a
chance to "break out" from the recursion.
Change-Id: I926836e44c0e0790cdd90e6b0c8f766dccc33c4d
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Thu, 10 May 2012 13:35:24 +0000 (15:35 +0200)]
scan module path backwards
the last read file wins, so reading in inverse order ensures that we
respect the list's sorting by decreasing priority.
Change-Id: I2e6539a52d4195ed6af4c0143b035c39577b8310
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Mon, 2 Apr 2012 16:59:24 +0000 (18:59 +0200)]
let default_pre add modules to the qmake path
that way qmake is made aware of the forwarding pris which are generated
for this module even when a top-level .qmake.cache prevents the module's
root from being found automatically.
the path is also added to the cache, so that subsequent partial
qmake-ing of the tree will still find the module.
this also makes the -cache-module-fwd parameter of syncqt useless, so
remove it.
Change-Id: I2afbc52a465c0b3260e9bcaf032c43a82ae8061f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 10 May 2012 13:34:05 +0000 (15:34 +0200)]
recognize QMAKEMODULES env var, property and cache variable
the latter allows sub-projects to dynamically extend the qmake search path
specifically for modules. the others are just for congruency with
QMAKEPATH and QMAKEFEATURES.
Change-Id: I0c099035f8dc8ee8645566dbc635644a15ed9da5
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 6 Jun 2012 20:14:41 +0000 (22:14 +0200)]
look for mkspecs/ even below .qmake.cache/.conf-determined root
otherwise a cache/config in an aggregator project may unduly hide the
mkspecs/ of the aggregated project from qmake's view.
Change-Id: Idb0b124de071822f8f55463d9f8a4d194ef3130e
Oswald Buddenhagen [Thu, 10 May 2012 10:59:14 +0000 (12:59 +0200)]
add support for a super cache
qmake will now look for .qmake.super, just like it looks for .qmake.cache,
and the cache() function has a mode to write this super cache.
this allows the creation of aggregator projects like, say, qt5.
a notable difference to the normal cache is that this file is *not* added
as a dependency of the Makefile. this means that modifications done by
later sub-projects will not cause a re-processing of earlier projects, and
consequently that one should be cautious regarding what information to
store there.
another notable difference is that this file is read *before* the spec,
so the spec can use the variables from the cache without resorting to
$$fromfile() & co.
Change-Id: I4807b6d34014261fa9eebd6f0ae128b802d86691
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 10 May 2012 09:22:07 +0000 (11:22 +0200)]
look for .qmake.conf files
this is the source dir equivalent of .qmake.cache and can be checked
into the repository. it can be used to make project-wide settings, or
just to signal the presence of an mkspecs/ directory.
Change-Id: I5f1cebad2aa2a89e78089341b2051613b6b7a613
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 10 May 2012 08:41:54 +0000 (10:41 +0200)]
find .qmake.cache for subprojects independently
this allows the creation of aggregator projects, like, say, qt5.
this is not expected to have a negative impact, as no project could
reasonably expect a nested .qmake.cache to *not* take effect - in fact,
if the project was processed stand-alone, it would already use it.
Change-Id: I33f2935d309baba7e95465f2fefb8231c4f03eda
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 7 Jun 2012 10:48:40 +0000 (12:48 +0200)]
allow setting QMAKEPATH and QMAKEFEATURES in .qmake.cache
Change-Id: Ie383abb57c06cb49d38345d64750837b8fe14c70
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 27 Apr 2012 16:14:56 +0000 (18:14 +0200)]
don't duplicate project_build_root's calculation needlessly
Change-Id: Id2f343c450149b13b52c2cae8eb6eb4bfd73fc03
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 13 Apr 2012 14:17:12 +0000 (16:17 +0200)]
move generation of module master headers to qt_module_headers
this has the advantage that the %mastercontent assignments in sync.profile
are not necessary any more. as it happens, most modules got them wrong
anyway.
Change-Id: Ibdf689be408f18e1d90c44ef4ecacd7c24b1f1c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 25 Apr 2012 10:28:36 +0000 (12:28 +0200)]
make master phonon compat header a forwarding header
instead of writing the same file twice, just forward to the compat
header, like it is done for every other header.
Change-Id: I8c908f80149aff4720cca6d51ab5b550c31f78b1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 12 Apr 2012 18:55:53 +0000 (20:55 +0200)]
remove detection-based usage of modules which are frameworks
each qt module comes properly declared and located, so there is simply
no point in performing a search.
Change-Id: I86fad21bb8e128b85f1000cc116cc44a23642eb4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 12 Apr 2012 18:54:05 +0000 (20:54 +0200)]
fix direct includes from modules which are frameworks
Change-Id: I1f2c1e5ebdb2fa258500a08b32dcafb4150ee424
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 1 Jun 2012 06:23:12 +0000 (08:23 +0200)]
let modules which are frameworks remember that fact
this will allow us to not rely on the modules matching the global
qt_framework setting.
Change-Id: Ic1dce757ff63d06af54a2428e23a1bbcf1c81ba1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 12 Apr 2012 18:33:20 +0000 (20:33 +0200)]
remove workarounds for broken syncqt
SYNCQT.HEADER_FILES contains qconfig.h just fine nowadays.
Change-Id: I52b35d2ac41d772acaef06f3931df75742c867cb
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 15:28:49 +0000 (17:28 +0200)]
automatically add QT_BUILD_FOO_LIB to DEFINES
Change-Id: I35d9861e48469eb5cc8824e361450684047e6559
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 10:04:17 +0000 (12:04 +0200)]
remove backwards compatibility hacks
there won't be terribly many projects relying on it. now's the time to
find out for sure ...
this reverts commit
3279b07302fde0eb14f9b197c9ad2e14d512817e
Change-Id: Id36687ab3bfc7dd5ce35b584621a8f5b3ee00fc9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 10 Apr 2012 18:42:59 +0000 (20:42 +0200)]
clean up projects from QPRO_PWD nonsense, etc.
Change-Id: I4c41aedf5bfb37e31ad202cacd2312b0bdb168e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 10 Apr 2012 18:35:04 +0000 (20:35 +0200)]
auto-generate QMAKE_PKGCONFIG_REQUIRES and QMAKE_PKGCONFIG_DESCRIPTION
less boilerplate, more accuracy
Change-Id: I6cc2abd50eafb4901d987c122f10a62ec9ea9da3
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 10 Apr 2012 18:04:23 +0000 (20:04 +0200)]
move QMAKE_PKGCONFIG_VARIABLES stuff out of qt_module_config.prf
this only needs to be set in one module each - the one which provides
the relevant tool.
this is moderately source-incompatible, in that a package which queries
a given variable from the wrong library won't get the path it looks for
any more. as it's likely that everyone was using QtCore as a reference
anyway, this will only affect uic - which is in the new QtWidgets
library, to which people need to adjust anyway.
Change-Id: If05d3c33fda6cd12466e261391b825c59651d3e4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 13 Apr 2012 14:14:54 +0000 (16:14 +0200)]
remove ACTIVEQT_IDC assignment from QMAKE_IDC
the specs have been cleaned of it
Change-Id: Ica0ab4d5f9d36f1f9566759326f3b3144e34cd67
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 10 Apr 2012 17:17:12 +0000 (19:17 +0200)]
remove support for CONFIG+=qt_compat
this is truly prehistoric stuff
Change-Id: Ia781fc03c081bff895f4d2b5325d3624441bdf5f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 10 Apr 2012 17:06:41 +0000 (19:06 +0200)]
don't explicitly inject qt header/library paths
the modules already do that on demand.
Change-Id: I889a5cd7b62631e2551ada4b096f20b3b79b2c75
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 16:25:29 +0000 (18:25 +0200)]
always add library path from module
that way we can theoretically support modules outside $QTDIR.
also, it's just cleaner.
Change-Id: I6139ebc7328b64ace8552b3e54f9a8c69248ceec
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 10 Apr 2012 16:49:01 +0000 (18:49 +0200)]
make module includepath addition less convoluted
don't prepend the paths, as this will only mess up building of
subsequent modules (e.g., building qtdeclarative against an installed
qtbase would pick up the headers from the qtdeclarative previously
installed into the same directory as qtbase).
for frameworks this was a rather pointless exercise in the first place,
as their headers are properly isolated anyway.
however, make sure that we don't add system locations to the search
paths, as this is a) unnecessary and b) messes up subsequent libraries
in non-standard locations which want to shadow versions in standard
locations (pkg-config .pc files which add standard paths are considered
broken as well).
Change-Id: Ie1dc65d4767e98e1df6e49012505141935a6c704
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Thu, 5 Apr 2012 14:47:35 +0000 (16:47 +0200)]
add qtCompileTest()
this fully replaces qtmodule-configtests.
it is way shorter and it actually integrates reasonably with qmake.
Change-Id: I819cc6807ad3661c419b54fa253894936dd88a64
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 4 Apr 2012 12:02:10 +0000 (14:02 +0200)]
do not route qtmodule-configtests invocation through syncqt
there is completely no reason to do it.
Change-Id: Ie186ef4c1bbd12c256acb2fe374d12ebe777d6c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 13 Apr 2012 15:46:42 +0000 (17:46 +0200)]
don't use qt_module_config for winmain
it is not really a Qt module, and pretending causes some messups.
Change-Id: Id0980f7c00d6d176dd4937f8b265b8b571aa1277
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Mon, 4 Jun 2012 15:12:24 +0000 (17:12 +0200)]
auto-generate module pris
Change-Id: I654428771034221ccf424be34d5d9c7764daf3b4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 09:54:35 +0000 (11:54 +0200)]
don't refer to module versions during bootstrap
once we auto-generate the pris while building their respective modules,
the versions won't be available during bootstrap yet.
however, as these are core modules, their version is locked to the global
$$QT_VERSION anyway, so just use that.
Change-Id: I092f5e7d4dfe99c03e0df71f9409cac9be9f2297
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Oswald Buddenhagen [Thu, 26 Apr 2012 11:18:10 +0000 (13:18 +0200)]
move creation of module version header to qt_module_headers
Change-Id: I650b495ec1789eb03b31d796f9f475ba01aab2d3
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 12:22:11 +0000 (14:22 +0200)]
create module version headers in build dir, not source dir
Change-Id: I07bf4dbeba2d35284ecf55542f9cd457b2e49b80
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 12:13:01 +0000 (14:13 +0200)]
make %inject_headers a per-module config value
it's module-specific.
on the way, fix it to actually support multiple files.
Change-Id: I796b0e98e38a54754022e0e2fa48cecb54d06ff4
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 14:03:18 +0000 (16:03 +0200)]
automatically add the module version headers to %classnames
Change-Id: I7706a0d54e704320e9e1e480b387e46417739ccf
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 11 Apr 2012 10:48:43 +0000 (12:48 +0200)]
automatically add the version header to HEADERS
Change-Id: I7c2e1d852ebdbc5cca7a3a31ab2b4c9ab9faffd9
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Wed, 25 Apr 2012 09:41:09 +0000 (11:41 +0200)]
factor out qt_module_headers.prf
this doesn't make too much sense as such, but the file will grow.
Change-Id: Iceaecdc24f83b3dafb40c8d2f1b6cddafa2d70a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>