the current approach of having "free-flying" prf files for such a core
issue is rather insane. this was noticed early on, as evidenced by the
forcible loading of debug/release/debug_and_release in default_post.
however, things remained a mess, in particular static vs. shared.
consequently, the commit merges all related feature files. the actual
config resolution is put in a separate feature file, so it can be loaded
by resolve_target if that happens to be loaded early on.
Change-Id: Ie30e7c63cabe9409a3263ca1650e323a870926f2
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
there is mightily little point in unsetting variables right before
unconditionally assigning to them.
Change-Id: I24c1814ce38bf9aab4496679b1a670f3cd55c536
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
If Qt is configured with -libdir /some/dir/outside/the/install/prefix/,
then for use absolute paths for the executables and include dirs too.
Change-Id: I5ccf62be6f93f97d934df62038fe4cd40dca9a93
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
all non-installed tools are properly registered, so they don't need the
fallback. conversely, we can assume that non-registered tools are
already installed.
this enables us to build docs in qtbase after an incremental
build+install up to qttools.
Change-Id: I95a55f6b84e01885bcf6dd656caf0dd2b679bb73
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This is the <prefix>/include directory which is independent of the
module and which only has to be used once. As everything uses QtCore,
it is enough to set it only there.
The CI system is a special case, in that it tests things before
installation. Handle that case too.
Change-Id: Idcdf9617e199b7d490cb3553cce07f1f464b3bec
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
As the Extras file can do things like append to a property (as in
QtCore for include directories), that is something that should be
done only once when the QtCore target is first defined.
Change-Id: I5163912bccfda1ff43a02eb01f67ac59e6f6b24b
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
the pkg-config file names follow the TARGET by default. as we create
frameworks without the major version infix, all references to Qt5* would
be invalid.
Task-number: QTBUG-29453
Change-Id: I82e7de017a8f17f7d2d7b4a2a61a180125ca29a0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
it's not used for anything other than display, so we can put a space
there.
Change-Id: I77e156856efeaaa964ff3bf2369bcd5586bac7c6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
there is no point in duplicating the information in every module.
host_bins is exported only here as well.
Change-Id: I2f816e1cade9761a2c0d97c7ca1c90293095bfb1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
users need access to the Qt configuration, not some internals of
module's build system.
Change-Id: Ife3f668282969d444282d57152c11ed0f741076f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-rpath does *not* imply -rpath-link when x-building:
ld(1): "Searching -rpath in this way is only supported by native linkers
and cross linkers which have been configured with the --with-sysroot
option."
it doesn't hurt to have the "excess" -rpath-link for native builds, so
just remove the cleanup.
Change-Id: Ic39c1f4d6c2e3770d43a5ed3e56cf89a146edf85
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
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>
as everything is built inside the common build/install dir, there is
no point in the fwd pri stuff.
as a "side effect", this makes it more straight-forward to relocate
non-prefix builds, which is the default on windows.
Task-number: QTBUG-28827
Change-Id: I010246a9ad87cf74974dc168768b1a8625f73260
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
move the regular pri file creation into the "sub-prf" and rename it
accordingly. the original reason for the split was the deep magic in
activeqt (and phonon), which is gone now.
Change-Id: If40e941afc9293725630ed6bcf3e4ef18a692f66
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
-developer-build enables an actual build of examples, based on the
assumption that developers want to test it (it can be still disabled
with -nomake examples). regular users otoh want only the examples
sources installed.
Change-Id: Ifc6a108099929175a3960480802b271a758fdd38
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
we need to collect the sources of the install targets for the check that
all files have been properly handled, but of course we must not add these
files to the source install target, as that would mean double installation.
Change-Id: I6acb56f2a993b6ed81d1031d5dc0a0da30a53b54
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Curiously, qmake could fix .prl and .pc files for unix, but only .pc
files for MinGW. qt_module.prf seems to have known this.
Task-number: QTBUG-28902
Change-Id: Ice9983a69813690c0d4b96ca11589440182569a0
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Fully modular prefix build now puts the includes and libs into each
module's own builddir, so the else branch was simply bogus. Replaced
the else branch with the real base for modular builds. This allows
the paths to be successfully replaced when installing metafiles.
Change-Id: I056a923288965b560a4e9b0ba7add1aac912199f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
otherwise qmake will just take TARGET and lowercase and capitalize it,
which not only looks weird, but also does not match the Requires: fields
we generate.
Change-Id: I4a070ff256fffd2b780acb0361d4213d0032dbb9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Dihan Wickremasuriya <nayomal@gmail.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
This is a less error-prone way to calculate relative paths.
Task-number: QTBUG-29110
Change-Id: If4509ef278e48dcf08bdcc904d21534b4c05993f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Cross bulding on unix for mingw exploits the fact that makefiles
generated for mingw work with plain make. There is no mingw32-make, so
this is the only option.
Arguably, plain make could also be used in an MSYS environment,
perhaps detected by MINGW_IN_SHELL, but there might be good reasons I
don't know about not to do this.
Change-Id: I694c74046a307c2887af1c30cca36f95e242adc1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
this is much more elegant than the so far propagated !isEmpty(QT.foo.name).
also replace feature-specific tests (no-gui and no-widgets) and the
obsolete contains(QT_CONFIG, foo) syntax.
Change-Id: Ia4b3c8febcabf9eeca67b1f9173a523820b1038b
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Tasuku Suzuki <stasuku@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Fix MinGW build errors by using the standard main signature.
Change-Id: I0ebe7307a825a7ec50e654f163fbf8fe7060a478
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
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>
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>
The location of the mkspecs directory comes from the archdatadir, which
distros will all set.
Change-Id: I20dbdce76db13dbd37eec065009e215f98985907
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
qt is already added by spec_pre.prf, warn_on and depend_includepath by
default_pre.prf.
Change-Id: Ic00e0ba496d698ed9659c476f2ca99fc0f86a093
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
When building Qt static, plugins get module .pri file, but those files
do not get installed in Windows. This is because both .pri generation
and install target statements are scoped with !build_pass, which means
Makefile.Debug and Makefile.Release do not get install_pritarget
target.
Fixed by doing only the .pri generation in !build_pass scope.
Task-number: QTBUG-28606
Change-Id: If3f49b578af1d9171a8bce67793ecb3f902a6da8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
it's the very antithesis of modularization to do it.
Task-number: QTBUG-27722
Change-Id: I2540e1a70e67b55420246d0c209314c05c65a85f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The variables these files refer to are not set anywhere anymore.
The Unix thread.prf file is still needed, as it is still effective and
is activated by qt.prf.
Task-number: QTBUG-25106
Change-Id: Ia514192d28785205df3710d78ee597285d4136b0
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
rpath is meaningless for static libraries.
and windows has no concept of rpaths to start with.
Change-Id: Ia02bbdfbf7112e7082175c3051c0839ac0900f57
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
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>