Commit Graph

138 Commits

Author SHA1 Message Date
Joerg Bornemann
346c756dea fix "install target not created" for WinRt builds
Commit 3ce99adf replaced DEPLOYMENT with INSTALLS and introduced
the "install target not created" warning when running qmake on
WinRt projects.
The code path in qt.prf that was responsible for filling the
DEPLOYMENT variable was never functional in Qt5. We're turning
the code path off until this is properly fixed.

Change-Id: If836ef648f9fb601b7597d39e3d00665d4cf01b0
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-06-22 07:53:12 +00:00
Oswald Buddenhagen
d32f47b703 fix usage of wince scope
Fix style issues along the way.

Change-Id: Ic6a6de28e198eb0b14c198b802e78845703909b9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-06-05 10:29:10 +00:00
Joerg Bornemann
2b5fef7c83 remove now superfluous eval calls
Change-Id: I743f1ec35101aad0ab71cf10932d144a1b04f7e6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-06-03 11:26:53 +00:00
Joerg Bornemann
a1c0a59ce6 deprecate DEPLOYMENT variable
Deprecate the qmake variable DEPLOYMENT that was used for installing
files on remote devices for Windows RT and Windows CE Visual Studio
projects. Use INSTALLS for both nmake and Visual Studio projects.

[ChangeLog][core][qmake] Deprecated the qmake variable DEPLOYMENT in
favor of INSTALLS.

Task-number: QTBUG-21854
Change-Id: Ia9d2c69feb7d87b0b9dc69ff7c0a68be35a57acd
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-06-02 09:59:32 +00:00
Oliver Wolff
32849f4997 qmake: Rework dll deployment
QT_INSTALL_LIBS is not the right place to check for Qt dlls, as they
cannot be found there in a non-developer build. In order to be able
to find the dlls and make adding dll locations easier for the user,
QMAKE_DLLS_PATHS was added. On Windows, the variable points to Qt's
bin directory by default.

Task-number: QTBUG-44960
Change-Id: Ie4e5beeaadee798a055599387e842d7c0502c27a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-04-07 12:55:24 +00:00
Oswald Buddenhagen
c74c548af3 micro-optimization: make use of qtPrepareTool()'s new mode
avoids that we needlessly initialize QMLIMPORTSCANNER in addition to
QMLIMPORTSCANNER_SYS (by making the former have the contents of the
latter).

Change-Id: Ib8a12975de426ae94bd78d489099157c94cea189
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-09-30 18:33:13 +02:00
Frederik Gladhorn
a09a8d509a Merge remote-tracking branch 'origin/5.3' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/network/socket/qnativesocketengine_winrt.cpp
	src/plugins/platforms/android/androidjniaccessibility.cpp
	src/plugins/platforms/windows/qwindowswindow.cpp

Manually adjusted:
	mkspecs/qnx-armle-v7-qcc/qplatformdefs.h
	to include 9ce697f2d5

Thanks goes to Sergio for the qnx mkspecs adjustments.

Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e
2014-07-01 16:25:19 +02:00
Kai Koehne
dee557c8aa Delete qml_plugin_import.cpp file only during distclean
For static builds of Qt Quick apps, qmake generates a qml_plugin_import.cpp
file. Just like the Makefiles, it should be removed only for distclean,
not in the clean step. This is what we do for non-qml plugins, too.

Change-Id: I5a3f2e7d27c3ffd5161162a8a03e4dd9c9245af5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-06-26 11:18:55 +02:00
J-P Nurmi
0fcce50af0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/features/qt.prf
	src/plugins/platforms/xcb/qxcbwindow.h
	src/tools/qdoc/qdocindexfiles.cpp
	src/widgets/kernel/qwidget_qpa.cpp

Change-Id: I214f57b03bc2ff86cf3b7dfe2966168af93a5a67
2014-06-05 22:26:44 +02:00
Oswald Buddenhagen
7a1e17a350 unbreak static qml imports again
a) qmlimportscanner has no built-in -importPath, so it can't be omitted
even for non-prefix builds, and b) the QMLPATHS variable is also used
further down, so we can't just do away with it.

amends a658fa40.

