Commit Graph

42 Commits

Author SHA1 Message Date
Rohan McGovern
841f445c7f syncqt: fixed QT_MODULE_BASE when build path != install path
QT_MODULE_BASE is exclusively used to refer to the top-level source
directory of a module.  However, in non-developer-build mode (used
only when the build path is not equal to the install path), syncqt
would incorrectly set the value of QT_MODULE_BASE to the build
directory.  This caused all $$QT.<module>.sources variables to point
to the wrong place.

Make it always point to the source directory.

Change-Id: I401cf000f9e3a4ab97d68db40330bb98aec25a9a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-12-06 18:37:54 +01:00
Kent Hansen
9296bf95fa syncqt: Create deprecated headers that work with MSVC
MSVC doesn't understand the #warning directive; use #pragma message
instead.

Change-Id: I42fe43269f5a84559a983932737c9eeb6b74b1ff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-12-02 08:11:07 +01:00
Kent Hansen
d4349b0482 Add deprecated headers support to syncqt
When renaming classes, or when moving classes from one module to
another, it's useful to have a simple way of supporting the old
API/location for some time. To this end, syncqt shall now recognize
a "deprecatedheaders" section in sync.profile. It looks like this:

%deprecatedheaders = (
    "QtDeclarative" => {
        "qquickcanvas.h" => "QtQuick2/qquickcanvas.h",
        "qquickitem.h" => "QtQuick2/qquickitem.h",
        "QQuickCanvas" => "QtQuick2/QQuickCanvas",
        "QQuickItem" => "QtQuick2/QQuickItem",
    }
);

In the above example, syncqt would generate a header called
qquickcanvas.h for the QtDeclarative module; when included, this
header will issue a warning and include <QtQuick2/qquickcanvas.h>.
And so on, for the other entries.

Deprecated headers are installed along with the module's normal
headers.

Change-Id: Ie2518b42275c2b2ff44216f07d376ccf5be6dc45
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-11-29 15:33:01 +01:00
Tor Arne Vestbø
656e0d3422 syncqt: Don't generate deprecated forwarding headers anymore
The forwarding headers in 'include/Qt' were deprectated in Qt 4. This is
Qt 5, so time to remove them.

Change-Id: I4bf3797475b91f58af1761ed4165b552613299b3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-11-24 10:38:15 +01:00
Kevin Simons
a85375c57f Add a new handler to syncqt for explicitly dealing with special case headers
Change-Id: I83b26fc88aee0052502c0a4d385ea97f8c933c66
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-11-14 18:41:17 +01:00
Tor Arne Vestbø
17eef6a4c4 Teach syncqt to handle multiple %moduleheaders directories
Each directory is separated by a ';'. The syntax was chosen over the
regular perl [] syntax as ';' was used already in other places.

Change-Id: I7a07a1facb7c08d7a9de6ec45ad57f6057cb0150
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-10-20 21:56:15 +02:00
Tor Arne Vestbø
e6e39a2e58 Prevent 'Argument "" isn't numeric' warning when module version is missing
Change-Id: I2ecef7060c1e436e499221cac03266744a9ee309
Reviewed-on: http://codereview.qt-project.org/6432
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Liang Qi <liang.qi@nokia.com>
2011-10-11 13:25:40 +02:00
Jason McDonald
5e10745dca Fix missing/broken license headers
Change-Id: I54f3ca5979b78f9eec8115cc580c32321859acf6
Reviewed-on: http://codereview.qt-project.org/4514
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-09-13 03:55:26 +02:00
Kent Hansen
9830cb8e59 Add QtV8 library to QtBase
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>
2011-08-29 10:16:01 +02:00
Lincoln Ramsay
29a8761cd8 Report an error when the version header can't be written
If sync.profile points to a location that does not exist in the
%modules section, the version header cannot be written.

Report the error clearly so this problem can be identified.

Change-Id: Ib681087f46362487ffb621221d33cf9b7e54df2f
Reviewed-on: http://codereview.qt.nokia.com/2761
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Michael Goddard <michael.goddard@nokia.com>
2011-08-17 08:01:47 +02:00
Marius Storm-Olsen
dcd435b7fc Allow adding to @ignore_headers from sync.profile
We need this to avoid syncing certain files in QtDeclarative on
Windows.

