Commit Graph

53 Commits

Author SHA1 Message Date
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
7f1d51a45d Make sure we qtPrepareTool moc, uic and rcc too
Their paths may vary depending on configuration and
build/install state going forward.

Change-Id: I60c8bcd1dc6c2fb729bf84d211875a3d910d5e4a
Reviewed-on: http://codereview.qt.nokia.com/1761
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
f3f5dc6346 Fix non-installed library detection
Change-Id: I1eb8337bebb524b9f02aef63cd42efcb4a9211bc
Reviewed-on: http://codereview.qt.nokia.com/1759
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
3fbc9e658d Make sure we only run syncqt for the non-buildpass cases
In debug_and_release builds, we have three passes, the glue
pass, and a pass for each build type. We only need to run
syncqt when we are in a glue pass, which is when
'build_pass' is not set. In non-debug_and_release builds,
build_pass is never set, so this condition works for all
build types, with multiple configurations or not.

Change-Id: I191da0df3ad422bb5fb8994391c2b2d2e23efc32
Reviewed-on: http://codereview.qt.nokia.com/1717
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-07-21 20:40:51 +02:00
Oswald Buddenhagen
1aa9affcf1 fix misnomer: $$resolve_depends() => $$sort_depends()
... and re-add a real $$resolve_depends(), just in case.

Change-Id: I489d6056546340ce95280fe7fd571e30c14470e7
Reviewed-on: http://codereview.qt.nokia.com/1455
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-07-11 18:58:41 +02:00
Oswald Buddenhagen
a84c87f1ad make 1st argument of $$resolve_depends a variable
this is braindead, but it's consistent with the rest of qmake and more
performant. and the argument error message claimed it already anyway.

Change-Id: I973368acc6ffbff17107085ccd68b0334cc3e681
Reviewed-on: http://codereview.qt.nokia.com/1436
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-07-11 18:58:41 +02:00
liang jian
cadbfc07b6 Build Qt with option -Zc:wchar_t under MSVC
This will make projects generated by visual studio being successfully
linked to the Qt dlls if they use the QString::fromWCharArray() or
QString::toWCharArray() methods.

Change-Id: Ie266576c1bcd44cf8534f12b10629b94ef3e1d3f
Merge-request: 727
Reviewed-on: http://codereview.qt.nokia.com/772
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-06-27 19:09:33 +02:00
Liang Qi
8c680aceaa Support -debug build on Mac
-Wl,-rpath-link is expected to work for all gcc except mac.

Change-Id: I4b57e0088db49a8e35840d981e5d6edbb1012396
Reviewed-on: http://codereview.qt.nokia.com/506
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-06-20 18:15:38 +02:00
Marius Storm-Olsen
fd1411a8e5 Ensure we pass -developer-build to syncqt for -nokia-developer builds
When the build directory is the install directory, separate modules
should use qtbase as the path for libs, module pris etc.

This fixes the logic in default_pre.prf so that syncqt is called
correctly in these cases.

Change-Id: Ib3798bfd145d3a3e43b9a222af46270245e6c2e6
Reviewed-on: http://codereview.qt.nokia.com/464
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Reviewed-by: Eckhart Koppen <eckhart.koppen@nokia.com>
2011-06-11 20:23:01 +02:00
Marius Storm-Olsen
2e2ad7ec7f Complain if we don't load(qt_module) first
Not having load(qt_module) first in a .pro file which later
does a load(qt_module_config) will likely overwrite
compiler/linker options in the .pro file.

This can be hard to figure out, and wasn't required before
when we used a global .qmake.cache for all modules, since
it 'preloaded' qmodule.pri file for all .pro files.

Change-Id: I8a9aa3247f938be0b3b13f8c8cc96c18a142ba7b
Reviewed-on: http://codereview.qt.nokia.com/412
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-06-08 21:04:48 +02:00
Marius Storm-Olsen
8fe0427cb8 Fix typo from 1835afe6
Change-Id: I99e4407bbcb82cb27057ada838d73b6582867937
Reviewed-on: http://codereview.qt.nokia.com/379
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-06-08 14:42:23 +02:00
axis
ff65077074 Make qmake slightly more verbose with its syncqt output.
It can be hidden with -silent, however.

Change-Id: I6dbd3c743779b8d2070e41f007df26b530987429
Reviewed-on: http://codereview.qt.nokia.com/235
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Liang Qi <liang.qi@nokia.com>
2011-06-06 10:42:13 +02:00
axis
1835afe621 Moved common module profiles to be feature profiles.
This enables external modules to also make use of them without having
access to the complete QtBase source code.