Change-Id: I42a47a82fe13694fbac3c4a3962ebbe1d7e7865b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2014-06-05 17:11:53 +02:00
Oswald Buddenhagen
a658fa40d3 fix/simplify the qmlimportscanner's import path construction
now that we have QTREPOS, we can use that directly instead of collecting
the QT.<foo>.qml dirs. as a "side effect", this makes qml modules without
a corresponding c++ module available to the scan.

Change-Id: I6f172121588ec01c9fa47a99d9990bf9fcfbc69f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-05-23 11:39:25 +02:00
Frederik Gladhorn
1326cd15f7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-x86-qcc/qplatformdefs.h
	src/corelib/global/qglobal.h
	src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
	src/opengl/qgl.cpp
	src/opengl/qglpixelbuffer.cpp
	src/opengl/qglshaderprogram.cpp
	tests/auto/opengl/qglthreads/tst_qglthreads.cpp

Change-Id: Iaba137884d3526a139000ca26fee02bb27b5cdb5
2014-05-06 16:50:03 +02:00
Oswald Buddenhagen
bbcdccd676 deprecate import_qpa_plugin and qpa_minimal_plugin
they have been fully superseded by 4255ba40ab.

Change-Id: If7ac14c8b7d3cf00fb0cb916036b62eb86c9cee0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-04-24 10:45:55 +02:00
Oswald Buddenhagen
dcfd36c268 Revert "Automatically link printsupport plugins to static applications."
It has been fully obsoleted by 4255ba40ab.

This reverts commit 99eecab83d.

Change-Id: Id7b8d3bba27ff43e38e4fe32a4f2950de9ced493
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2014-04-18 07:44:57 +02:00
Frederik Gladhorn
98d3e40fb7 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	mkspecs/qnx-armv7le-qcc/qplatformdefs.h
	src/printsupport/kernel/qcups.cpp
	src/widgets/styles/qstyle.h
	tests/auto/widgets/itemviews/qlistwidget/tst_qlistwidget.cpp

Change-Id: Ia41e13051169a6d4a8a1267548e7d47b859bb267
2014-04-11 14:36:55 +02:00
Oswald Buddenhagen
06e4676871 make QTPLUGIN work in prefix builds for plugins outside qtbase
this means creating forwarding pris also for plugins.

unlike for qt modules, we don't actually populate the .PATH unless it we
are making a prefix build (and thus expecting it to be outside the
regular location).

Change-Id: Id836821cddec8d5f53d0708ae001e8eaa13cc71b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-09 20:53:06 +02:00
Oswald Buddenhagen
4255ba40ab automatically link plugins belonging to qt modules when building static apps
the plugins already declare which modules they belong to.
additionally, we allow plugins to declare which modules they "extend" -
e.g., while the Quick accessibility plugin belongs to Gui's 'accessiblity'
type, it makes no sense to link it unless Quick is actually linked.
finally, it is possible to manually override the plugins which are linked
for a particular type, by setting QTPLUGIN.<type> (to '-' if no plugins
of this type should be linked at all).

Task-number: QTBUG-35195
Change-Id: I8273d167a046eb3f3c1c584dc6e3798212a2fa31
Reviewed-by: Fawzi Mohamed <fawzi.mohamed@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-04-09 20:53:06 +02:00
Ray Donnelly
da77aaa98c qmlimportscanner: Ensure the correct variant is run
qmlimportscanner is run as a $$system command (as opposed
to as a makefile command) so specify it as such to
qtPrepareTool and run it as such too.

The distinction is important for MinGW-w64 static
builds where it must be run via cmd.exe and not sh.exe.

Change-Id: I0832d5138bff7f4fa1968646df28d2367ad062c2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2014-03-19 18:06:20 +01:00
Friedemann Kleint
99eecab83d Automatically link printsupport plugins to static applications.
Add the required printsupport plugins to the QTPLUGIN variable
as is done for the QPA plugin.

[ChangeLog][QtPrintSupport] Made the Qt buildsystem automatically include the
necessary plugins so that static applications can print.

Task-number: QTBUG-29663
Change-Id: I0e2e3b0f25dd5714bd187711c85893926b0c4e85
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-02-08 13:34:37 +01:00
Morten Johan Sørvig
06af925286 Check for existence of QML import paths.
Filter out module QML import paths that point to 
nonexistent file system paths.

