Commit Graph

1674 Commits

Author SHA1 Message Date
Joerg Bornemann
f046ed395a Set VERSION for Qt tools
This creates a VersionInfo resource on Windows for Qt's tool
executables similar to what Qt's DLLs contain.

Task-number: QTBUG-55755
Change-Id: I9e5d7bedaec9d14f29a9eeeb6697b07241f860d8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-07-03 06:01:49 +00:00
Maurice Kalinowski
798c526919 winrt: remove legacy checks
Any version prior to 2015 is not supported anymore.

Change-Id: I9ccc87fc506521b560fda1b4c88f9c3aebd7a485
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-07-03 05:32:54 +00:00
Maurice Kalinowski
f74098d683 winrt: Update capability management
Introduce uap3 namespace which is used for newly introduced
capabilities. In addition, the autodetection of namespaces for
capabilities within the uap namespace is disabled in Visual Studio
lately. Hence, the output needs to be more verbose including the
namespace for a capability.

Task-number: QTBUG-60899
Change-Id: Ia1ccf825d4c257d2661e34c195c45fd37e0b6413
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2017-07-03 05:32:53 +00:00
Liang Qi
ab2c1f9509 Merge "Merge remote-tracking branch 'origin/5.9.1' into 5.9" into refs/staging/5.9 2017-07-02 16:24:12 +00:00
Liang Qi
339dd36b27 Merge remote-tracking branch 'origin/5.9.1' into 5.9
Change-Id: Ic02646cbab8fd627bc73dac0c52d515d4084bbb0
2017-07-02 18:23:00 +02:00
Oswald Buddenhagen
23e2cc38ff fix QMAKE_DEFAULT_INCDIRS detection with Xcode targeting uikit platforms
uikit/sdk.prf replaces QMAKE_MAC_SDK_PATH with a make expansion of that
variable, which of course does not work when we use the contents
directly.

amends 6d5489f5d.

Task-number: QTBUG-61690
Change-Id: Id77dff8ee7d737dd35f74cc7d39faaa50b4b1ab9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-07-02 15:38:32 +00:00
James McDonnell
b2ec7317c8 Add query of default include/library paths for QNX
Change-Id: Iafc5a573a2ddb277d2a786cb6b48521985defe44
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-06-29 14:13:04 +00:00
Jake Petroules
fa7626713b Allow using Xcode Command Line Tools to build Qt
Some users don't want to download the full Xcode installation which can
weigh upwards of 5 GB download and 20 GB installed.

[ChangeLog][macOS / iOS] Qt can now be built using just the Xcode
Command Line Tools, without needing to install the full Xcode IDE.

Task-number: QTBUG-35928
Task-number: QTBUG-41908
Change-Id: I6d13c9a03ab9087b3ab56e8547f53f0cc2806c7b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-06-29 02:00:12 +00:00
Jake Petroules
3c89c71da5 Fix handling of deprecated QMAKE_IOS_TARGETED_DEVICE_FAMILY
Since the mkspecs always set QMAKE_APPLE_TARGETED_DEVICE_FAMILY, it will
never be empty, and the warning message and automatic fallback to
QMAKE_IOS_TARGETED_DEVICE_FAMILY will never be used.

Task-number: QTBUG-60430
Change-Id: I79e36d355dae3f8a4429d73e753fed3c090a5d24
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-06-29 02:00:05 +00:00
Christian Strømme
11d36bd9eb Revert "don't overwrite pre-existing INSTALL for target"
This reverts commit c0e94dd093, as it
introduced a regression for applications that sets an installation
target (on Android), which a lot of our examples do. The installation
target for Android applications/libraries needs to be within in the
application bundle's directory tree, or it won't work.

Task-number: QTBUG-61635
Change-Id: I8c919ef3888d7679b0f9659796f5e590bc1faa57
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2017-06-27 10:38:40 +00:00
Tor Arne Vestbø
4183475080 Error out when compiler is unable to produce default include/library paths
Adds a bit of extra safeguard to ensure we don't accidentally fall into
the generic unix isEmpty(QMAKE_DEFAULT_{INC,LIB}DIRS) code-paths.