Change-Id: I056e45cba6c6798b76670b8d238dadb2d9f9c092
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/234
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-06-05 14:47:14 +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
3c66ade66f Don't base QTDIR detection on .qmake.cache.
Change-Id: I4adc26c1c070d26277551d302f4638b819ddc311
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/231
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-06-03 19:36:04 +02:00
axis
44595bdb19 Changes needed for Qt to accept module .qmake.cache files.
Also introduced the QMAKE_EXTRA_MODULE_FORWARDS for specifying a
folder where forwarding profiles will be put.

Change-Id: I8cb242838a5a4d42dc5e3cfd0bd858ab0d2696cd
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/230
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:01 +02:00
axis
a8814fcb69 Made qpluginbase.pri into a feature profile.
This enables other modules to use it without having access to the
QtBase sources.

Change-Id: I0a588b2e14ca88fa068c7c2bcc69ff669444f6c6
Task: QTBUG-19585
Reviewed-on: http://codereview.qt.nokia.com/237
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2011-05-31 12:51:29 +02:00
Charles Yin
a3146bb75f Fixed linking against QtQuickTest on mac.
qmltest is now a Qt module, so it's not necessary to configure
the include&library paths manually.

Change-Id: I1d2baa67138e08ab9007fba9f6adcf8847509ba8
Reviewed-on: http://codereview.qt.nokia.com/163
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-05-31 06:31:55 +02:00
Marius Storm-Olsen
a4ecb10eff Only add dependent include when not already there
Change-Id: I517ad8188a6f6b5ade763f0189f434f446ab6f05
Reviewed-on: http://codereview.qt.nokia.com/198
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2011-05-27 22:22:40 +02:00
Marius Storm-Olsen
56f030b994 Add QtTools' include/QtDesigner as well as QtCore's include/QtDesigner
In modularization QT+=uilib adds the QtCore specific include/QtDesigner,
while QT += designer adds the QtTools specific one.

Using !isEmpty(QT.<module/library>.name) is the proper way to check for
module/library existance in modularized Qt.

Change-Id: If1fe5d192129fd1cdbf43183b52327d7fa9c57ec
Reviewed-on: http://codereview.qt.nokia.com/126
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2011-05-26 13:32:08 +02:00
Lincoln Ramsay
0056cc0ced Do not continue if syncqt fails.
If the user has set QTDIR to something other than the location of the
qtbase build directory, syncqt will fail.

This change prevents the build from continuing. Ideally, the system
should ignore the user-set QTDIR value or give an appropriate error.

Reviewed-by: Rohan McGovern
2011-05-25 15:59:21 +10:00
Jyri Tahtela
f9f395c28b Update licenseheader text in source files for qtbase Qt module
Updated version of LGPL and FDL licenseheaders.
Apply release phase licenseheaders for all source files.