Change-Id: I897ef50593eeb46c6c9eaec27313ec12e6113cb6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-14 17:44:46 +01:00
Tor Arne Vestbø
55c14e35f1 Resolve Qt module deps before determining if QML import scanner is needed
The qtAddModules functions resolves deps internally, but doesn't affect
the original QT and QT_PRIVATE variables. We need to pick up situations
such as the user adding QT += quick, which implies QT += qml through
the QtQuick module's dependecies.

Change-Id: I14411dbea3e4f7402be404073a3fe8f18dbb165f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-05 15:52:02 +01:00
Richard Moe Gustavsen
2ae4e180ac qt.prf: add correct library version when using qmlimportscanner
We need to add the correct suffix to the libs we add when
running qmlimportscanner. Otherwise we will always add
release versions of the libs instead of debug versions
when generating debug builds. This in turn will confuse the
xcode generator that will try to convert the libs in
LIBS to native Xcode build variables.

Change-Id: I4d9fab49ad9e644e9bfd06caf79fc084bde2a3b7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-04 11:42:01 +01:00
Richard Moe Gustavsen
42e6801843 iOS (OSX): rework how to bundle QML import folders
Before this patch, we would copy "$QTDIR/qml"
directly into the bundle as "qml". This would cause problems
if the user also tried to deploy qml files to a "qml" folder, or
if any other file in the bundle ended up with the name "qml" (which is the
case for QtDeclarative/tools/qml, where the executable is called "qml").

This patch will instead copy the contents of each import folder
into QMAKE_QML_BUNDLE_PATH, which will default to "qt_qml" on iOS
and "Resources/qt_qml" on OSX.

We also change the implementation to use a post script rather
then QMAKE_BUNDLE_DATA for two reasons:
1. Xcode does not like "copy build phases" to copy folders, only
    files (You cannot even create such a phase from Xcode, although
    it is possible to force it the way we create project.pbx. But
    this was error prone)
2. We need to strip away unneeded files from the bundle, like
    archives (which are linked in statically, not dlopened run-time).
    Using rsync lets us copy and strip in one operation.

Change-Id: I7c2117f6cfbe11efdc272dff71adb0b1e619a5ff
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-10-25 12:32:31 +02:00
Oswald Buddenhagen
363cebe6b1 purge auto_use_privates module option
it was introduced as a hack to simplify writing tests, but the change to
make use of it was backed out of testlib and nobody seems to care.

Change-Id: Icc86621b865276e86593afdb923247bbdca19d49
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-24 20:20:59 +02:00
Oswald Buddenhagen
ab17a3c3c4 remove broken validation of QMLIMPORTSCANNER
the variable may contain a complex command, so an exists() check is
doomed to failure if the tool is built dynamically.

also, the check is not really necessary: it failing indicates a bug in
the qt build system, and we don't really need to complicate the code to
deal with such corner cases.

Change-Id: I2e6087dcc6dd4a4f70bdf739550276f364c880dd
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-18 20:05:56 +02:00
Oswald Buddenhagen
21ce4fd240 make it possible to explicitly suppress the qml import scan
if the user knows that no additional imports need to be linked, this
can be used to optimize the build time.
as it happens, it can also be used to fix the build of the qml tools
themselves ...

Change-Id: Id77aea1f20cabdc2e831540c61d8a4b8e85c040b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-10-18 20:05:16 +02:00
Morten Johan Sørvig
24b440fb54 Static builds: Link QML plugins.
Run qmlimportscanner, add found plugins to the LIBS
line, generate qml_plugin_import.cpp.

Change-Id: I6c6b927cceb36fa2dc405ad698f26d20398b33c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-10-17 11:38:58 +02:00
Andrew Knight
d959c37eaa WinRT: Basic global support
Various global changes, primarily preprocessor flow, to support the
WinRT platform.

Change-Id: I3fa9cf91d5fb24019362e88fcf205e31b4f810b5
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2013-09-20 13:53:59 +02:00
Oswald Buddenhagen
2e4ce301f9 take advantage of new safety regarding build config resolution
all tests that happen after default_post loads resolve_config can rely
on debug vs. release, static vs. shared, and staticlib vs. dll being
properly "de-conflicted".

