Commit Graph

666 Commits

Author SHA1 Message Date
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
Miikka Heikkinen
21105e7138 Fix module pri file name for static plugins
Since QTPLUGIN variable values are used to locate both the plugin
library and the module pri file, those must match. Therefore generate
module pri file name using the TARGET of the plugin rather than the
pro file name.

Change-Id: I9ec6f2a087ba3b3cecf7034c8a28b31df155cd97
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-07 19:55:13 +01:00
Oswald Buddenhagen
6fb7222707 move cmake template files under features/data/
there will be more template data, and it wouldn't be too nice
to spread it all over mkspecs/.

Change-Id: I909c48d26ac34f8c0f66051a65d326366d49c096
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-12-07 19:54:44 +01:00
Oswald Buddenhagen
14382d77c5 simplify code by using new $$absolute_path() function
Change-Id: Ie8102eea5c2b108154b76ed35bdbc6d8572bd4a5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-07 19:54:39 +01:00
Oswald Buddenhagen
5a0ac34396 finish the job of removing uic3 support
this should have been in 048b697c07.

Change-Id: I8589453ef937db1a9a446b0e5d01bb830b0cf6b0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-12-07 19:54:32 +01:00
Oswald Buddenhagen
d6fd4e52f1 remove another dead assignment
Change-Id: I79ffdba571b48def4494b018b2a2abdee8aab0a8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-07 19:54:22 +01:00
Stephen Kelly
c4642b45cf Only generate -fPIE on unix.
This follows the same logic used to set bsymbolic_functions.

Change-Id: I9300eab8a1b6673c4409b5dd07b40123fdf00d69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-07 14:49:08 +01:00
Stephen Kelly
25f903bf28 Topologically sort $${MODULE}.depends when generating cmake files.
The contents of this eventually go into a CMake target
property IMPORTED_LINK_INTERFACE_LIBRARIES, which seems to expect
sorted input. Usually the contents is generated by CMake itself,
so generating content it expects is reasonable.

This fixes the qtactiveqt cmake unit test with MingW on linux.

Change-Id: I2a540bea5c3ac214ad4e1dfedfb7cbd2f863472b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-07 14:49:08 +01:00
Oswald Buddenhagen
0815563924 replace all modules' build dirs while installing .pc, .la & .prl files
now we may get files with several mentions of the same lib/include dirs
on the same line, but that's essentially a non-issue.

Task-number: QTBUG-28336
Change-Id: I8204086420b82015f62090ae0a56908ce0cccee8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-06 12:49:02 +01:00
Oswald Buddenhagen
bf9d099c47 export the Qt top-level include dir as pkg-config ${includedir}
this seems more generic, and allows for more substitutions inside the
generated files.

Change-Id: I7a2e37036f9f9f7dbf7f28f0976ef427dd28ee82
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-06 12:49:02 +01:00
Oswald Buddenhagen
787373d376 export only 'host_bins' to pkg-config, rather than a random selection of tools
the "export location" of the linguist tools was just bogus, and lconvert
was missing anyway. the two dbus tools and qdoc were missing, too.
generally, it seems useless to report the paths of some random tools -
instead, just report the install location of the host binaries and let
users figure out the complete paths themselves - this should be ok, as
we decided that distributors are not supposed to do tool renaming any
more.

for the binary path just use the final location, as the files won't be
used before installation anyway. this allows us removing the scary
generic prefix replace from the pc file installs.

and as a side effect this also fixes debug_and_release builds of core
and widgets by not loading various prf files prematurely and thereby
messing up the dir replacement magic.

Task-number: QTBUG-28286
Change-Id: I99de419301fc07fb923959db4bd5cab9072d1c31
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-06 12:49:02 +01:00
Oswald Buddenhagen
ccea7b7114 remove unused assignment
Change-Id: Id60af477b9608bd3dfd0659d9d3a6e202fbe7dc9
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-06 12:49:02 +01:00
Oswald Buddenhagen
943c04d879 don't make the doc installs depend on the regular build
it's pretty pointless