Reviewed-by: Trust Me
2011-05-24 12:34:08 +03:00
Charles Yin
035d6b9188 add qmltestcase.prf for QtQuickTest
so that 'CONFIG += qmltestcase' works
2011-05-21 23:51:48 +10:00
Rohan McGovern
b0a5a98890 tests: allow unstable tests to be marked with CONFIG+=insignificant_test
Marking a test with CONFIG+=insignificant_test will cause the exit code
of the test to be discarded during `make check'.  This is intended to be
used for tests which are valuable to run, but are known to be unstable
and are not feasible to immediately fix.

Reviewed-by: Jason McDonald
Change-Id: I50a712c33c2ebb0af39f1ea0bf2adef7f0936425
2011-05-19 13:56:28 +10:00
Pino Toscano
cc79c63c76 Massively update the hurd-g++ mkspec.
Bring it to the same level as linux-g++:
- copy the defines from common/linux.conf
- use the common gcc/g++ .conf files
- keep the trick of linking the pthread library everywhere
- leave out the wayland variables, which are not useful for Hurd

Merge-request: 1219
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit 027605f67f73c8021c1ae604adad298599785a79)
2011-05-10 12:54:56 +02:00
Simon Frost
9e3fb2b86f Add enablers for Symbian App Booster
To use the Symbian App Booster, a registration file (matching the
filename of the executable, eg helloworld.applite) must be copied to the
import folder within QtAppBooster's private directory. The appropriate
library (qdeclarativebooster) must also be linked against. With this
change, the required actions are carried out by adding
"CONFIG += symbian_appbooster" to the application's .pro file.

Task-number: QT-4892
Reviewed-by: Miikka Heikkinen
(cherry picked from commit ae128aef03d246c9f89bed015092b1c5a925bcbc)
2011-05-10 12:54:55 +02:00
Miikka Heikkinen
b2c43d5a84 Fix "make sis" for projects that have empty OBJECTS_DIR
Temp directory for packagaging got created to system root if
OBJECTS_DIR was empty. Fixed it to use '.' instead in those cases.

Reviewed-by: Janne Koskinen
(cherry picked from commit 930db5826ff2c02d54f2851494000c5fab97da54)
2011-05-10 12:54:45 +02:00
Jiang Jiang
89cf89c51d Fix framework absolute path issue
module.prf incorrectly overwrites INSTALLS which results the absolute
soname not prepended.

Reviewed-by: Marius Storm-Olsen
2011-05-04 15:55:51 +02:00
Gunnar Sletta
9c6347f245 Merge branch 'master' of scm.dev.nokia.troll.no:qt/qtbase-staging 2011-05-04 10:08:23 +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
6319779bed Add module.prf, and install MODULE_PRI for each module
Output warning if not present
2011-05-02 15:30:08 +02:00
Marius Storm-Olsen
738d5c7c85 Make sure we don't always pull in modules from installed mkspecs
When building Qt, qmake should not pull in mkspecs from an installed
version, as this will lead to incorrect paths for the current build.

So, here we ensure only to pull in modules from there we detected the
qconfig.pri, and ensure we still handle the QMAKEPATH case used by
some.
2011-05-02 15:30:08 +02:00
Gunnar Sletta
514641bed5 QT += declarative implies += opengl too, so hardcode it to make stuff work 2011-04-28 15:07:51 +02:00
axis
2e1af58417 Introduced the QT.<module>.plugins variable to module profiles. 2011-04-27 12:06:02 +02:00
axis
afa1807c40 Added QT.<module>.imports support to module profiles. 2011-04-27 12:06:00 +02:00
Marius Storm-Olsen
2a5e47832b Properly detect qmodule.pri 2011-04-27 12:05:58 +02:00
axis
8e4fc361a5 Made sure syncqt gets called correctly even if it is not in the PATH. 2011-04-27 12:05:57 +02:00
axis
59db0a203d Changed path references to ActiveQt. 2011-04-27 12:05:56 +02:00
Prasanth Ullattil
b88c6fbcfe Use the MODULE_LIBS instead of QMAKE_LIBDIR_QT for frameworks. 2011-04-27 12:05:55 +02:00
Prasanth Ullattil
61126f4ae6 Use the 'install_name' linker flag on Mac for the frameworks.
This is required for the frameworks outside the qtbase module.
2011-04-27 12:05:55 +02:00
axis
346b3b0976 Fixed wrong inclusion of QtHelp module. 2011-04-27 12:05:54 +02:00
axis
a93039b229 Fixed a bug in libdir handling.
We need to use QMAKE_LIBDIR instead of QMAKE_LFLAGS and -L, because
MSVC does not understand -L.
2011-04-27 12:05:54 +02:00
Marius Storm-Olsen
56ec511c6a Add QMAKESPEC_ORIGINAL to the INCLUDEPATH when needed 2011-04-27 12:05:53 +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
Marius Storm-Olsen
3ec5d96657 Made modules that depend on other modules add their include paths.
This is needed so that header files which contain references to those
modules (for example in templates) will have their include paths as
well.

RevBy:    axis
2011-04-27 12:05:51 +02:00
axis
fb9b30b610 Corrected include path for UiTools. 2011-04-27 12:05:50 +02:00
Marius Storm-Olsen
78797cc7e9 Make qt.prf use new qt_module.pri structure for QT variable
This change requires the new resolve_depends(var, prefix) function in qmake.
2011-04-27 12:05:46 +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
94e8d3b686 Have qmake run syncqt automatically, if sync.profile is detected
This will normally only happen for top-level pro files,
and syncqt is smart enough to not touch already existing
files. And in edition, syncqt uses the original file's
timestamp on the fwding files.
2011-04-27 12:05:46 +02:00
Marius Storm-Olsen
81f7b862d6 Fixup: not paths for other modules 2011-04-27 12:05:46 +02:00