Change-Id: Ie0b4defcd6024bd1c25f53ba7e03621052d96492
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-18 15:52:39 +01:00
Oswald Buddenhagen
4c34b418b8 fix lack of rpath-link when using modules from final location
if the libraries are in a non-standard location, but no rpath is used,
rpath-link is needed. this is often the case for non-prefix builds
(which have no forwarding pris any more).

as we cannot store absolute paths in the final pris, we need to store the
module names, and resolve them only at use time.

Change-Id: I1538b5d531611c76a2d7058a3b2ff683bdcbe427
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-02-04 15:10:22 +01:00
Miikka Heikkinen
889e991773 Generalize the check for gui in static plugin import generation
Generalize the check for gui by checking for needs_qpa_plugin
CONFIG value instead, which gui adds to MODULE_CONFIG.

Task-number: QTBUG-28215
Change-Id: I5834a3f81e5c3868ee1a3fa405ebc6410db1f900
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-20 13:59:46 +01:00
Miikka Heikkinen
3a810c8238 Enable forcing generation of static plugin imports
Using some modules requires importing static plugins also for shared
libraries (namely QtAxServer), so provided a way to force plugin
imports even for non-applications using force_import_plugins
MODULE_CONFIG value. This required moving the plugin handling after
qtAddModules calls in qt.prf.

Task-number: QTBUG-28215
Change-Id: Id6bb92ed7c078cc8c54538ddc9bb8e8ad316f277
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-20 13:59:36 +01:00
Miikka Heikkinen
d4d2e4b39d Automatically import plugins in all applications with static Qt
Since all gui applications already need some QPA plugin added,
we might as well add the default plugin and generate the code
to import the plugins automatically.

User can opt out from the automation by removing relevant
items from CONFIG variable: link_qpa_plugin or import_plugins.

Task-number: QTBUG-28131
Change-Id: Ic171c363464c099143374d3e39bcc28f6edf73d2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-11 16:08:10 +01:00
Stephen Kelly
1278b3cb8a Remove QT_DLL and QT_NODLL defines.
Task-number: QTBUG-28044

Change-Id: Ib8c4e1e8e52703aa6590875c34f05b6bc71db808
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-11 13:37:57 +01:00
Miikka Heikkinen
903fa2e4aa Add QT_DEFAULT_QPA_PLUGIN to generated qconfig.pri
Configure will now generate QT_DEFAULT_QPA_PLUGIN qmake variable
to specify the default QPA plugin.

"CONFIG += qpa_default_plugin" statement in application .pro file
will add the default QPA plugin into QTPLUGINS.

"CONFIG += qpa_minimal_plugin" statement in application .pro file
will add the minimal QPA plugin into QTPLUGINS.

Task-number: QTBUG-28131
Change-Id: I12a241005f30b37467d783b50f0369b47e605e68
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-10 15:33:54 +01:00
Miikka Heikkinen
f166fcd3d0 Pro-file level support for importing plugins for static Qt builds
Platform plugin is needed always when gui is linked to an application.
This is tedious to do manually for static builds, so provide support
for generating a source file that imports static plugins for
application projects.

"CONFIG += import_plugins" statement in application .pro file will
generate required import statements for all plugins specified with
QTPLUGIN variable.

The plugin class names are found from plugin's module pri generated
automatically when plugin is built, as long as the plugin specifies
the PLUGIN_CLASS_NAME in the plugin .pro file before loading
qt_plugin.prf.

Task-number: QTBUG-28131
Change-Id: I19f8ea48a3c1e9b5c81f4399c4b5d439a6d4bea1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-10 15:33:45 +01:00
Miikka Heikkinen
db4aa4d1d5 Only handle QTPLUGIN when linking against static Qt
Usage of QTPLUGIN implies static Qt, so only handle it when that is
true so user projects do not need to scope it if they support linking
against both static and shared Qt.

Change-Id: I011b4672bac122d7d64d8f2fc0e41ca7e5251dfc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-07 19:55:19 +01:00
Joerg Bornemann
a7ac893534 adjust to modularization changes in ActiveQt
Task-number: QTBUG-27776
Change-Id: I1c30270867d20f028bad09fdc5408a414b122f5b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-27 16:18:15 +01:00
Oswald Buddenhagen
76dfe82add move QT_NAMESPACE define to qtcore's module pri file
it's basically an attribute of qtcore (and everything that depends on it).

