A V8 snapshot is a serialized representation of the JavaScript heap.
Using a snapshot can vastly speed up V8 initialization.
This commit introduces a new tool, mkv8snapshot. mkv8snapshot is
automatically invoked as part of building QtV8, and generates a .cpp
file which is compiled into the QtV8 library.
Because mkv8snapshot itself needs to initialize the V8 environment
the non-snapshot way (i.e., by evaluating thousands of lines of
JavaScript), it needs to build all of V8. This means that V8 is
effectively built twice when snapshots are enabled.
When cross-compiling, only host=i386 and target=arm is supported,
since that's the only relevant case for which V8 currently
supports a simulator. mkv8snapshot is built and run as a host tool
(using the simulator), and generates a snapshot that will be used
on the target.
Task-number: QTBUG-21152
Change-Id: I9270652f129505508f78db8b0a39fbf57dc8b86d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Make the indentation sensible.
Remove comments which merely repeat the name of a variable on the next
line.
Change-Id: Ic3ecaaaba61795aeee10299ee44523eb725ecad9
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
To instrument a Qt application or library with the TestCocoon coverage
tool, do `CONFIG+=testcocoon' in the application .pro file.
To instrument Qt itself with testcocoon, use the `-testcocoon' configure
option.
Change-Id: Ie77109a078d11ea51f7a073621e0df9c752c44ae
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
We have the following scenario: Either you build a release package
without asserts, or a debug package with asserts. However, in embedded
development, we need asserts also in release packages. This flag allows
you to build a release package, but Q_ASSERTs still fire.
Change-Id: Icd1dd4dd63c3cafecf515b40741263d902ad42d1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
... instead of adding them to all C*FLAGS. This makes it
possible to pass -Wno-warning-name to configure to disable
certain warnings enabled by default (which didn't work
previously). This also has the added benefit that only projects
that have CONFIG+=warn_on will get the extra warning flags.
Change-Id: I7bbc100155e02e7ccb9ac3be14bd8f585b7bc39b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
These will be passed on as extra C*FLAGS to the Qt build. Useful for
adding -Werror or -Wno-something-or-other.
Change-Id: Ifbbf63261573edd024de951082d99658eb443a3f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Remove Trolltech from the default install path.
Since QPA is the default now, so we don't need to treat it
specially from regular Qt versions. It is the regular
Qt version.
Change-Id: I0bde75c90d2d5944be192e1249bc1a9371c70fcb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Proper multipoint touch support was only introduced in XInput2.1, but Harmattan uses
a tweaked version of XInput2.0 that transfers touch data through mouse events.
This patch applies on the xcb plugin a subset of the changes that were applied on the
Qt 4.7 that was shipped to Harmattan to get similar multipoint touch support.
Change-Id: Ifda7ad40de29d7ded1443d4f78b3ec3807303a9f
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Using the first pkg-config in PATH is prone to errors when
cross compiling. This is a known issue, and `configure' already
avoids using pkg-config for cross compiling (unless -force-pkg-config is
used). However, there was previously no way for a .pro file to test
whether or not the user had passed -force-pkg-config.
Let !contains(QT_CONFIG, no-pkg-config) be used to test whether or not it
is safe to run pkg-config.
(cherry picked from commit 53794d94994cb3149581b1a91762dfa2d6defac0)
Change-Id: I53794d94994cb3149581b1a91762dfa2d6defac0
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-on: http://codereview.qt-project.org/6488
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
If Qt is built without QtConcurrent, the relevant autotests should be
excluded from the build, rather than building empty tests that appear
to pass and thus produce confusing test results.
Change-Id: I43bafcb0ffa42e8981bec4e27bf6a23a28d86df9
Reviewed-on: http://codereview.qt-project.org/6395
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Passing -no-xcb or -no-wayland was enough to get a build with neither
but the error message says you need to pass both. Fix the logic.
Change-Id: I2d554d371b603e7df7bc07e1b4d5271ba31243f0
Reviewed-on: http://codereview.qt-project.org/6099
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Require the user to pass -no-xcb and -no-wayland in order to produce
a build that has only the minimal plugin available.
This prevents "useless" builds from being accidentally created.
Change-Id: If2f7f516a52b75998f3ae7bf802f89f93f6e8218
Reviewed-on: http://codereview.qt-project.org/6005
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
The * was not appearing against the default for the -xcb switch because
of a spelling mistake.
Change-Id: I3491cc9772d02179711b0d474db7ab2ef2398e88
Reviewed-on: http://codereview.qt-project.org/6003
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lincoln Ramsay <lincoln.ramsay@nokia.com>
The only place that now still knows about it is moc,
so it can still parse old headers.
Change-Id: Iafec080f99c67560974e9ebc0cbfb27d9a4b2d6f
Reviewed-on: http://codereview.qt-project.org/5755
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
If qtbase was configured to build both debug and release versions of
libraries, it makes sense for any modules we are building to do the
same by default.
Change-Id: Idb5f78a7414b6ed2bacf295ad01f259fca435410
Reviewed-on: http://codereview.qt-project.org/4702
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
configure is currently whitelisting a set of architectures which are
known to be capable of building V8. macosx was omitted from this list.
Note that we don't attempt to differentiate between different macosx
architectures; we expect any mac which is capable of building Qt5 at all
is also capable of building V8.
Change-Id: I345f2a446d650cbeb1e2ad81656cdbeea6fa0d9a
Reviewed-on: http://codereview.qt.nokia.com/4293
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
QPA mkspecs are of the same form as the rest, we don't want to parse
this in a different way.
This was resulting in the COMPILER variable being wrong and in turn
QT_GCC_*_VERSION and the like not being set.
Change-Id: Ia703be95dbe586e1a8e897c3e244202363fb8c6a
Reviewed-on: http://codereview.qt.nokia.com/4195
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
First of all, the -v8 option was missing from the set
of "Qt style yes options", so it wasn't even recognized.
Second, when the value is "auto" (the default), v8
should only be enabled if we are building for a supported
architecture. Currently that's i386, x86_64, and arm.
(When cross-compiling, CFG_ARCH will contain the target
architecture, which is what we want to check.)
Third, if -v8 is passed but the architecture isn't
supported, configure should issue an error.
Change-Id: I579597bc0d81c3097ee96a29493f5f8112be7edd
Reviewed-on: http://codereview.qt.nokia.com/4193
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
The build-key is an old mechanism to work around binary
incompatibilities in GCC 3.x versions. Modern GCC has not broken binary
compatibility since 3.4, making this mechanism obsolete.
The cache value stored now only includes Qt version, the debug/release
boolean, and the last modified time for the plugin. Old 4-value keys
will be replaced with new keys as the plugins are reloaded the first
time.
This also removes QLibraryInfo::buildKey(), which is a source-incompatible
change.
The UNIX and Windows configure tools have been updated to stop
outputting the QT_BUILD_KEY preprocessor directive.
See also:
http://lists.qt.nokia.com/pipermail/qt5-feedback/2011-August/000892.html
Change-Id: I7d06969a370d3d2c6de413c1230d9d6789cbf195
Reviewed-on: http://codereview.qt.nokia.com/3977
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Declarative no longer used QtScript, it uses V8.
This check in the configure script was stale.
Change-Id: I3c598c0343fc421fdd191a256e07eaa6f4e80058
Reviewed-on: http://codereview.qt.nokia.com/4077
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
This adds Aaron's copy of V8 to src/3rdparty/v8 (as a
git submodule), and builds it as a "normal" Qt library
(without any dependencies on Qt itself).
The library can be added to a project with
QT += v8-private
V8 API headers are available as private includes, e.g.
#include <private/v8.h>
The API is private because we're exposing a third-party
API directly, and we don't want to (and cannot) make
source or binary compatibility guarantees for it.
Since we want the V8 public API headers to be private
headers in Qt, syncqt and sync.profile were extended to
understand a new configuration option, the
@allmoduleheadersprivate array, that tells syncqt whether
all the library headers should be treated as private even
though they don't follow the _p.h Qt convention.
The V8 project files, patches and autotests are copied
from the QtDeclarative repository. The next step after
this commit is to remove QtDeclarative's copy of V8 and
link with QtV8 instead.
Task-number: QTBUG-20963
Change-Id: Ib8820362cdbc8fa662a5e97db841656cf38d1b62
Reviewed-on: http://codereview.qt.nokia.com/3092
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Work-around for bug in XCB which causes a xcb_wait_for_reply to block
if xcb_poll_for_events() is called simultaneously from a different
thread. If the XCB version is too old this work-around causes even
more problems, so we kill two birds with one stone by only using the
work-around if the XCB version has the recent
xcb_poll_for_queue_event() function, which we also need to read
events from a separate thread with reasonable efficiency.
Change-Id: I8a899dad6ded381ce42cba0112e77da3c8aa6887
Reviewed-on: http://codereview.qt.nokia.com/3612
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
separate_debug_info was previously stored in .qmake.cache, and
therefore only affected qtbase. Store it as a QT_CONFIG setting instead,
and add it to CONFIG for all Qt plugins and modules.
Change-Id: I940c8cb30f1c42c85f4d0342e6a482f20677ff04
Reviewed-on: http://codereview.qt.nokia.com/2975
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Minimal patch to change the default. PLATFORM_MAC
is now obsolete, and at some point we need to go
through configure and remove it or replace usages
with for example BULD_ON_MAC.
Change-Id: Ic6a8609158b6021ead23d8731e683ef3a51cc4d7
Reviewed-on: http://codereview.qt.nokia.com/2780
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
This logic should be used for all mac platforms.
Currently it is erroneously skipped for qpa on mac.
Change-Id: Ibc8e0bb38d4c08f48292639c614bc328c703b1bc
Reviewed-on: http://codereview.qt.nokia.com/2836
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Kalle Lehtonen <kalle.ju.lehtonen@nokia.com>
debug/release is always supposed to default on for platforms where
debug/release affects linkage (i.e. mac and windows). Previously, it
did not correctly default on for qpa mac builds.
Change-Id: I8d3c418f3fb787136ab120872fdd4d2ebf82c90e
Reviewed-on: http://codereview.qt.nokia.com/2796
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Previously, the mac arch was only put into qconfig.pri for carbon
and cocoa builds. Make sure it is also available for qpa builds.
This is needed for projects which need to select architecture-specific
sources in their .pro file.
Change-Id: I5f72e3b699b11dafc4dae052620913f2b9b81d0a
Reviewed-on: http://codereview.qt.nokia.com/2313
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
And try to fail a bit more gracefully if it isn't.
Change-Id: I62e01c0536aa0a032940d6a9a5ccf5edcfeef221
Reviewed-on: http://codereview.qt.nokia.com/2109
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
All QT3_SUPPORT functionality will go away with Qt 5
in any case, so let's turn it off in configure now.
Change-Id: Ic8cf483704ad0f1484b2cda097b8e0c915ff2bef
Reviewed-on: http://codereview.qt.nokia.com/824
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Liang Qi <liang.qi@nokia.com>
Remove the references to demos from configure and qtbase.pro.
This is done because of the merge of the demos and examples in Qt.
Everything will be added as an example.
Change-Id: Iec040f5c719384c7aabba971316de40195ed3a69
Reviewed-on: http://codereview.qt.nokia.com/619
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
QtPlatformSupport is a static library. Platform plugins are meant to
link against this library to pull in dependencies such as fontengines
and convenience functions for finding the right GL configs. The linker
will only pull in the symbols used, so the size of the library doesn't
really matter