Change-Id: Ia9fc95262ac18bafc39efc038ea70a1b5d67cddd
Reviewed-on: http://codereview.qt.nokia.com/2641
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-08-04 22:56:33 +02:00
Michael Goddard
2dc77d9264 Try to make sure the config test script is installed.
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>
2011-07-26 13:40:07 +02:00
Michael Goddard
997b2a96c1 Add rudimentary config.test support when configuring modules.
An extra script is added (qtmodule-configtests) which is currently
invoked from syncqt (with some derived parameters passed to it).

The module can optionally have an entry in the module's sync.profile
file in the form of a perl map of "test name" => parameters.  Tests
can print an advisory message if they fail (e.g. "Install this
SDK/dev package"), or abort the syncqt process (e.g. mandatory
prereq missing).  Also, if the test has a "requires(foo)" line
that results in it being skipped, this is also supported.

Change-Id: Ic3c820a488a0992c944994d4d7dc283da36742d6
Reviewed-on: http://codereview.qt.nokia.com/928
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Sarah Jane Smith <sarah.j.smith@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-07-22 14:59:08 +02:00
Marius Storm-Olsen
d83689ca6d Prefix each output line with the library being processed
Makes it easier to track which library output is coming from,
when building Qt with -j > 1.

Change-Id: I9acda04e84014dc441e409a0b24b2f78762dcc1c
Reviewed-on: http://codereview.qt.nokia.com/1765
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2011-07-21 20:40:51 +02:00
Marius Storm-Olsen
e37376dbb4 Make syncqt output more compact by default, and add verbosity level
By default, syncqt will now compress the console output of what it's
doing. Increasing the verbosity level will make syncqt output the same
as before

Change-Id: I542072504f022f87997b4036eda5747a5da88839
Reviewed-on: http://codereview.qt.nokia.com/1764
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-07-21 20:40:51 +02:00
Marius Storm-Olsen
210211b779 Close filehandle when done
Also add a fixme, since the version headers are currently
being created in the source directory.

Change-Id: If6e9eeba854a1f35561b69518eb8739dc28a58be
Reviewed-on: http://codereview.qt.nokia.com/1763
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2011-07-21 20:40:51 +02:00
Marius Storm-Olsen
e41f377587 Sort all readdirs, so the output is reliable
We need the content of the generated module master headers to be
reliable, so rebuilding in the same environment doesn't produce
different results. This minimizes the diff from package building
systems.

Change-Id: Ic914f56e13b11f313f01f6b8666c2d28aa50a985
Reviewed-on: http://codereview.qt.nokia.com/1900
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Arvid Picciani <arvid.picciani@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-07-20 17:49:23 +02:00
axis
0e6be2aa5d Implemented module-local caching of module profiles.
We use syncqt to generate .qmake.cache also for submodules, which
contains the location of forwarding module profiles for that module.
This enables us to build without having to put module profiles into
mkspecs/modules until install time.

Also added support for -developer-build to syncqt.

What it does is to point build directories for binaries and
libraries to a common location in QtBase. This is more
convenient when doing development, since you don't need to set your
path to every module's bin/ directory, but it cannot be used with
release builds, since they need to build independently of QtBase,
in their own directory.

Change-Id: I959c62c11c644f2147a98da894a72452d9c44327
Task: QTBUG-19585
Task: QTBUG-19583
Reviewed-on: http://codereview.qt.nokia.com/232
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-06-03 22:20:40 +02:00
axis
d3e048da7e Make sure that we error out if we cannot write forwarding profile.
Change-Id: Ic0b62532dd8a52cf6ab7a7c10c5ffbe3c9039ec1
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/229
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-06-03 18:18:02 +02:00
axis
c8dead7186 Fixed an argument parsing bug in syncqt.
We need to move the detection up above the general -no-* match,
otherwise it never hits.

Change-Id: I04ab5a1ed2c4a01219e7b9e10948b3fc4989f4b8
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/228
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-06-02 22:54:08 +02:00
Qt Continuous Integration System
d4a5077446 Merge branch 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging:
  Fix a bug in syncqt.
2011-05-11 18:18:18 +10:00
Liang Qi
236e794fc3 Fix a bug in syncqt.
Move the generation of version header file before the sync of header
files.

Reviewed-by: TrustMe
2011-05-11 10:05:43 +02:00
Qt Continuous Integration System
ff112f47c8 Merge branch 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging
* 'master' of git://scm.dev.nokia.troll.no/qt/qtbase-earth-staging:
  Add QT_xxx_VERSION macros for each library in qtbase
2011-05-11 00:10:15 +10:00
Liang Qi
45cdd701fa Add QT_xxx_VERSION macros for each library in qtbase
Provide version info for each library like QTCORE_VERSION and etc.