Change-Id: I6eeefeb5df70764399d9f22dca9dbec1843b8d68
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-02 18:07:35 +01:00
Oswald Buddenhagen
733ac1f6e6 let static plugins have "module" pri files
... and use them in qt.prf instead of (not) maintaining hand-coded lists.

Change-Id: Ia21f7864eaf3ca92fa75f23876f71075d0521f4b
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2012-11-01 22:35:28 +01:00
Oswald Buddenhagen
8abfe4bb43 purge dead defines
Change-Id: I8770416a19fb0951c0096cedf3f36c3493437903
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-01 20:17:57 +01:00
Oswald Buddenhagen
ae789544e4 simplify determination of static plugin link line
qt_debug & qt_release are dead, so collapse the respective paths and use
an existing function.

Change-Id: Ie800be477186a6eab72682d367b24e83c3b9bbc0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-10-26 18:57:54 +02:00
Oswald Buddenhagen
3dfb362782 add support for QT_PRIVATE
this is handled the same way as the QT variable, only that the actual
libraries end up in LIBS_PRIVATE, not LIBS, which means they don't end up
in prl files.

the handling of the two variables is entirely independent, including
independent dependency resolution, so some libraries will typically end
up twice on the linker command line. this is not a problem.

Change-Id: I257ad0d414bf273c08a7bd6a874fe9ddb7356009
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-08-07 16:40:07 +02:00
Oswald Buddenhagen
d25aad6039 fix syntax error in static plugin assembly code
Change-Id: Ib7662c5529432663df06eea509dc3479cea01050
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-25 15:17:16 +02:00
Montel Laurent
981ea7a1aa TYPO: Fix typo in warning message
Change-Id: I322f97257210f123695e386670a9a4eea2ccfe0e
Reviewed-by: David Faure <faure@kde.org>
2012-07-20 18:28:38 +02:00
Oswald Buddenhagen
1491065506 Merge branch 'buildsystem' (second round)
refactoring and cleanup. fixes x-builds between different os families.

Conflicts:
	mkspecs/features/qt.prf

Change-Id: I0205e6f07f77c9b015cf055dd87a471883949a91
2012-06-29 09:06:37 +02:00
Thiago Macieira
96166fa56a Update the macros for shared/DLL and static builds
Up until now, we had a mess of different macros used for building
DLLs, for building shared libraries on Unix systems and for building
static libraries. Some of the macros were contradictory and did not
work. From now on, there shall be only:

 - QT_STATIC: indicates that it's a static Qt build and the export
   macros should expand to empty
 - QT_SHARED: indicates that it's a shared / dynamic Qt build and the
   export macros should expand to Q_DECL_EXPORT or Q_DECL_IMPORT,
   depending on whether the macro corresponds to the current module
   being built (the QT_BUILD_XXXX_LIB macro comes from the module's
   .pro file)

QT_BOOTSTRAPPED implies QT_STATIC since the bootstrapped tools link
statically to some source code.

QT_STATIC is recorded in qconfig.h by configure when Qt is configured
for static builds. Nothing is recorded for a shared / dynamic build,
so QT_SHARED is implied if nothing is defined. This allows for the
existence of a static_and_shared build: with nothing recorded,
defining QT_STATIC before qglobal.h causes the export macros to be
that of the static form. Linking to the static libraries is out of the
scope of this change (something for the buildsystem and linker to
figure out).

From this commit on, the proper way of declaring the export macros for
a module called QtFoo is:

    #ifndef QT_STATIC
    #  ifdef QT_BUILD_FOO_LIB
    #    define Q_FOO_EXPORT Q_DECL_EXPORT
    #  else
    #    define Q_FOO_EXPORT Q_DECL_IMPORT
    #  endif
    #else
    #  define Q_FOO_EXPORT
    #endif

The type of the Qt build is recorded in QT_CONFIG (in qconfig.pri) so
all Qt modules build by default the same type of library. The keywords
are "static" and "shared", used in both QT_CONFIG and CONFIG. The
previous keyword of "staticlib" is deprecated and should not be used.