Change-Id: Id760b32cd29cb2b9db1390c174e1637e2dddaabc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-06-25 22:01:21 +00:00
Oswald Buddenhagen
72d4f0750b don't auto-create install targets for static libs
these are not meant to be deployed, so the install hack should skip
them.

Task-number: QTBUG-42830
Change-Id: I870499dca2cfea87bf0048f019d651ce9cc5d788
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-06-17 06:47:59 +00:00
Oswald Buddenhagen
c0e94dd093 don't overwrite pre-existing INSTALL for target
while it's mildly insane that we auto-generate install targets to start
with, we can at least refrain from doing so if there is one already.

as it happens, this removes the need for excluding the qt build
explicitly.

Task-number: QTBUG-38452
Change-Id: I74d5df447fba525fa79896c9be2c71d82bc2c6ce
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-06-17 06:47:54 +00:00
James McDonnell
d0706ae3a3 Enable stack-protector-strong for QNX 7.0.0
This was originally enabled in the mkspecs for 64-bit QNX 7.0.0
but that broke when the qtConfig change was made.  It looks like
qtConfig shouldn't be used in the platform mkspecs.  I suspect
the stack-protector changes were left out of the 32-bit mkspecs
so that 6.6.0 builds wouldn't be affected.

Ignore the stack-protector/stack-protector-all possibility since
it isn't possible to access it without a command line option.
Specifying both options doesn't even make sense since
stack-protector-all encompasses stack-protector.

For now, leave out command line control of this feature.

Task-number: QTBUG-59644
Change-Id: I99323216be5b592dd2c3bef6d22da195764a6e65
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-06-13 14:01:24 +00:00
Tor Arne Vestbø
77c2dd4017 Only use -Xarch when specifying precompiled header if building multi arch
The -Xarch option is not supported by ccache, so unless we need to
distinguish precompiled headers for multiple architectures it's better
to not pass it.

Change-Id: Iae02d37f7a89aedebecedff7290f88d2de1ca362
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-06-12 16:05:33 +00:00
Joerg Bornemann
2e8aecc379 Do not disable MSVC extensions when generating moc_predefs.h
Do not pass /Za to MSVC to generate moc_predefs.h, because this option
is incompatible with compiler options like /fp:fast that may be
user-specified.

The /Za option added, because moc failed parsing header files that
contain MSVC extensions. Moc was fixed in 94a2aec0, and we can safely
remove the /Za option.

Task-number: QTBUG-58391
Change-Id: I9791224b1773d0f81d2bbb7915787a7c5e68430c
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-06-12 10:27:17 +00:00
Oswald Buddenhagen
5dab77ba96 build the configure tests in the top-level build dir
there isn't really a point in doing strict shadow builds of them, and
it complicates stand-alone building of sub-projects (because it points
below the build root).

Task-number: QTBUG-58372
Change-Id: Ia3bde3826baac44749b27452fd4aeb9491ecb94e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-06-12 09:55:39 +00:00
Oswald Buddenhagen
76223ecbaa complain when toolchain.prf fails to run the compiler
Task-number: QTBUG-60059
Change-Id: I2babe8aaf7cdf5912686f679d14bebc82231a846
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-06-12 09:55:32 +00:00
Oswald Buddenhagen
1216f596bd make qconfig.pri export QT_<compiler>_VERSION variables again
... and rename those determined by toolchain.prf to QMAKE_* (this was
already the case for the newly introduced msvc and icc variables).

this restores the ability for user projects to query the toolchain qt
itself was built with, which is necessary for compatibility checks.
in fact, we may do such validation in toolchain.prf itself at a later
point.

Change-Id: I35f4c393c5e4e0fe987c0844714b7a8f8687c24e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-06-12 09:55:26 +00:00
Tor Arne Vestbø
3702b3f68b Pick up default library paths for clang
We need to actually run the linker, otherwise clang will just
run the preprocessing step as we asked for. We build as a shared
library to not have to provide a main() function.