Task-number: QTMODULARIZATION-44
Reviewed-by: axis
2011-05-10 15:15:15 +02:00
axis
ba3436cda1 Fixed detection of QtBase directory.
The old check would fail for an installed copy of Qt. Instead, base
the check on using QTDIR if it present, otherwise use the parent of
the bin directory, and then check that "mkspecs" is present.

Reviewed-by: Olivier Goffart
2011-05-10 11:14:36 +02:00
Marius Storm-Olsen
1287361f64 Move private headers into versioned subdirectory
This will allow us to expose private headers in a controlled manner,
and ensure that they are not used by accident. This also means that
we internally will have to enable the private headers for the
modules we wish to use in the project.
2011-05-02 15:30:08 +02:00
Marius Storm-Olsen
2e8b6dcb4a Install syncqt, and ensure it runs fine for external modules 2011-05-02 15:30:08 +02:00
axis
2e1af58417 Introduced the QT.<module>.plugins variable to module profiles. 2011-04-27 12:06:02 +02:00
axis
30be61219d Fixed syncqt generation of bin path.
Now it points to QtBase's bin directory, in the case of developer
builds. This makes it easier to develop modules together without
having to install them first.
2011-04-27 12:06:01 +02:00
axis
afa1807c40 Added QT.<module>.imports support to module profiles. 2011-04-27 12:06:00 +02:00
Prasanth Ullattil
d6805e71ff Load the sync.profile after setting the variables. 2011-04-27 12:06:00 +02:00
Prasanth Ullattil
88dd54405f Temporarily pointing QT_MODULE_LIB_BASE to qtbase/lib
This has to changed when we start to generate the module binaries
in their respective  lib/bin folders.
2011-04-27 12:05:58 +02:00
Marius Storm-Olsen
82bf3bd775 Make each module refer to its own bin/
Since modules cannot rely on QtCore having a build directory, nor
can they build the applications directly into $$[QT_INSTALL_BINS]
each module needs their own bin/. Add this path to each module's
pri file, so others can use their applications
2011-04-27 12:05:51 +02:00
axis
c7e91df28e Made syncqt collapse redundant ".." sections in paths. 2011-04-27 12:05:50 +02:00
axis
95be70778a Fixed useless substitution in syncqt.
The substitution is not necessary and messes up the argument that is
passed in.
2011-04-27 12:05:50 +02:00
Marius Storm-Olsen
4b3498e940 Add hardcoded qclass_lib_map.h based on 4.8
This is only until UIC/Designer handles this properly
2011-04-27 12:05:49 +02:00
Marius Storm-Olsen
997f87bfcf Add the source path to the modules .pri file 2011-04-27 12:05:48 +02:00
Marius Storm-Olsen
00c5f39081 Add module specific pris, and make syncqt create fwd includes
The module specific pris define the modules
    name
    version
    dependencies
    include paths
    lib paths
    additional CONFIGs and DEFINES
They are located in the modules source directory, with fwd
includes created in QtBase/mkspecs/modules build directory.
The pris use
    QT_MODULE_INCLUDE_BASE
    QT_MODULE_LIB_BASE
to specify the locations for includes and libs. These paths
are normally based on
    QT_INSTALL_HEADERS
    QT_INSTALL_LIBS
for installed modules, but overridden to the module's build
directory by syncqt for the fwd included pris.
The path of the pris must be specified in the sync.profile
for syncqt to create the fwding pris in QtBase.
2011-04-27 12:05:46 +02:00
Marius Storm-Olsen
07bed9a211 Make syncqt use sync.profile files from each module
The sync.profile replaces the hardcoded paths inside syncqt, and
enables it to work for other modules than just qtbase.
2011-04-27 12:05:45 +02:00
Liang Qi
703842d450 Expose private support for separate module in syncqt. 2011-04-27 12:05:45 +02:00
Marius Storm-Olsen
f6d0b71700 Some changes for qtbase 2011-04-27 12:05:44 +02:00
Qt by Nokia
38be0d1383 Initial import from the monolithic Qt.
This is the beginning of revision history for this module. If you
want to look at revision history older than this, please refer to the
Qt Git wiki for how to use Git history grafting. At the time of
writing, this wiki is located here:

http://qt.gitorious.org/qt/pages/GitIntroductionWithQt

If you have already performed the grafting and you don't see any
history beyond this commit, try running "git log" with the "--follow"
argument.

Branched from the monolithic repo, Qt master branch, at commit
896db169ea224deb96c59ce8af800d019de63f12
2011-04-27 12:05:43 +02:00