Discussed-on: http://lists.qt-project.org/pipermail/development/2012-April/003172.html
Change-Id: I127896607794795b681c98d08467efd8af49bcf3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-28 06:21:48 +02:00
Oswald Buddenhagen
dafc4a884c don't put QMAKESPEC_ORIGINAL into INCLUDEPATH any more
the spec does that itself, given that the real spec is just included
nowadays, instead of copied (which never worked without side effects).

Change-Id: Ibf655b9a943dadb949d3c7a58d8fe50fcd62cef7
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-27 14:35:24 +02:00
Oswald Buddenhagen
34cb86d46b make using testlib automatically "promote" all modules to -private
autotests often need private headers (especially with qpa headers now
being private) and have no compatibility requirements, so it makes sense
to just use the privates of requested modules.

this also suppresses the useless warning about using privates, in case
they are still explicitly specified.

Change-Id: I9e499bedcf6ef25777283ff1432cef7254e9093a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 11:51:34 +02:00
Oswald Buddenhagen
2f1762535b make missing qt modules fatal
there is no point in continuing; it will error out later (in more
cryptic ways) anyway.

Change-Id: I2562eadc2d91bfaa6e85368dc3774da31409a141
2012-06-19 16:46:09 +02:00
Oswald Buddenhagen
e6d97f3f77 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>
2012-06-19 16:46:08 +02:00
Oswald Buddenhagen
65c1ed6281 remove support for CONFIG+=qt_compat
this is truly prehistoric stuff

Change-Id: Ia781fc03c081bff895f4d2b5325d3624441bdf5f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:45:58 +02:00
Oswald Buddenhagen
8b75fc7bac 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>
2012-06-19 16:45:58 +02:00
Oswald Buddenhagen
c4eed770be purge QMAKE_INCDIR_QT and QMAKE_LIBDIR_QT
they are equivalent to QT_INSTALL_(HEADERS|LIBS)/get.

Change-Id: Ic4b47f3ca7db55785b96f19020a2fa020a8d25bd
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:59 +02:00
Oswald Buddenhagen
8b822825c5 make use of $$[FOO/get] properties
this cleans up a lot of hacks supporting the build of qt, including the
last bits of $QTDIR.

Change-Id: Id119886ed8097967dad6cf86ebd4e71d90c42841
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:58 +02:00
Oswald Buddenhagen
107aeb870b move moc, rcc and uic CONFIG additions to the respective qt modules
they don't belong into the global scope

Change-Id: I27a3de5f706392b3c4a84035521bc3b4e4055740
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 16:39:53 +02:00
Oswald Buddenhagen
812adb58ba dispose of library-bound feature files
specifically, qtestlib.prf, qdbus.prf, help.prf, designer.prf and
quitools.prf - they have been obsoleted by modularization.
add noisy backwards compat hack to qt.prf.

Change-Id: I26f84fdd51798265471e20dd1f40efec59b1087e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-06-19 16:39:52 +02:00
Thiago Macieira
6a6fd56e66 Move the sub-architecture feature to better places in qmake
Instead of saving the ability of the compiler to produce SSE2, AVX,
Neon, etc. code in .qmake.cache (Unix) or qconfig.pri (Windows), move
everything to qmodule.pri. Accordingly, move the DEFINES += settings
to qt_module.prf instead of qt.prf.

This allows us to re-use these settings in other Qt modules (other
than qtbase), if necessary. Though currently the extra compiler
definitions are found only in src/gui/gui.pro. They can be moved
elsewhere when it becomes necessary.

As a side-effect of this change, some other flags are moved from
.qmake.cache to qmodule.pri (on Unix). The flags that are getting
moved should probably be moved anyway.

Change-Id: Ibc3ab0111e148d81870772f9357273660aa93417
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-31 17:55:49 +02:00
Thiago Macieira
398c8513b1 Overhaul the qsimd_p.h: rename macros and update conditionals
The QT_HAVE_xxx macros are replaced with QT_COMPILER_SUPPORTS_xxx.
They indicate that the compiler supports those intrinsics, but not
necessarily that they can be used right now.

ICC and MSVC allow one to use the intrinsics anywhere, but for Qt all
uses of the intrinsics are either in specially-built files, protected
by runtime checks, or they are unconditional (qstring.cpp). So we only
use the intrinsics when the compiler was instructed to generate code
for that instruction set anyway.