Change-Id: Ied34757bb5c43a862bf2d9778340c497b93d572f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-06-09 00:09:33 +00:00
Jani Heikkinen
934235e967 Revert "moc: remove _MSC_EXTENSIONS #define"
It seems this change is preventing us to integrate qt5.git in '5.9'

This reverts commit c3030d7163.

Task-number: QTBUG-61204
Change-Id: Id98afaa23be0a8dd6f2c54a899f46542c65436aa
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-06-05 09:00:54 +00:00
Thiago Macieira
b7d76e533c MSVC: Enable standard-conformance mode by default
That's not the same as -Za.

Change-Id: Ica9894dc9b5e48278fd4fffd14bb316b687abffe
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2017-06-03 03:35:57 +00:00
Oswald Buddenhagen
d56d2e0cb2 don't redirect licheck's stderr
it uses it for interaction.

Task-number: QTBUG-61017
Change-Id: I9edc0f9aa91793bc451fa78a8f6ad11d61e04b57
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2017-05-31 12:57:43 +00:00
Oswald Buddenhagen
cb4bc34cb1 fix module version number in qt modules' cmake config files
this actually just makes the code more straight-forward.

amends f8607045c.

Task-number: QTBUG-60936
Change-Id: Iaa05b474206cf29352f9bba516936ff30b90a778
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-05-31 12:57:28 +00:00
Oswald Buddenhagen
9e04102180 fix library retrieval in pkg-config source, take 2
the entry's libs field is supposed to be a single pre-quoted string.
that implies that the libs and libpaths need to be joined first.

amends 7e298e2f.

Task-number: QTBUG-60925
Change-Id: Id85b2784e3c081b3ff8eb9ee2216976691f8580d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2017-05-31 12:57:23 +00:00
Oswald Buddenhagen
6dcd944dee make mkspecs not mess up library and include search paths
adding shared install paths to QMAKE_{INCDIR,LIBDIR} in the spec has the
tiny side effect that they are searched _first_, which is generally a
really bad idea - they should be _last_.

for that purpose, make QMAKE_{INCDIR,LIBDIR}_POST live up to their names
(i.e., search them actually last) and migrate all affected specs to use
them.

Task-number: QTBUG-40825
Change-Id: Ie0de81c3cc49e193186d2fedd7d6c77590c8ef79
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-05-31 12:57:09 +00:00
Joerg Bornemann
c3030d7163 moc: remove _MSC_EXTENSIONS #define
Because we obviously don't support Microsoft's extensions in C++. This
is required because some MS headers have code that isn't proper C++,
like iso646.h:
 #if !defined(__cplusplus) || defined(_MSC_EXTENSIONS)
  #define and    &&

Do not pass /Za to MSVC to generate moc_predefs.h, because this option
is incompatible with compiler options like /fp:fast that may be
user-specified.

This reverts commit e1a70ce4 and re-fixes the issue similarly to commit
d72ac3f3.

Task-number: QTBUG-58391
Change-Id: I5c0143283afed09f98200806c87259c039c00ae1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2017-05-30 15:34:26 +00:00
Joerg Bornemann
7e0197e119 Fix VS project generation for ActiveQt server projects
Remove VS 6 support code that was erroneously triggered.

Task-number: QTBUG-60895
Change-Id: I12c0afe09e8fb200e5050c83ac5f34ad2376fd2e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-05-23 06:56:47 +00:00
Liang Qi
550e16b814 Merge remote-tracking branch 'origin/5.9.0' into 5.9
Change-Id: Ia8ac1960387c0f78c32f9d0385bb0aa9a8209af1
2017-05-19 08:57:59 +02:00
Oliver Wolff
3f1548ae82 Restore behavior of using libEGL and libGLESv2 as default for angle
As Qt applications using OpenGL are linked against these libs, merging
them into QtANGLE by default (780105f906)
was a binary incompatible change. This change restores the default
behavior to the one before given change.

If the user wants the libraries to be merged, he can pass
combined-angle-lib to configure.