Change-Id: Icea0073683a2d949798147fba3fad5b3331b1125
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-05 17:29:46 +01:00
Oswald Buddenhagen
4404cd5165 fix doc target recursions
in particular for the meta Makefiles of debug_and_release.

the logic is as follows:
- the meta targets ('html_docs' in prepare_docs mode, and 'docs' always)
  need to branch out asap, so they are implemented non-recursively in
  every makefile.
- all other targets need to be fully recursive. the meta Makefile will
  recurse only into one of debug or release, depending on the configure
  option (it doesn't matter anyway).

Change-Id: I4e3f714cdda9c3a1021743148b5ee73379e3484d
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-05 17:29:46 +01:00
Oswald Buddenhagen
dab346fa25 make the addition of docs/-install targets unconditional
there is no reason why something should break out of the system.

Change-Id: I081bffc0927b43ac4940d0200e32e1e60f6f2e97
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-05 17:29:46 +01:00
Oswald Buddenhagen
23153fb8c5 Merge branch 'master' into stable
Change-Id: I5c0c9a131cca64fea3bc784339d14d84076edc1a
2012-12-03 21:58:14 +01:00
Oswald Buddenhagen
d2179014f9 introduce QMAKE_RPATHLINKDIR (and QMAKE_LFLAGS_RPATHLINK)
complementary to QMAKE_RPATHDIR. this avoids that we need to sprinkle
linux/gcc specific code all over the place.

Task-number: QTBUG-27427
Change-Id: Iebafd1749d1a0d803704902473df8c743f074ddc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-03 16:26:37 +01:00
Oswald Buddenhagen
9e9b98aeea don't forget to export rpath_link{,_private} to the cache
Change-Id: I1d204696ed0e4ef5e45dc1716b3d6a8224b3169b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-03 15:56:28 +01:00
Oswald Buddenhagen
4315545f89 remove support for hand-written module pri files
all modules have been migrated to auto-generation

Change-Id: Ie7b3ebfd735a22f8e0b0339909b6385508d7a6b3
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-12-03 15:56:28 +01:00
Oswald Buddenhagen
d902b3a481 don't auto-install example sources by default for all modules
turns out that some modules need a lot of work, so make it opt-in for
the time being.

Change-Id: I16365e3d96adab98a1bc748907dbd67488dfad5f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-12-03 15:56:28 +01:00
Oswald Buddenhagen
25aa803af7 auto-collect qml-related sources
Change-Id: Ia5b56227c2c1f18254d35f6105ac3a146f085e3b
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-12-03 15:56:28 +01:00
Oswald Buddenhagen
77fd2f8319 factor out testcase_targets.prf
instead of letting *every* qmake-based project have recursive check target,
let interested projects "subscribe" to it by adding CONFIG+=testcase_targets
in a central place (.qmake.conf, which Qt itself does via qt_build_config.prf).

Change-Id: Ib13fdd2d3a1adee0c5ad02b6b176a664c583bf9d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-12-03 15:56:28 +01:00
Sergio Ahumada
0df026de86 Stop using the name "Trolltech" in QSettings
Also change Trolltech for QtProject in other places

Task-number: QTBUG-23269
Change-Id: Ie4e344f23cab77c575562d18b481b3369ce30491
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-12-03 03:47:08 +01:00
Oswald Buddenhagen
0d40958347 centralize doc target related code
Change-Id: I710a7f2fc3422ec8ba5b8e90bfd92e7931092ad0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-02 02:16:08 +01:00
Oswald Buddenhagen
b1ff4712f2 resolve private dependencies of tools as well
Change-Id: I25c73661489f0a6e6ecf3bb423cdae6435221e25
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-12-02 02:16:00 +01:00
Friedemann Kleint
95a05904b9 ANGLE: Fix debug-and-release builds
Add a 'd' to debug builds to allow both release and debug builds
to be used.

- Add .def-files for Debug
- Build all libraries debug/release
- Add description to README.qt
- Differentiate debug/release in qmake.conf.

Task-number: QTBUG-28196

Change-Id: Ib3081004a6ed2ad71d353244154684d2e0ebbc86
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2012-12-01 08:30:38 +01:00
Joerg Bornemann
9d650a4b36 don't link qtmain.lib when using idcidl.prf
QAxServer projects must not link qtmain.lib.
This awful hack was adapted from the old qaxserver.prf

Change-Id: I78b4cbf6714bfbd88341449b9230f1989cff8a6f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-30 21:57:49 +01:00
Miikka Heikkinen
09a1810319 Added custom flags for enabling dependencies of other parts to tools
Introduced CONFIG flags examples_need_tools and tests_need_tools.

Change-Id: I4789d05f6bc0a63c75340c3b3e2aecde18c42c20
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-30 21:57:49 +01:00
Oswald Buddenhagen
329e174802 expose a little less of the build host's file system structure
Change-Id: I6fc675b9aeae0744c3308cd20ffd8c115c271c58
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-30 21:57:49 +01:00
Oswald Buddenhagen
3e37c209d2 remove another pointless indirection
we directly expand $$TARGET on the same line, so just do the same with
$$VERSION

Change-Id: I3601bfcc835b13f63dce43d00cfe8d34ded60b21
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-30 21:57:49 +01:00
Oswald Buddenhagen
02cb58cbd4 remove unnecessary indirection
we are assigning QT.*.VERSION from VERSION a moment earlier

Change-Id: Ie4d51f8835b8050755bc399a1a597967c8e3e499
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-30 21:57:49 +01:00
Oswald Buddenhagen
2c8ebbc25b make it possible to name include dir differently from library name
ActiveQt needs that

Change-Id: Ib9f69d19e8042c1ab0f211eebb9237bc2fb77aa3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-30 21:57:49 +01:00
Oswald Buddenhagen
5de4b24c99 don't install headers into Qt/ any more
this should have been part of 656e0d342.

Change-Id: I56e5d743a756e9236759595429de85754593638e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-30 21:57:49 +01:00
Stephen Kelly
2bda681eb6 Add a way to not generate INCLUDE_DIRS variables.
ActiveQt needs this, and it sets the no_module_headers flag.

We still need to set the include_dirs variable in the
no_module_headers case, so that its dependencies are added to it.

Change-Id: I2cad5ee792eed51d36b7c8e2c616763516a5fc10
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-30 18:51:34 +01:00
Oswald Buddenhagen
aeb036ed87 centralize and fixup example sources install targets
it's confusing for the users if the examples' project files contain code
to install their own sources. also, this constitutes an enormous code
duplication, and lots of mistakes. consequently, automate it.

more or less as a side effect, this also removes the entirely meaningless
target installs in subdirs projects.

Task-number: QTBUG-28184
Change-Id: I9fc1367a06db9e2c46aeb67d68729a4f67163ef9
Reviewed-by: hjk <qthjk@ovi.com>
2012-11-29 20:21:11 +01:00
Oswald Buddenhagen
bc6228c3f4 factor out qt_docs_targets.prf
instead of letting *every* qmake-based project have recursive docs targets,
let qt modules "subscribe" to it explicitly by having load(qt_build_config)
in their .qmake.conf (which they already do).

Change-Id: I97b74591fd0c4bd5f8b08c5f550df9c7eef2f556
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-28 16:21:57 +01:00
Oswald Buddenhagen
e543807ca0 reformat assignment to ease later modification
Change-Id: Ib8741baf678583fe56ea0f0a5d4cf2ee22b21b3a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-28 16:21:57 +01:00
Thiago Macieira
5dcc36b15c Add a -libexecdir option to the configures
User applications are those that users run directly, whether it be for
development or not. The executable binaries that the user does not
usually run but is still required for proper functioning are called
"program executables" in Autoconf and they are placed in libexec.

This commit adds support for "program executables" in Qt by adding the
-libexecdir option to the configures, the qmake variable
QT_INSTALL_LIBEXECS (note the plural, to match all other properties),
and QLibraryInfo::LibraryExecutables.

At the time of this commit, the only expected "program executable" is
the QtWebProcess, the WebKit2 helper process from QtWebKit.

Change-Id: I66c3a3e0cf7f9d93b5f88f55f18e957faff608fc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2012-11-28 08:39:07 +01:00
Oswald Buddenhagen
6133c8a9e7 revamp doc generation targets
- the old docs target becomes html_docs
- a new qch_docs target is added. the .qch files end up directly in
  QT_INSTALL_DOCS, wihout any subdirectories in between
- the new docs target invokes html_docs and qch_docs
- respective un-/install targets are added as well. note that the
  install targets don't depend on the build targets, as it's virtually
  impossible to get the dependencies right throughout the hierarchy.

Change-Id: I07a2589db8252371e77cf925c47c4e59fbd1b2ca
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2012-11-27 19:31:21 +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
Sergio Ahumada
cd765bbae0 qmake: Change copyright information from Nokia to Digia
Task-number: QTBUG-28156
Change-Id: If54615a465504b4124891fb393185eb324372874
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
2012-11-26 17:33:37 +01:00
Peter Hartmann
c8c8e1990c BlackBerry mkspecs: optimize linker flags
* relro makes some sections read-only before giving control to the
program;
* now resolves all symbols when the program is started and allows for
 the GOT being marked read-only to prevent it from being overwritten.

These settings have been used internally for device builds already.

Change-Id: I9f62fffe618c75748e2357d1686289c23c5dbee5
Reviewed-by: Greg Bentz <gbentz@rim.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-11-26 15:11:59 +01:00
Peter Hartmann
44b1c5dde2 BlackBerry mkspecs: tell compiler the specific ARM version (cortex-a9)
... so the compiler knows which instructions to generate and can
optimize for the specific CPU.
All BlackBerry platforms are Cortex-A9 compatible.

Change-Id: I3fd22e63af12f704365f494bbb7138963b4c4ec7
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-11-23 11:59:50 +01:00
Eike Ziller
490379a3e3 Mac: Fix compilation with -sdk option
The include paths that the mkspecs set into the OpenGL/AGL frameworks
must take the SDK into account.
(The headers in 10.8 have slightly changed wrt 10.7, leading to compile
errors because framework style includes (<OpenGL/foo.h>) within the system
headers are resolved to the SDK framework headers.)

Change-Id: I6113cdb95b462d587f593682e03e81e920f3f672
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2012-11-23 10:08:10 +01:00
Oswald Buddenhagen
86b2804eaf bootstrapped tools don't need env var setup
Change-Id: I15d818d3ca24d426e492ea9d3a423f661b3ccf3b
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2012-11-22 14:44:53 +01:00
Milian Wolff
a0ac93c73d packagesExist(): always return false if QT_CONFIG contains no-pkg-config
On QNX e.g. you'll end up with a Qt configured without pkg-config support
by default. Once you try to compile e.g. QtWebKit which contains a check
like packagesExist(libudev) the system pkg-config (see default branch
of pkgConfigExecutable) will be called without any special config sysroot
or libdir. Thus libudev will be found in your system host, even though
it is not available for the cross compile target. This leads to compile
errors as described in https://bugs.webkit.org/show_bug.cgi?id=98032 .

Change-Id: If1474cb3b3f3b71fad7269e4aedd4e10f70a9b2a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-21 16:36:50 +01:00
Oswald Buddenhagen
1c70033bb6 don't set CONFIG+=release during build passes
otherwise we get inconsistent builds.

Task-number: QTBUG-28046
Change-Id: I7952000bfc8e02ced5fd2c1bbffab7384f2730c1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2012-11-20 16:46:33 +01:00
Eskil Abrahamsen Blomfeldt
0dc61c4216 Merge branch 'newdocs'
Added prepare_docs to qt_build_config.prf (it was added
directly in configure in the source branch)

Conflicts:
	configure
	tools/configure/configureapp.cpp

Change-Id: I1337c69fc62b1c934e3e39b4409e4857440c9db8
2012-11-20 10:12:44 +01:00