Change-Id: Ie58eebbc0518ad1d5420a85174fd84153bb9abaa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-31 17:55:37 +02:00
Friedemann Kleint
8f85b84f4e Revert "Add workaround for projects using 'QT += declarative'"
The workaround should no longer be necessary.
It causes compile errors for MinGW since the command lines
are too long.

This reverts commit 6225e3ba01.

Change-Id: I0288f4621f072b91dc94f25092ef124fa4c1b09e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Matthew Vogt <matthew.vogt@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-04-23 19:20:19 +02:00
Thiago Macieira
1882cf1c9d Add detection of AVX and AVX2 support in the compiler.
Intel CC 12.1 supports AVX2 but only with -march=core-avx2. The -mavx2
option produces a warning.

GCC 4.6 does not recognise any option.

GCC 4.7 recognises both -mavx2 and -march=core-avx2 so let's use the
latter for now. We may need to change to -mavx2 when there's an AMD
processor that supports AVX2 too.

Change-Id: I529240e6e6c2c0e3942d357e0320212d954fe4de
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-23 19:43:00 +01:00
Thiago Macieira
a1b30b49ef Remove detection for MMX support and related technology
This also removes the check for SSE, but the check for SSE2 and
further technologies is kept. If SSE2 is present, then SSE is too. We
don't have any code that uses the original SSE instructions only.

Remove the CMOV detection, since we don't use that anywhere and we're
not likely to ever use them..

Change-Id: I3faf2c555ad1c007c52a54644138902f716c1fe1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-03-23 19:43:00 +01:00
Johannes Zellner
8a79e8b645 Remove unmaintained and broken VNC platform plugin
Change-Id: Ie0a07c3a6822870b095a20d997b63fb1635f20be
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Robert Griebl <robert.griebl@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-03-15 02:45:31 +01:00
Oswald Buddenhagen
f744b82344 fix the check for libraries having themselves as dependencies
Change-Id: I6dc56228a068fe9158e989afd1c545a3d69848e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-09 22:37:18 +01:00
Oswald Buddenhagen
adfcd98922 replace uses of QMAKE_INCDIR_QT and QMAKE_LIBDIR_QT with module-specific variables
Change-Id: Id410887fa97f345a229e0cbf395633ccf303fa2f
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-03-08 18:57:56 +01:00
Oswald Buddenhagen
1fc0e27b17 transitively resolve module dependencies
otherwise we need the nasty hack for includes, and CONFIGs and DEFINES
from dependencies are not included at all.

Change-Id: I7eaee761161a6e8fbac8e9237d26559aa11a88a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
2012-03-06 17:40:44 +01:00
Rohan McGovern
98dd1781d9 Merge master -> api_changes
Includes fixes for tst_qfiledialog2, tst_qtextedit autotests on mac.

Change-Id: I49cac26894d31291a8339ccc1eb80b6a940f0827
2012-02-29 09:23:14 +10:00
Oswald Buddenhagen
151f17d7e6 simplify loop over modules
the earlier done topological sort already removes duplicates and only
works with lower-cased names anyway, so we can remove the overhead here.

Change-Id: I44fc39af9e94662717e1c8cfb0ddb87d2f597935
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-28 12:39:16 +01:00
Matthew Vogt
6225e3ba01 Add workaround for projects using 'QT += declarative'
The code previously exported by the declarative library has been
migrated to the qml and quick libraries, and the symbol names have been
changed accordingly.  To allow existing projects to continue to build,
the declarative module now contains a set of definitions redefining the
deprecated class names to their replacement names.

To make this work, a dependency on the declarative module now
automatically adds a dependency on the qml module in order to make the
new library available for linking.

This is a temporary change to prevent breaking existing projects
that depend on the declarative module. After clients have had an
opportunity to update their code to the use the new interfaces,
it can be removed.

Task-number: QTBUG-23737
Change-Id: Idee6ac627858856802bb1be29e9a4a079da73688
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Martin Jones <martin.jones@nokia.com>
2012-02-27 01:55:39 +01:00
aavit
4fce5d1795 Moving tiff image format support and libtiff out of qtbase
The tiff plugin and bundled libtiff is moving to the qtimageformats
project on Gerrit.