Task-number: QTBUG-60373
Change-Id: Iedbd3f2ce9284fdde924cfae8d915d6d5fef00db
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-05-11 08:35:54 +00:00
Oswald Buddenhagen
961fe0df2e make configure -list-features print the section field
prefix it to the purpose field. this makes the presentation more
consistent with the graphical tool, and avoids the need to be redundant
in the description.

Change-Id: Iea58885637e0518aa1ec2f69ff05090b7e1e77a9
Reviewed-by: Stephan Binner <stephan.binner@basyskom.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-05-08 14:10:43 +00:00
Oliver Wolff
77d82107b7 winrt: Do not add windeployqt dependency for static builds in VS
Change-Id: Iec6ebbfd73741d511008633b5fe0d9975e975729
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2017-05-08 10:12:34 +00:00
Simon Hausmann
50acc86804 Simplify built-in qmake install command
As the directory installation command also works with files as a source
we can unify the external commands, resulting in simpler command lines.

Change-Id: I65013626eedbdb3ce1c77ed230d46edd1603b986
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-05-04 09:40:48 +00:00
Oliver Wolff
d56a6aa124 winrt: Fix manifest dependencies for VS 2017
VS 2017 still uses vclibs version 14/140 and it also strictly requires
the vclibs' publisher to be set in the manifest. As we only support VS
2015 and 2017 the condition for adding additional vclib dependency
information can be dropped.

Change-Id: I813a9ad976339e347fd8d9283d92282e86b2791b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
2017-05-03 06:52:27 +00:00
Simon Hausmann
e4cb8c881f Fix installation of shader files in qtquickcontrols in non-prefix builds
Use the new qmake install command to copy files around, in order to
avoid the '+' trap of the Windows copy command.

Task-number: QTBUG-60214
Change-Id: I7f588dbbfcdd89b7e98dbef7757944ca856815aa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-05-02 15:43:14 +00:00
Allan Sandfeld Jensen
dd03817ab6 Add configure flag to optimize Qt for size
Adds default off configure flag to use compiler optimizations
for size instead of the default speed/size trade-off.

Change-Id: I36702064ef2cc743d2d03a386adf5cefd5371b6e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-04-29 08:02:19 +00:00
Oswald Buddenhagen
7e298e2f2c don't call pkg-config with --libs-only-L and --libs-only-l at once
the options are mutually exclusive, with the last one winning.

Task-number: QTBUG-60382
Change-Id: Ie6d888ac8be6b22b204fcad93c184477baa38965
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-04-28 16:08:20 +00:00
Oswald Buddenhagen
3250581aed always clear config.log after all
delaying the logging setup until the cache use is determined (which
depends on xspec determination) causes too much trouble.

as already explained in 7ac15ab0f, there is a bit of a gray area when
exactly the log should be cleared anyway.
a more complete solution would cache the tests' output along with the
results and re-log it (with an appropriate marker) upon re-use.

Task-number: QTBUG-59565
Change-Id: I17d457598d885bceafd6505cad5ff074c4ace502
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-04-28 16:08:07 +00:00
Tor Arne Vestbø
d61502a448 Undefine QT_RESTRICTED_CAST_FROM_ASCII for headersclean build step
The module might add QT_RESTRICTED_CAST_FROM_ASCII to DEFINES to
be able to use string literals under the assumption they are UTF8
without warnings from QT_ASCII_CAST_WARN, but this conflicts with
QT_NO_CAST_FROM_ASCII which is added for the headersclean build
step.

Change-Id: Ic1d7b5415350477d751a6c15219d4f8feb816a3c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-04-24 19:36:18 +00:00
Kai Pastor
03c1c750d6 Don't add Qt5::<ModuleName>Private in CMake < 3.0
This change restores usability of Qt with older versions of CMake which
do not provide a language feature used in the implementation of the new
Qt5::<ModuleName>Private targets.