Task-number: QTBUG-23887
Change-Id: I4c848232fdccddd7e7f54215f9eaa78dc4c3a53d
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-31 14:31:04 +01:00
aavit
48f9ba388b Remove support for the MNG file format and the bundled libmng
The MNG file format is generally abandoned, and libmng has been
unmaintained for several years.

The MNG plugin and bundled libmng has been moved to the
qtimageformats project on Gerrit.

Task-number: QTBUG-21869
Change-Id: I946432347014ffde2b72307a5f8b166ca5553602
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-25 02:22:18 +01:00
Janne Anttila
be62e8315d Fixed automatic plugin path resolving for predefined Qt plugins.
When Qt is configured for static build, importing static plugins is
supposed to work as described in docs:
http://doc.qt.nokia.com/latest/qtplugin.html#Q_IMPORT_PLUGIN

This commit updates the qmake mapping for predefined Qt plugins, so
that Qt plugins are automatically found when QTPLUGIN keyword is used.

Task-number: QTBUG-18609
Merge-request: 1391
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
(cherry picked from commit 0d0c1082f74888044713d96deca2d510951d018a)
Change-Id: I0d0c1082f74888044713d96deca2d510951d018a
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
2012-01-24 02:42:55 +01:00
Kent Hansen
f99c1b5f1c Remove warning and automagic for "missing QT += quick"
This reverts commit 613183ff8c
("Automatically add QtQuick module if only QtDeclarative is specified").

The QtQuick module has been around for a while now, and the need to
port to it has been duly announced.

After this commit, projects that use the QtQuick 2 API (QQuickItem
and friends) will explicitly have to add QT += quick.

Change-Id: Ie5e6d438431a0c736e214c28c0d1ba1189b4ee06
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-19 23:58:44 +01:00
Kent Hansen
613183ff8c Automatically add QtQuick module if only QtDeclarative is specified
QtQuick and related APIs (QQuickItem, SceneGraph, et al), which
used to live in the QtDeclarative module, have moved to a new
module, QtQuick.

Existing projects that use QtQuick-specific APIs should add "quick"
to their project's QT variable, and update their include statements.

E.g.,

QT += declarative

should be changed to

QT += declarative quick

and

 #include <QtDeclarative/qquickitem.h>

should be changed to

 #include <QtQuick/qquickitem.h>

and similarly for the other QtQuick classes.

In order to give existing projects a chance to migrate smoothly, we
should issue a warning and automatically add the QtQuick module if
only the QtDeclarative module was specified. (If a project doesn't
use any QtQuick APIs, the warning can be ignored -- but there is no
way to disable it.)

This change, along with the compatibility headers in QtDeclarative,
make it possible to build existing projects without any modifications
on the project's side.

This change will be removed at a later time; when that happens,
existing projects that did not port to the QtQuick module will no
longer build.

Change-Id: I56abcadc1e5c74490527fc03646310d801bfc084
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-12-02 15:59:58 +01:00
Harald Fernengel
6a25a86d37 Add a -force-asserts option to configure
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>
2011-11-11 12:24:48 +01:00
Joerg Bornemann
981dd3b314 qmake: remove symbian support
Change-Id: I1db834500921681676a6f46e7750bdd81bf0093d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2011-11-07 13:26:41 +01:00
Friedemann Kleint
d5bf2f3314 QtBase: Move idc to Active Qt.
Remove include path to Active Qt from qt.prf.

Change-Id: I476152ce56e47b573f5c835ec1347e772c4e9c3e
Reviewed-on: http://codereview.qt-project.org/6355
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com>
2011-10-10 16:54:52 +02:00
Kent Hansen
6aad412233 Remove stale QtDeclarative dependency on QtOpenGL
QtDeclarative doesn't link against QtOpenGL anymore.

This line was implicitly causing the QtWidgets library
to get linked in as well.

Change-Id: I56e6e9db52eec7fc924506bfeb4b7931ea04e616
Reviewed-on: http://codereview.qt-project.org/5204
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2011-09-20 19:18:19 +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
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
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
Gunnar Sletta
514641bed5 QT += declarative implies += opengl too, so hardcode it to make stuff work 2011-04-28 15:07:51 +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
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
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
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