Task-number: QTBUG-60229
Change-Id: I6a6a1b09be3edca200692250bb8f0d7f6a1b8f7a
Reviewed-by: Stephen Kelly <steveire@gmail.com>
2017-04-23 19:31:19 +00:00
Thiago Macieira
47c9b66a8b Disable precompiled headers for small modules
Creating a precompiled header exclusively for a one- or two-file module
is wasteful. The time that it takes to build the precompiled source is
on the same order as a regular compilation, so enabling precompiled
headers for those modules just makes the build slower.

Also make it possible to override the precompiled header by just setting
PRECOMPILED_HEADER to empty.

Change-Id: I0e1a09998253489388abfffd14b5f221288c4826
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-04-20 05:39:47 +00:00
Jake Petroules
097073fa67 Fix precompiled headers on Apple platforms, with multiple architectures
The original commit only added support for GCC and Clang, but not ICC.

Amends 73331eeb

Change-Id: Id7638cf1b538edb1008fb3aa10754c1f517a994f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-04-14 00:00:56 +00:00
Thiago Macieira
8ccd38d20d Move Apple-specific -fapplication-extensions option to the mkspec
The Intel compiler does not know about it.

Change-Id: I523b0abacd5148b2bf08fffd14b4748c3b33c8fb
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-04-12 03:37:01 +00:00
Ulf Hermann
49fea13e6d Load android-specific target override in resolve_target
Otherwise, in separate_debug_info.prf, we try to process the original
target, which is not what we actually build.

Task-number: QTBUG-59779
Change-Id: I2b2d2e7b5f87041cc51075da7c3a5b690f94f1f3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
2017-04-10 10:41:44 +00:00
Thiago Macieira
3d7c4e064f Support different job counts also for ICC LTO
Change-Id: I27b55fdf514247549455fffd14b1cdbd2980d5d6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2017-04-07 17:45:04 +00:00
Liang Qi
0fc569184c Merge remote-tracking branch 'origin/5.8' into 5.9
Conflicts:
	src/platformsupport/fontdatabases/freetype/qfontengine_ft.cpp
	src/platformsupport/fontdatabases/freetype/qfreetypefontdatabase.cpp
	src/plugins/platformthemes/gtk3/qgtk3dialoghelpers.cpp
	src/widgets/widgets/qtabbar.cpp

Change-Id: Iaa9daee5f7a6490d56257a3824730a35751ceb05
2017-04-06 14:16:31 +02:00
Thiago Macieira
a03390a8b0 Detect the (stated) C++ standard edition at build time
The configure-time detection (cxx11default) isn't enough if the compiler
can be changed. This is especially necessary if Qt is compiled with a
compiler that defaults to >= C++11 (e.g., GCC 6) and then the user
selects a compiler another compiler (e.g., Clang) via -spec option. In
that case, we'd miss adding the -std=c++11 or -std=gnu++11 option to the
command-line, causing the compilation to fail.

As a nice side-effect, even moc without moc_predefs.h will now get the
__cplusplus setting.

Task-number: QTBUG-58321
Change-Id: I74966ed02f674a7295f8fffd14a8be35da9640e1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2017-03-31 21:08:32 +00:00
Liang Qi
7702fe8602 Merge remote-tracking branch 'origin/5.8' into 5.9
Change-Id: Icdd71e9713725bda9c305e338f5c8b41a92ed8e8
2017-03-27 10:42:08 +02:00
Thiago Macieira
e26bcc4d5d Disable -Werror for QNX's compiler
The compiler is mostly GCC in disguise, but the libraries are not. Since
the toolchain is not open, it's difficult to fix issues in it.

Task-number: QTBUG-59671
Task-number: QTBUG-59672
Change-Id: Id92f4a61915b49ddaee6fffd14aea2639153f073
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2017-03-25 04:50:44 +00:00
Oswald Buddenhagen
97be8253fb fix bootstrapped modules in framework builds, take 2
the borrowing of headers always happens from "proper" modules which are
actually built as frameworks if so requested. that means that even
though the borrowing module itself never is a framework, it needs a
framework path and include paths that point into frameworks.

amends 20c7ab44.

Change-Id: Ic582060dd179cc592e9be7792ff02cebdfabd772
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2017-03-22 14:27:45 +00:00