Commit Graph

3396 Commits

Author SHA1 Message Date
Tor Arne Vestbø
cd2690dcbf iOS: Use generic simulator device for building apps via xcodebuild
If Xcode wasn't configured with any simulators the build would fail
since we had no device to build for. But we don't need to build for
a specific device, we can build for the generic simulator device,
just like we do for the non-simulator build. This likely didn't
work properly at the time it was first implemented, but now seems
to work fine, and is less fragile than the current solution.

Running tests still enumerates the available simulators,
as that needs a concrete device to run on.

Fixes: COIN-777
Pick-to: 6.2 6.3 5.15
Change-Id: I50e31c1b350cf83ce348275b467051263dea88a9
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2021-12-23 15:26:35 +00:00
Lorn Potter
663c1b8827 wasm: remove deprecated argument for source maps
-g4 was deprecated in Emscripten 2.0.17, and since we are well past
that version we can safely use -gsource-map instead.

Change-Id: I497155619d6320661f6be0e220b52fa7d6ca0b8e
Reviewed-by: David Skoland <david.skoland@qt.io>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-12-13 06:53:22 +00:00
Lorn Potter
3bbbd4ae12 wasm: update recommended emscripten to 3.0.0
[ChangeLog][wasm] Recommended emscripten version is now 3.0.0

Change-Id: I9ae082509415d8f00b8e9970b730ad4a472da310
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-12-09 03:22:36 +10:00
Alexandru Croitor
ebac49dd45 android:qmake: Fix static libraries to include the QT_ARCH suffix
When building a shared library (with qmake) in a user project
targeting Android, the library gets a QT_ARCH suffix added to its
name.
This suffix is not added when building a static library
(CONFIG += staticlib).

In the context of a multi-abi android qmake build, all the arch
specific static libraries would have the same name and would
override each other.
This happens with Qt 5.15 and it would also happen in Qt 6,
but we don't support multi-abi qmake builds in Qt 6 so far.

When the original fix to include the arch suffix for shared libraries
was done in Qt 5, d463a63bb9
it was likely an oversight that it was not applied to static
libraries as well.
The !static part of the condition was added in
72d4f0750b .
The change only handled installation responsibilities, not naming of
libraries.

Fix static libraries to include the arch suffix, but only in Qt 6.

It's too late to fix it in Qt 5, there might be projects that rely on
there not being a suffix in static library names. Adding the suffix
would suddenly cause linking errors.

Amends d463a63bb9

[ChangeLog][Android][qmake] Static libraries targeting Android will
now include an arch suffix when built using qmake.

Fixes: QTBUG-83165
Change-Id: I6f68dcb74cec30b4c8f0bc5a819d89843e9d695e
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2021-12-02 20:29:58 +01:00
Samuli Piippo
ca9d72f465 Doc build: fix conflicting response file with moc
Doc build is using the same variable to define the reponse file
as moc build, which can lead to case where moc is using the qdoc's
response file instead of its own. Moc needs more include paths than
qdoc, this can then lead to weird compilation issues as moc doesn't
warn about missing includes.

Task-number: QTBUG-98569
Pick-to: 6.2 5.15
Change-Id: Id35da18f664e2032bae96d11b00dbfe55ce37f66
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-11-29 22:50:00 +02:00
Yuhang Zhao
405adf3348 Win32: Enable large address aware explicitly
Large address aware is enabled by default in 64-bit
compilers, but not 32-bit compilers. But Qt users
may build 32-bit Qt themself, in this case large
address aware is disabled in fact, and it may cause
some issues. So we pass /LARGEADDRESSAWARE to the
linker unconditionally to make sure large address
aware is enabled for both 32-bit and 64-bit builds.

Microsoft Docs:
https://docs.microsoft.com/en-us/cpp/build/reference/largeaddressaware-handle-large-addresses?view=msvc-170

Change-Id: Idb2603d9ba0ba9ef4477ce1c3174b7c7e8ba76f6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2021-11-26 16:42:53 +08:00
Yuhang Zhao
e01c25e859 QtBase: replace windows.h with qt_windows.h
We have some special handling in qt_windows.h,
use it instead of the original windows.h

Change-Id: I12fa45b09d3f2aad355573dce45861d7d28e1d77
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-11-23 12:53:46 +08:00
Assam Boudjelthia
e6e8c59485 Android: bump default QT_ANDROID_API_VERSION to 31
To allow using Android 12 APIs.

Pick-to: 6.2 5.15
Change-Id: I5e9da66c84457888ec723125d16876891232a99b
Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-12 13:42:08 +02:00
Joerg Bornemann
3582116a60 qmake: Introduce the variable MSVC_TOOLSET_VER
...which represents the version of the MSVC platform toolset.

This variable is used to set the platform toolset version in .vcxproj
files.  Before, the platform toolset version was determined in qmake's
C++ code.  Now, it's set next to where MSVC_VER is set in common mkspecs
.conf files.  This will simplify supporting new Visual Studio versions
in the future.

Change-Id: If78c921f93c6378829746d617c7e7d312174257e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-10 14:47:42 +01:00
Joerg Bornemann
1c880752eb qmake: Support Visual Studio 2022
Extend the detection of the MSCV_VER variable and make VS 2022 known to
the vcxproj generator.

[ChangeLog][qmake] Added support for Visual Studio 2022.

Pick-to: 6.2 5.15
Fixes: QTBUG-97975
Change-Id: Id2c0a0b7800f721e9e34189f0a40ba4830283578
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-10 13:47:42 +00:00
Yuhang Zhao
6652bf2353 Bump WINVER, _WIN32_WINNT and _WIN32_IE to _WIN32_WINNT_WIN10 (0x0A00)
And bump NTDDI_VERSION to 0x0A00000B (NTDDI_WIN10_CO) at the same time,
to unblock the developers from accessing the latest Windows APIs.

Pick-to: 6.2
Change-Id: Ifbc28c8f8b073866871685c020301f5f20dc9591
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2021-11-10 20:31:05 +08:00
Joerg Bornemann
4f360e3b76 Assume qhelpgenerator in libexec instead of bin
Task-number: QTBUG-88791
Change-Id: I0f6dc14401e715a98322abc21da3f88e34118e27
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2021-11-08 19:27:32 +01:00
Tor Arne Vestbø
63feecfc11 macOS: Bump max supported SDK version to 12
Pick-to: 6.2 5.15
Change-Id: Ib4980719fe372abfb2566fe4e82db29226a7fcfa
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2021-11-04 05:06:04 +01:00
Tor Arne Vestbø
0babdac537 Fix version number when warning about Apple platform SDK mismatch
Pick-to: 6.2 5.15
Change-Id: I9b9cda0c6bb9ad527dbf4b4268c1b572aa04d164
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2021-11-03 17:12:47 +01:00
Morten Johan Sørvig
25781a1396 wasm: add sse2 compiler flags again
Now with QT_FOR_CONFIG += core-private.

Change-Id: Iadc61e21db6566f20c32595ef1ab83f37bc5c651
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-11-02 09:00:23 +00:00
Morten Johan Sørvig
2c3cfa0ae7 wasm: remove sse2 config block
This breaks the build for qmake-based applications,
with the error

  Project ERROR: Could not find feature sse2.

Remove the offending section to make applications
build again.

Pick-to: 6.2
Change-Id: I0b22faa1d8d62e208d79879b822e21637bb03a3e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-10-27 12:00:06 +00:00
Lorn Potter
0e100a4d89 wasm: add simd support
Emscripten only supports
SSE1, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, and 128-bit AVX instruction
sets at this time.
https://emscripten.org/docs/porting/simd.html

Browsers might need to enable simd support in the advanced
configurations
about: config or chrome:flags

Enable by configuring Qt with -sse2

Pick-to: 6.2
Fixes: QTBUG-63924
Change-Id: Ifeafae20e199dee0d19689802ad20fd0bd424ca7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-10-05 11:30:06 +10:00
Thiago Macieira
684c9b82b9 QDateTime: fix build with MinGW: need unistd.h very early
qobject.h has #include <chrono>, which #includes <ctime>, which includes
<time.h>.

datetime.cpp:2621:23: error: 'localtime_r' was not declared in this scope; did you mean 'localtime_s'?

Pick-to: 6.2
Change-Id: I2bbf422288924c198645fffd16a922719c4ce7d4
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2021-09-29 13:18:21 -07:00
Joerg Bornemann
ad4faa25a5 qmake: Print error when iOS simulator device could not be found
A qmake project built for iOS-simulator tries to find suitable devices
in xcodebuild.mk.

If no suitable device could be found, the build failed with
  xcodebuild: error: missing value for key 'id' of option 'Destination'
which isn't that helpful.

Detect the situation in xcodebuild.mk and print an error message.

Pick-to: 5.15 6.2
Fixes: QTBUG-77222
Change-Id: I02f9ab0dd7b8f234bcd8d0ea387927f31ca092e0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-09-22 00:01:30 +02:00
Assam Boudjelthia
e6892f38a0 Android: Fix path of qmake_qmake_immediate.qrc in single_abi with qmake
With single_android_abi, the file qmake_qmake_immediate.qrc is laid
directly into the root of the build dir and not under different abis
dirs.

Pick-to: 6.2.0 6.2 5.15
Fixes: QTBUG-87669
Fixes: QTBUG-95202
Fixes: QTBUG-95235
Change-Id: Ie13cccdf2fc323e8fd725a94f3aacab465fa1287
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2021-09-20 13:05:36 +00:00
Edward Welbourne
7a4b586f4b Remove conditioning on Android embedded
It is no longer handled separately from Android.
This effectively reverts commit 6d50f746fe

Change-Id: Ic2d75b8c5a09895810913311ab2fe3355d4d2983
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-09-17 17:30:14 +02:00
Joerg Bornemann
5678ee93b4 Fix .qm file name calculation in lrelease.prf
The following snippet in a .pro file resulted in a build error:

  CONFIG += lrelease embed_translations
  TRANSLATIONS += foo.bar_de.ts

The variable QM_FILES was incorrectly calculated.  The extra compiler
that calls lrelease uses QMAKE_FILE_IN_BASE, which wraps
QFileInfo::completeBaseName(), resulting in "foo.bar_de.qm".

The $$replace call that calculates the .qm file name however, produces
"foo.qm".

Fix this mismatch by adjusting the regular expression to behave like
QFileInfo::completeBaseName().

Pick-to: 5.15 6.2
Fixes: QTBUG-79016
Change-Id: I545d1b58170cd5229007faf31c9b2c6f70ff75a6
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2021-09-10 23:27:15 +02:00
Tor Arne Vestbø
16b11bb81e xcode: Allow automatic provisioning updates when calling xcodebuild
If automatic signing is enabled (which it is by default), then Xcode will
happily set up the required profile if you open and run the application
in Xcode. To get the same behavior for xcodebuild, and hence from Creator,
since it's calling our Makefile wrapper around xcodebuild, we need to
pass the -allowProvisioningUpdates flag to xcodebuild.

Fixes: QTBUG-95565
Pick-to: 6.2 6.2.0 5.15
Change-Id: I9325bb228bdfb4d07658eff8f41798f7b5a6955c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-09-09 17:05:25 +00:00
Juha Vuolle
17d7a8dc2e Update Android default SDK from 29 to 30
By the time of Qt 6.2 release all new apps targeting Play store must
target API level 30 (Android 11) or above (starting in 08/2021 for
new apps and 11/2021 for existing apps' updates).

Pick-to: 6.2 5.15
Task-number: QTBUG-94451
Change-Id: Id7fa2fd62899a7259e365c917292c6c3ac0d2b0d
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-08-27 18:31:17 +00:00
Morten Johan Sørvig
ecb92aacab wasm: add new event dispatcher implementation
Add QEventDispatcherWasm to QtCore. The event dispatcher
supports managing event queue wakeups and timers, both
for the main thread or for secondary threads.

Blocking in processEvents() (using QEventLoop::WaitForMoreEvents)
is supported when running on a secondary thread, or
on the main thread when Qt is built with Emscripten’s
asyncify support.

Code is shared for all both modes as far as possible,
with breakout functions which handle main and secondary
thread as well as asyncify specifics,. Some functions
like wakeUp() can be called from any thread, and needs
to take the calling thread into consideration as well.

The current asyncify implementation in Emscripten is
restricted to one level of suspend, and this restriction
carries over to Qt as well. In practice this means we
support one level of exec()-like API.

Note that this commit does not _enable_ use of the
new event dispatcher. This will be done in separate
commits.

Task-number: QTBUG-76007
Task-number: QTBUG-64020
Change-Id: I77dc9ba34bcff59ef05dd23a46dbf1873cbe6780
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-08-27 15:45:25 +02:00
Joerg Bornemann
9004575f4b qmake: Add support for C17/C18
Make it possible to select the C17/C18 standard with
  CONFIG += c17
or
  CONFIG += c18

Pick-to: 6.2 5.15
Fixes: QTBUG-96026
Change-Id: I719d22366c3efda009118d58ead173a25ed285c0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-26 18:32:44 +02:00
Joerg Bornemann
8914f80b27 qmake: Make it possible to set CONFIG += c11 with MSVC 19.28
The compiler that comes with Visual Studio 16.8 added support for
setting the C11 standard with the /std:c11 flag.
Add the respective version check in msvc-version.conf and set
MSVC_VER and QMAKE_CFLAGS_C11 accordingly.

Pick-to: 6.2 5.15
Task-number: QTBUG-89296
Change-Id: I29b54ee073a765918f5aa4ebb081b97c5cf471d7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-08-26 18:32:44 +02:00
Tatiana Borisova
664a7947be Check QMake support for building apps on INTEGRITY
-Add integrity QMAKE_* paths for SA8155P device

Task-number: QTBUG-95671
Pick-to: 6.2
Change-Id: Ife60cf2db74bfd0c47103e2dd6aaa73609d856d2
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
2021-08-26 19:32:44 +03:00
Kai Köhne
de58fa3038 Fix location of qtattributionsscanner
Amends f00c63093b

Pick-to: 6.2
Change-Id: I3be5f7d3826c1a84bad0ecf947eecc0a351685c6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-07-14 18:16:15 +02:00
Ivan Solovev
4fc14b1933 Fix qmlimportscanner path for android deployment settings
Fixes: QTBUG-94527
Pick-to: 6.2
Change-Id: Iffd259caecfdfe6860ba1ab9cb21d2f164060b9a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2021-06-28 18:27:51 +02:00
Joerg Bornemann
50e664835b Fix linking of debug projects against release Qt on Darwin platforms
Consider a release-only, non-framework Qt build on macOS.  Building a
debug user project would fail, because qmake tried to link
against *_debug.dylib and *_debug.a libraries.

Building a debug user project that uses QtUiTools against a release-only
framework-build Qt posed the same problem.  QMake tried to link against
the libQt5UiTools_debug.a, which does not exist.

Fix this by maintaining a list of library file candidates, and use the
first existing one (or just the first one if none exists).  This favors
the library matching the user project's configuration but falls back to
the release version of the library if necessary.

Fixes: QTBUG-81251
Pick-to: 6.2
Change-Id: I8d641104718edb16500c6d6e3994e736fa5ddcf4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-06-25 18:36:13 +02:00
Tor Arne Vestbø
b0a9825edb macOS: Respect QMAKE_APPLE_DEVICE_ARCHS by building for all those archs
If QMAKE_APPLE_DEVICE_ARCHS is not set, we pick up the available archs
based on what Qt was built with (QT_ARCS), but only build the active
arch.

Pick-to: 6.2
Change-Id: I83273f878022af34a3a0d0eeae8b11d781f78c49
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-06-23 13:43:45 +02:00
Morten Sørvig
53eb44906c wasm: don’t set exit_runtime
Go with Emscripten’s default of not shutting down on
main() exit; this allows for writing main() in such
a way that avoids the exec() workaround.

Existing main() implementations (which do use the exec()
workaround) do not shut down Qt cleanly anyway, so we
gain little by shutting down the Emscripten runtime.

Applications can set this flag if they do want to shut
down on main() exit:
    LFAGS += -s EXIT_RUNTIME=1

Change-Id: I52e1cc2bc907d1d2146822713e39b7610db3f95b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2021-06-23 06:57:21 +00:00
Morten Sørvig
7ee4468a18 wasm: enable MODULARIZE option and set EXPORT_NAME
Make Emscripten generate a global constructor function
("createQtAppInstance()") instead of a global javascript
module object.

This enables more fine-grained control over module
instantiation; previously the module object would be
created when the runtime javascript was evaluated, and
the number of emscripten module/instances was limited
to one per page.

Set EXPORT_NAME to “createQtAppInstance” which avoids
collisions with other non-Qt Emscripten modules on
the same page. A further improvement would be to include
the app name in EXPORT_NAME, but this is not done at
this time.

Update the code in qtloader.js to call the constructor
function instead of working on a global module object.
The qtloader.js API is functional before the wasm and
Emscripten modules have been instantiated; store properties
and forward to the Emscripten module when it's created.

Change-Id: I12c49a5b9a4a932bbc46fcc5e5ecc453fd0fe7f0
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2021-06-22 11:11:20 +00:00
Joerg Bornemann
4372cac01c qmake: Enable response files for WASM on Windows
This fixes the "Command line is too long" error when building a project
with many object files for WASM on Windows.

Fixes: QTBUG-94032
Pick-to: 6.2 6.1 5.15
Change-Id: I29251da9795b267c968da86617da0311bf882a64
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2021-06-15 13:59:53 +02:00
Kai Köhne
646d698ffe Allow building Qt examples with qmake in-source
This reverts commit c686e885c0
and commit d64abf8166.

We don't feature .qmake.cache/.qmake.super files anymore in the
source directory, so there's no problem anymore.

Change-Id: Ib820a109fbfbad70d85b0f14ef72915882217ca3
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-06-12 11:06:10 +02:00
Tor Arne Vestbø
3d7bdf0d61 qmake: Switch to using Xcode's new build system
Now that inputs (81152194) and outputs (3f0858ed) are explicitly set for
the preprocess stage we can enable the new build system.

Using the legacy build system will produce a build error in Xcode 13,
but the build will succeed:

  error: The Legacy Build System will be removed in a future release.
  You can configure the selected build system and this deprecation
  message in File > Project Settings.

Fixes: QTBUG-71035
Pick-to: 6.1 5.15 5.12
Change-Id: I108d2103872255d10de2ff5161eef892065da1c4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-06-08 17:28:47 +02:00
Tor Arne Vestbø
f9c850cc42 qmake: Pick default architecture on macOS based on uname
When dealing with a universal build of Qt, we would end up
using the QT_ARCH as the architecture for user projects,
but this architecture is always the primary one that Qt
was configured with.

Instead of relying on QT_ARCH, we start writing QT_ARCHS
(plural) to qconfig.pri, based on CMAKE_OSX_ARCHITECTURES,
and then use that to initialize QMAKE_APPLE_DEVICE_ARCHS.

We then resolve the active arch using uname -m, matching
what CMake does.

We still feed all the available architectures to the
Makefile or Xcode project, so that the user can build
for any of the available architectures without needing
a reconfigure.

Fixes: QTBUG-93760
Change-Id: I0d338241ba4d944ca36d85371e9c4df7dbc4f269
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-05-21 17:45:28 +00:00
Kai Köhne
7c7fda3a7e Move qtwaylandscanner to libexec
Task-number: QTBUG-88791
Change-Id: I9703ba73ec5cee11b000d84346d4f8d00c179724
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-05-11 16:39:07 +00:00
Kai Köhne
c113c88aa2 Move qmlimportscanner to libexec
Task-number: QTBUG-88791
Change-Id: I71150af4965458225e7bbbd72ffc4f60c6854625
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-05-11 12:35:30 +00:00
Morten Sørvig
f6c8798001 WASM: Don’t set “-g4” by default for qmake builds
This increases link time significantly; instead set
"-g4" or the new "-gsource-map" only if source maps
are enabled.

Change-Id: Ibe2d438d48e9ae2fce5f79d4e8a9f17c01cf2485
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2021-04-27 12:12:35 +00:00
Tasuku Suzuki
2df3d8ed41 Cleanup leftover QWS
QWS is replaced with QPA in Qt5

Change-Id: Iccec38e55ae23a27ebecd8010e1df7bba8aa5a33
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2021-04-14 13:00:12 +09:00
Qt CI Bot
8d16237cfa Merge integration refs/builds/qtci/dev/1617809473 2021-04-07 20:33:35 +00:00
Qt CI Bot
72ae064886 Merge integration refs/builds/qtci/dev/1617805866 2021-04-07 19:55:22 +00:00
Alexey Edelev
72d1393c1d Fix condition that adds resources for each Android ABI
If we already have the list of Android ABI in BUILDS, it's not
necessary to generate extra resource while Qt build.

Amends: 58556afb69

Pick-to: 6.0
Pick-to: 6.1
Pick-to: 5.15
Fixes: QTBUG-88031
Change-Id: I344efe6c477461659a360281da59c4abeae18fc2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-04-07 17:00:17 +02:00
Christoph Keller
9c24ad3b94 Only embed launch screen when building an app
Xcode's new build system checks duplicated entries when building. Qmake wants to embed
the launch screen for all types of configurations (static libraries etc.) which makes Xcode bail
out with "Multiple commands produce LaunchScreen.storyboard".

Pick-to: 6.0 6.1 5.15 5.12
Task-number: QTBUG-71035
Change-Id: I5c028e687f16e046b12156c1a8a89540deba4d3b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-04-07 13:32:17 +00:00
Kai Köhne
337bd058b9 Remove last trace of licheck
Since we don't feature it for CMake, there's little point in keeping it
for qmake.

Pick-to: 6.1
Change-Id: I7f17d2536510c0b94dca9767036ceab7ec08e1d8
Reviewed-by: Tino Pyssysalo <tino.pyssysalo@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-04-07 11:00:41 +00:00
Lorn Potter
4972fdb350 wasm: add cmake build support
A few configure defines get changed:
QMAKE_WASM_PTHREAD_POOL_SIZE is now QT_WASM_PTHREAD_POOL_SIZE
QMAKE_WASM_TOTAL_MEMORY is now QT_WASM_INITIAL_MEMORY
QMAKE_WASM_SOURCE_MAP_BASE is now QT_WASM_SOURCE_MAP_BASE

device-option EMSCRIPTEN_ASYNCIFY=1 is QT_EMSCRIPTEN_ASYNCIFY=1

To create source maps for debugging. use
device-option QT_WASM_SOURCE_MAP=1

Task-number: QTBUG-78647
Change-Id: If9f30cd7fb408c386d6d69b5f7b1beecf1ab44b5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-04-01 19:23:42 +10:00
Tor Arne Vestbø
fca543bcde qmake: Improve error message when detecting macOS platform SDK upgrade
Pick-to: 6.1 6.0 5.15
Task-number: QTBUG-85546
Change-Id: I2bce9d22ad826fa73fa4dbfd03c9b1d404c57859
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
2021-03-19 15:08:46 +00:00
Tasuku Suzuki
e0f11022f1 Fix a typo in resources_functions.prf
Change-Id: I38b81ba63612bd90b0a70f6b0c468667581b3c11
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-03-16 17:14:21 +09:00
Assam Boudjelthia
262fc26a37 Merge "Android: use libexec path for rcc for Android deployment settings file" 2021-03-11 11:13:08 +00:00
Assam Boudjelthia
15c2a79f19 Android: use libexec path for rcc for Android deployment settings file
Task-number: QTBUG-88791
Pick-to: 6.1
Change-Id: Ie34278496e0c23a8301e7ab0f2e33e36f393d1d8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2021-03-11 10:44:35 +02:00
Alexandru Croitor
4b2035cd0f Bump Apple platform minimum versions
Includes both minimum deployment targets and minimum sdk
versions.

As per supported Apple platforms versions which was done
in qt/qtdoc at
8807fdedce29cbbd7662fcd745234da30eace3fb

For Qt for iOS 6.0.x we only bump the minimum
deloyment target because applications seem to crash with iOS 12.4+,
and it's better to have a build error than a runtime error.

The minimum required sdk will not be bumped for 6.0.x, so we don't
accidentally break someone's existing build, given that 6.0 is already
released.

Pick-to: 6.1
Task-number: QTCREATORBUG-23574
Change-Id: I3046384164f2d7fdbd0cfd16dcb85e0d60bc56ce
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2021-03-10 23:39:45 +01:00
Joerg Bornemann
800f745140 Move syncqt.pl to libexec
To not disturb the qmake build we kept syncqt.pl in <src>/bin but
installed it to libexec. This is not necessary anymore.

This also removes the need for having syncqt.pl in both, bin and libexec
in the build dir of qtbase.

Pick-to: 6.1
Fixes: QTBUG-91076
Change-Id: I44b014ea41e3f00c420e02fd5c76f11169340b8c
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2021-03-04 09:56:07 +01:00
Joerg Bornemann
4da0060ca8 Fix qmake's metatype generation feature after moving moc to libexec
This commit amends 1f30bcf336.

Pick-to: 6.1
Change-Id: I677bd75bffddab6d764108e4fb2826e01c9dcb07
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
2021-02-25 16:10:13 +01:00
Joerg Bornemann
1f30bcf336 Move build tools to libexec instead of the bin dir
[ChangeLog][Build System] Tools that are called by the build system and
are unlikely to be called by the user are now installed to the libexec
directory.

This is a step towards easier co-installability of different Qt
versions.

Pick-to: 6.1
Task-number: QTBUG-88791
Change-Id: Id19575b5ba27795f7715e4ea6a09391b26dd4942
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2021-02-23 17:02:30 +01:00
Joerg Bornemann
edd1225489 qmake: Introduce QT_HOST_LIBEXECS property
This will be used to access host tools that are installed in
${prefix}/libexec instead of ${prefix}/bin.

Pick-to: 6.1
Change-Id: I36c4b5736330f8229d267a117c65d55cd5e12758
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2021-02-18 11:46:42 +01:00
Alexey Edelev
58556afb69 Fix the qmake error when building with qtquickcompiler for iOS
Fix condition when adding qmake_immediate to resources. This condition
was wrongly positive in any non-android case, but also had to check for
BUILD emptiness or build_pass. This cause issue because
qmake_qmake_immediate was added to the RESOURCES variable earlier, than
actually generated.

Fixes: QTBUG-88031
Pick-to: 6.0
Pick-to: 6.1
Pick-to: 5.15
Change-Id: I38dad858a7e81ab709e622ec24baa8f9b80970fa
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-02-18 11:09:17 +01:00
Alexey Edelev
f8736d34d4 Fix qmake_qmake_immediate path for Android
Add missed RCC_DIR to the qmake_qmake_immediate.qrc path,
when generating android deployment settings.

Fixes: QTBUG-90969
Pick-to: 6.0
Pick-to: 6.1
Change-Id: If4959581fcc153d9c19d178233297fc7b440b2f7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-02-15 16:52:24 +01:00
Assam Boudjelthia
e711eb35f5 Android: set minimum recommended android SDK to 29
comply with the api version used by default with androiddeployqt and
in docs. Google play also requires api 29 as minimum.

Task-number: QTBUG-90943
Pick-to: 6.1 6.0
Change-Id: I05e2a90b4d7f2120b0198e3fb7b8b1b2398eba93
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2021-02-13 01:36:58 +02:00
Kai Köhne
9165866b19 Bump copyright year to 2021
Change-Id: I18a9c2de391ca51655148b2e3cc9abdfbb8ddbcf
Reviewed-by: Tarja Sundqvist <tarja.sundqvist@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2021-01-25 20:00:44 +01:00
Tor Arne Vestbø
af0fa5cffe macOS: Only check SDK major version for compatibility
The macOS SDKs now follow the same major/minor version scheme as iOS,
where the major version is bumped for each OS release.

Pick-to: 6.0 5.15
Change-Id: I021421a9c58bb1ae64bc0c63b4215f14e4ada358
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2021-01-20 19:11:05 +01:00
Tor Arne Vestbø
9082cc8e8d macOS: Don't hard-code x86_64 as the architecture when using qmake
The qmake variable QMAKE_APPLE_DEVICE_ARCHS was added for iOS,
to support universal builds, as the QT_ARCH is a single value.

Since the qmake macOS builds are non-universal (at the moment),
we remove the hard-coded value for QMAKE_APPLE_DEVICE_ARCHS on
macOS, and let the normal architecture test resolve the arch,
like on other platforms.

To ensure that the following configuration tests are run with
an -arch argument, we trigger a commit of the preliminary Qt
configuration after running the architecture test. This is not
strictly necessary, but makes it clearer what's going on during
configure.

The device_and_simulator configuration option was used by the
iOS toolchain, and needed to be moved up in the configuration
test order to not break later tests.

The logic in mac/default_post.prf for both Xcode and Makefiles
to add -arch flags was kept as is, based on the existing
variable, to avoid too many changes to this logic.

The logic in toolchain.prf was amended to make it clear and
ensure that it only applies to iOS builds. macOS builds do
not have this issue.

Pick-to: 6.0
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I70db7e4c27f0d3da5d0af33cb491d72c312d3fa8
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-12-07 15:35:55 +01:00
Yuhang Zhao
886db3a2f3 MSVC: Enable control flow guard for release builds
This makes the applications and libraries more safe
and won't cause any binary incompatibility.

It's not supported for MSVC 2015, but since we only
support MSVC 2019 or later in Qt6, it's safe to use
this parameter.

The "-guard:cf" parameter is supported by clang-cl
and intel-cl as well, MinGW doesn't support it.

[1] https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-control-flow-guard?view=msvc-160
[2] https://docs.microsoft.com/en-us/cpp/build/reference/guard-enable-guard-checks?view=msvc-160

Change-Id: I7b035b4b0f22617a7f3c067cddde0bed2e13dd1c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-12-07 22:25:43 +08:00
Fabio Falsini
88ab9e1800 Change android target SDK version to 29
Play Store now accept only app with target
SDK version set to 29 or above

Pick-to: 6.0
Change-Id: If38f20c88fd6b0e6f29939cdf3d2eb793c0e1489
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-11-26 20:05:41 +01:00
Tor Arne Vestbø
a07c9a1a70 macOS: Upgrade supported SDK to 11.0
Testing seems to indicate building against the 11.0 SDK works fine,
and doesn't opt in to any new behaviors on Big Sur that Qt isn't
ready for.

Pick-to: 5.15
Pick-to: 5.12
Change-Id: I7da11cf25f2be7443c94ba7a4e9cd99dc1034455
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
2020-11-20 13:44:03 +00:00
Marianne Yrjänä
703485c293 QNX7.1 updates
Updates due to newer compiler version in QNX7.1

Task-number: QTBUG-88300
Change-Id: If9bbc08d49a077d80174a1807e069b5d4ef61c0d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-20 15:28:31 +02:00
Michal Klocek
802e5a45ba Install 3rd party headers and meta for static builds
When doing static builds any project which uses same
libraries as qtbase 3rd party libraries will most likely
end up in broken binaries, since symbols will be
included twice. Moreover, libraries can have different
versions. Install 3rd party headers and meta data for:

 * qtlibpng
 * qtfreetype
 * qtharbuzz

Pick-to: 5.15
Task-number: QTBUG-87154
Change-Id: I243dff9a12a95af20dee414f55bb762b8d579c81
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-11-16 13:08:04 +01:00
Andy Shaw
85fe4c8983 Android: Add the required linker flags for unwinding on armeabi-v7a
These flags are indicated as required for armeabi-v7a here:
https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#Unwinding

Pick-to: 5.15
Change-Id: Id2bbfc65c4ed9bda29692869a719dbab70891491
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2020-11-12 08:17:51 +01:00
Yuhang Zhao
f27f9e7bd3 MSVC: enable identical COMDAT folding for release builds
According to Microsoft's docs, /OPT:ICF is enabled by the
linker by default unless /OPT:NOICF or /DEBUG is specified.

If we are in RelWithDebInfo mode, /DEBUG is passed to the
linker to generate debug symbols, however, it caused the
identical COMDAT folding be disabled. We now pass /OPT:ICF
to the linker explicitly to prevent this.

[1] https://docs.microsoft.com/en-us/cpp/build/reference/opt-optimizations?view=msvc-160

Change-Id: I02099edb81034ace7bb19f1164d57829e3979a5f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-12 03:51:04 +08:00
Giuseppe D'Angelo
8780fbb2eb Build Qt (and client apps using it) with /permissive-
*Not* using /permissive- exposes Qt and client apps to interesting
bugs and/or build failures, (e.g. QTBUG-87225, or
19b5520abf). We demand strict
conformance by any other compiler, it's time to demand it from
MSVC too.

The Windows headers themselves are clean starting from the
Windows Fall Creators SDK (10.0.16299.0), and moreover Qt 6 will
drop WinRT; therefore, the comment in the mkspecs does not apply
any more.

Since /permissive- implies /Zc:referenceBinding, drop that
option. The other implied options are set on MSVC < 2017,
but I leave them in to avoid tinkering with the fragile lists
of C/C++ flags.

Rename the CMake internal helper function to better describe
what it does.

Fixes: QTBUG-85633
Fixes: QTBUG-85637
Fixes: QTBUG-85635
Fixes: QTBUG-88244
Change-Id: Ie03fddb61aa066fdc14b7231c22e7108b4a02fbb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-11-10 20:01:49 +01:00
Maximilian Goldstein
0bfb39da85 resources_function.prf: Discard external path prefixes
qtdeclarative's QtQml module adds a dynamically generated qmldir file to
its RESOURCES which is located outside the source directory.
Previously this caused qmake to generate an invalid alias for the qmldir file.
Now the relative path is discarded properly.

Fixes: QTBUG-88204
Change-Id: Ia689d9d110db092cee595bf44fcbb6d57783fded
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-10 16:55:07 +01:00
Tor Arne Vestbø
4b063c8467 Move iOS entrypoint logic to entrypoint library
Change-Id: Ie0fc8368953a59d06a31847ed417bc3c35f29b90
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-10 16:53:31 +01:00
Tor Arne Vestbø
ff170962d4 Don't rely on the module.pri for the entrypoint linking to the library
Depending on the presence and behavior of HEADER_MODULE/header_module
in CMake and qmake land, the module.pri might end up with an empty
module line, which means adding the module via QT_PRIVATE += entrypoint
will not link to the static library.

To avoid this problem we write an explicit module entry (QT.foo.bar)
into the same module.pri file as the one generated by qt_module,
where the auto-generated one has header_module enabled, and hence
no link behavior, while the manually written entry has a module
component, and will ensure linkage to the static library.

Change-Id: Ib98484f74410fab45c4d109f3610028200fba0c5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-09 18:08:06 +01:00
Tor Arne Vestbø
6032a9ca1a Allow adding linker flags to qmake module pris
The flags go before the library in the final linker line, as opposed
to the dependencies declared in LIBS.

This allows us to declare the flags for the entrypoint
in the project file of the entrypoint, instead of in
a standalone prf.

Change-Id: I35c054fe9fdaa6add7cd0e8ba3f7304f975ff80f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-03 00:14:04 +01:00
Tor Arne Vestbø
517c885239 Allow adding extra content to module pri
On the qmake-side we had exports, but they were quoted.

Change-Id: I95af4b927079691cab6403fec850f345ba181a00
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-11-02 16:44:10 +01:00
Oliver Wolff
04e0306520 toolchain.prf: Use vswhere to obtain VS installation path
Beginning with Visual Studio 2017, vswhere should be used to discover
Visual Studio installations. Installations of 2019 and up are not even
registered inside the registry anymore, so vswhere is the only way to
obtain information about these.

Pick-to: 5.15
Task-number: QTVSADDINBUG-819
Change-Id: Ibd8b2c4d38c7925857887f39e750e87a33f08bf9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-27 07:16:05 +01:00
Tor Arne Vestbø
4485f0d626 qmake: Don't warn about using private headers if there are none
Change-Id: I1d9ab0b4d25671931faa469e66cb2beb7bd846fd
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-23 20:19:29 +02:00
Tor Arne Vestbø
85ba43061f Make entry point module an internal module
Change-Id: I9eaadc7ce8ca03d64ff3a33c7b6641b073570a61
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-23 20:08:07 +02:00
Tor Arne Vestbø
4ad464461f Fix linking of non-console application on mingw
As a result of b5af140809 the link dependency to the
mingw32 static library was ordered after the entrypoint
library, which resulted in the WinMain symbol not being
found during linking due to how the static linker processes
archives.

Fixes: QTBUG-87725
Change-Id: I8e075f91f7f06dcdc618a4e0ae6d9c1d832888c0
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-20 17:12:44 +02:00
Joerg Bornemann
6089888d1d Make configure -qmake actually work
We need to ignore this option in qt_configure.prf.
This amends 077ea0c633.

Task-number: QTBUG-87049
Change-Id: If05b16a95d0830df9ca63961576981f8983820cc
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
2020-10-20 09:16:27 +02:00
Tor Arne Vestbø
b5af140809 Generalize the winmain/qtmain entry-point library
The use-case is relevant for other platforms as well.

Now that Qt has a module system we can also replace a lot of the
hand crafted logic for linking with simpler constructs.

Change-Id: Ib6853aaf81bfea79c31f2de741d65b4b56f23ef6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-17 12:13:00 +02:00
Tor Arne Vestbø
880db10f55 iOS: Remove dead code for linking to platform plugin
The code only existed to avoid the auto-generated
Q_IMPORT_PLUGIN(QIOSIntegrationPlugin), but nowadays
with bitcode enabled the code is not used, plus we end
up with this auto-generated file for other plugins anyways.

Change-Id: I91c8c88f4e825caab7d7d5250edaba8c57cb7374
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-10-16 23:59:28 +02:00
Ulf Hermann
4e10abb4c1 Add externConstexpr to MSVC compile options
We want this in order to be able to export constexpr members.

Change-Id: I33ba7964ebee54fe656df983985d8d6fa0b99358
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
2020-10-13 08:38:25 +02:00
Oliver Wolff
e88ba1159f rename win32-arm64-msvc2017 to win32-arm64-msvc
The mkspec works with msvc 2019 as well. As 2017 is no
longer supported, we should reflect this reality in the
mkspecs naming.

Change-Id: Ib1165343d43fd50eebc5e4e598e653ddc4a9b1ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-09 08:06:29 +02:00
Assam Boudjelthia
e60a337f4e Android: use shell path format when running qmake install step
On Windows shell, using unix path format might not work, since the shell
expects backslash paths only.

Pick-to: 5.15
Task-number: QTBUG-87066
Change-Id: I51741b475c1ede11336df63ee1c6092c792c16ef
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-06 06:51:14 +00:00
Assam Boudjelthia
c0122d9202 Android: unify deployment-settings.json path to unix format
Always use unix path formats for qmake and cmake builds.

Task-number: QTBUG-87066
Change-Id: I9d54c2ca687d28e38542850e3e18b6184513a9af
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-02 11:13:19 +03:00
Alexandru Croitor
4940f6d04c CMake: Remove old Qt 5 CMake build system files
Remove the stale Qt 5 CMake files.

Disable the generation of CMake files by the qmake build system,
it wouldn't create usable Qt 6 files anyway.

Keep mkspecs/features/create_cmake.prf and
mkspecs/features/cmake_functions.prf for now until we can confirm that
they are safe to remove.

Task-number: QTBUG-86827
Change-Id: Idcf59f4d7d5474171a9bf72904ff19adc8bc74cd
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-10-01 14:57:16 +02:00
Assam Boudjelthia
176136ce60 Android: add qmlimportscanner and rcc paths to deployment-settings.json
qmlimportscanner and rcc in Qt 6.0 are part of the host installation
and not in the target installation which androiddeployqt expects it to be.

Fixes: QTBUG-86831
Change-Id: I9d7a6fce3d2f109bab933fcfd7fdd5d2c83821a8
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-09-23 14:59:07 +00:00
Tor Arne Vestbø
5c1ed8bb74 Use 'A' for Apple framework version instead of Qt major version
All system frameworks use 'A' instead of the major version of the
framework, and Xcode's code signing assumes that the framework version
is 'A' when signing embedded frameworks (FB7323980), so leave the
version 'A'. This is also what Apple recommends.

Change-Id: Idbf2e30e156c3e869da8f75731e568524d9407e5
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-09-23 16:59:06 +02:00
Tor Arne Vestbø
ac43986aa5 Pass -arch when running toolchain configure test on Apple platforms
Clang doesn't automatically switch architecture just because we're
passing an iPhoneOS sysroot. In the past this resulted in a warning
about trying to link an x86_64 binary to arm64 libraries, but with
Xcode 12 this is now a hard error.

Fixes: QTBUG-86718
Pick-to: 5.15
Pick-to: 5.12
Change-Id: I7e9d2ca513d276029fc2a6cfe694a35fe41c39b3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-09-21 14:51:33 +00:00
Assam Boudjelthia
581ac9a4ad Android: bump default javac build versions to 8
Use -source 8 and -target 8 for javac by default.

Task-number: QTBUG-86282
Change-Id: I291beab4df166468972138822ca26f01c9666985
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-09-16 20:55:10 +03:00
Assam Boudjelthia
675805e9eb Android: allow setting javac build version from the configure script
The configure options -android-javac-source and -android-javac-target
can be used to set the version numbers.

Fixes: QTBUG-86282
Pick-to: 5.15
Change-Id: I36b0665de2c31e16bf6d138859b5503455eb8e66
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-09-16 20:55:08 +03:00
Joerg Bornemann
069fc33e8a Remove the -no-compile-examples configure switch
If '-make examples -no-compile-examples' was specified, sources of Qt's
examples would be installed, but the examples would not be built.

This switch has always been a source for confusion and is only
interesting for distributors, who can just package the examples
directory tree.

Change-Id: I0291d70e4951d98b553a4abf217db49d05316d3a
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2020-09-11 00:40:46 +02:00
Orgad Shaneh
98158096a4 qmake: Do not pass -mthreads to Clang
It is not supported.

Warning: argument unused during compilation '-mthreads'.

Change-Id: I6de147c15dbf3c7f416b233e739ce2de183701af
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-28 12:58:04 +03:00
Assam Boudjelthia
00a1e5da7e Android: add option to get app arguments with AndroidManifest.xml
AndroidManifest.xml file and the Android plugin already has a way
to provide commandline-arguments to app with the tag
"android.app.arguments". This change allow to set it from qmake/cmake
and allow Qt Creator to use that.

Task-number: QTCREATORBUG-23712
Change-Id: I3e680f40fd36ba6aaac7f344fb9509d2c3360e74
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2020-08-28 10:23:18 +03:00
Joerg Bornemann
b63e99d041 Make configure -force-asserts affect the Qt build only
Before this change, configure -force-asserts would affect qmake-based user
projects too, potentially forcing the user to remove the
QT_FORCE_ASSERTS define in their own projects.

[ChangeLog][configure] The -force-asserts option now affects the Qt
build only, not user projects.

Change-Id: Iecca3c9f7e8261996c5d8bcba8adbc0db1dc1c99
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-27 22:13:50 +02:00
Kai Koehne
146421ecaf headersclean: Check for all-W3 MSVC warnings
C4180, C4458 were disabled already in 2012, in commit 6668f5becf.
C4577 was disabled due to QtScript being compiled without exception
support in commit 97d7d80e73.

Anyhow, Qt Script is now officially gone in Qt 6, and Qt headers
do work just fine with C4180. Finally, C4458 is nowadays a W4 warning,
so not enabled in the first place.

Task-number: QTBUG-82615
Change-Id: I2f9b8e858817876b069a166129fbfac7ef3587a0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-08-26 17:30:40 +02:00
Alexandru Croitor
b45533161e Android: Fix building apps when Qt is configured with one ABI
When configuring with Qt only with one ABI, certain code paths were
not triggered, which led to a few issues:
- The deployment json file generated by androiddeployqt listed
  no architectures.
- The compiled shared library did not have a lib prefix and arch suffix,
  which androiddeployqt during the deployment / make apk step.

To fix the architectures missing in the json file, ANDROID_ABIS needs
to be set in android/resolve_config.prf also in the single abi case.

To get the correct file names, android.prf needs to apply the prefixes
and suffixes not only in the build_pass case (multi-abi) but also in
the single abi case (except for config.tests).

The application-binary entry in the json file needs to be without the
extra prefixes and suffixes though, so make a copy of the TARGET value
to be used in the json file, before the name manipulations are
applied.

Pick-to: 5.15
Task-number: QTBUG-85399
Change-Id: Idde92ab7fe883636ccc65a87b91c8a3fc72eefbb
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
2020-08-26 01:13:32 +02:00
Alexandru Croitor
d5dc0b6145 Android: Fix make check to work for single ABI Qt for Android builds
Task-number: QTBUG-85399
Change-Id: I049d430c0883a9bff43f7012b1274bbd48b25859
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-08-26 01:13:27 +02:00
BogDan Vatra
b443775ee9 Add QML2_IMPORT_PATH import paths to qml-import-paths list
QML2_IMPORT_PATH it's usually set by CI to tell the QML apps where to
find the QML components

Change-Id: I57d1cbc3d0fce9be257648268da0a5f9d61d81e9
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-08-24 21:10:25 +03:00
BogDan Vatra
45b56d86bb Fix running qml tests on Android
First and foremost the condition was wrong ...
In order to help running qml test cases on Android without any android
specific hack on
user's .pro files we copy the entire project folder to assets. I copy the
entire folder
and not only the tst_*.qml files because it might contain data which is
needed by the tests to run.

Change-Id: I06323d9d52904317410dd2f440de65a0766a48b5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2020-08-24 14:50:56 +03:00
Robert Loehning
7d7e62967f configure: Explicitly enable float-divide-by-zero with ubsan
Before clang 9, it was enabled by default
when -fsanitize=undefined was set.

Pick-to: 5.15
Change-Id: I0faf3ae1901d4badc6d265fa8081185be4360636
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-08-07 01:21:07 +02:00
Andy Shaw
7d4baabdae Android: Install the qmldir files when configuring for a single abi
This amends 0ef46b41d8 to ensure the
new configuration is styled correctly for qmake.

Task-number: QTBUG-80938
Change-Id: Iebfff3ff0570d2e92d01d4eb1178c0d6261468f9
Pick-to: 5.15
Reviewed-by: Lars Schmertmann <lars.schmertmann@governikus.de>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-08-03 16:47:31 +02:00
Thiago Macieira
797e18118b Remove no-longer-applicable -Wno-error for GCC
We don't appear to have implicit fallthroughs in our code anymore. The
last deprecated copies and redundant moves are also gone.

The other warning never had an explanation and doesn't show up when
building full Qt anyway.

Change-Id: Iad959315ad374ef288f5fffd15d683599a1a11b9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2020-07-31 09:58:05 -08:00
Tor Arne Vestbø
7f6599428b Build testcase_lowdpi tests as application bundles on macOS
As stand-alone executables are not tracked by Launch Services,
which is responsible for applying the low-dpi override at runtime.

Change-Id: Ifac71dfa9b9ffa5ab1302dfca8fa1f5ddd491082
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-26 14:48:20 +02:00
Tor Arne Vestbø
999f62531a testlib: Set AA_UseHighDpiPixmaps false for low-DPI tests
Change-Id: I129118c303527e4aff25c4d5326eefa43c231d44
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-24 12:36:15 +02:00
Alexander Volkov
865582bd7f Add -Wsuggest-override for gcc >= 9.2
gcc doesn't report warnings for final methods since version 9.2:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78010

Change-Id: I7152351aac0e3bad86d777e119f25137ef97ec6f
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2020-07-24 13:10:51 +03:00
Tor Arne Vestbø
e85c531c51 testlib selftest: Don't pass TESTARGS to Catch2
It doesn't understand the arguments we usually pass to testlib.

Change-Id: Iea83d1d8c31a510b2bc442cbfc810eac631322e7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-23 11:08:15 +02:00
Andy Shaw
64491c9b72 iOS: Add a variable to customize where the launch image is taken from
For those who are providing their own launch images for their iOS
projects then QMAKE_IOS_LAUNCH_SCREEN can be set to point to the
location where the launch image to be used over the default.

[ChangeLog][Platform Specific Changes][iOS] Added support for
specifying a launch image to be used for an iOS project. This can be
achieved by using QMAKE_IOS_LAUNCH_SCREEN.

Change-Id: Ibb236655b282132ab5eee747986a93abb9802200
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-07-22 00:42:36 +02:00
Paul Olav Tvete
2c2e7ffb22 Use --strict option for wayland-scanner
Make protocol definition errors build errors.

Task-number: QTBUG-73100
Change-Id: I834d1a9f6f4150875732772c14bde15b5e12b4e8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-07-21 10:13:25 +02:00
Paul Olav Tvete
b4dbc2282a Stop using deprecated wayland-scanner argument
The argument "code" is deprecated. Use "public-code" instead.

Task-number: QTBUG-73099
Change-Id: I3e822df956613d4f8338525324ffca744f27bc0c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-07-21 10:13:19 +02:00
Joerg Bornemann
79fda7a549 Make -qtlibinfix affect the names of plugins by default
In Qt5, the -qtlibinfix option did not affect the naming of plugins,
unless -qtlibinfix-plugins was set. This option was added in
5641650993 to offer a way to have -qtlibinfix affect the plugin names
without changing the default behavior. We now remove the
-qtlibinfix-plugins option, as the old behavior is not desirable.

[ChangeLog][configure] The -qtlibinfix option now affects the names of
plugins. The -qtlibinfix-plugins configure option was removed.

Task-number: QTBUG-15192
Fixes: QTBUG-85439
Change-Id: I96f5c2577b76274929c431621967df0e9b4631b7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-13 20:30:18 +02:00
Andy Shaw
0ef46b41d8 Android: Enable configuring for a single abi architecture
Fixes: QTBUG-80938
Pick-to: 5.15
Change-Id: Id87202e6b2520b18c6b06b71675157f588a28bd6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-07-10 09:38:13 +00:00
Lars Schmertmann
6ce2f3f26b Add ; to Q_UNUSED
This is required to remove the ; from the macro with Qt 6.

Task-number: QTBUG-82978
Change-Id: I3f0b6717956ca8fa486bed9817b89dfa19f5e0e1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-07-07 11:51:48 +02:00
Orgad Shaneh
04739ce4b4 Qmake: Share QMAKE_LINK_OBJECT_SCRIPT definition
It is only used by default on Windows, but can be enabled by setting
QMAKE_LINK_OBJECT_MAX.

The current file name is .project_name.

Use a sensible file name on this case.

Change-Id: Ic250d024e5feca739027c79a6e285d616234c4ea
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-06 16:44:11 +03:00
Tor Arne Vestbø
1048d83fc2 Limit OpenGL deprecation silencing on Apple platform to Qt itself
Apple deprecated the entire OpenGL API in favor of Metal, which
we are aware of, so we don't need to see the warnings when building
Qt.

Instead of applying the silencing globally for all Qt consumers,
both internal and external, we now limit the silencing to Qt itself.
That means user code that explicitly uses any of the deprecated APIs
will see the warnings. Note that this does not apply to merely using
any of the Qt OpenGL APIs. The user has to explicitly use the platform
APIs that have been deprecated.

The warnings need to be disabled on a build system level, so that
that they are passed as -D flags on the command line. If the defines
were done in Qt headers (qguiglobal.h e.g.), they would require the
user to always include this header before any of the Apple headers.

Change-Id: I3f2a2a5211332a059ad4416394251772c677fdcb
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2020-07-02 10:27:58 +02:00
Alexandru Croitor
36b0d9b51c CMake: Use target install prefix for MODULE_BASE_OUTDIR
When building qtbase for iOS with CMake, and then trying to mix build
qtsvg with qmake, the value of MODULE_BASE_OUTDIR was wrongly set
to the host prefix because that usually coincides with the target
prefix when doing builds with just qmake.

That is not the case for CMake builds, where the host and target
prefix locations are necessarily different.

This caused syncqt to place the forwarding headers inside the host
prefix location instead of the target prefix location, and thus
compiling qtsvg files failed.

Make sure to use the target install prefix instead of the host one.

Task-number: QTBUG-82581
Task-number: QTBUG-84781
Task-number: QTBUG-85240
Change-Id: I592be0b2799c72c11497c8adc12be13106082cfc
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-07-01 10:03:50 +02:00
Alex Blasche
21b5c7875c Raise the Android SDK build requirement to lvl 28 - compile fix
First of all cmake and qmake used a different standard.

Secondly, the qmake logic enforced lvl 23 (if it was installed which
is the case on the failing machine). When this is combined with
f71a400bf6 which requires lvl 28 API to build, the android build fails to compile.
cmake logic was even worse as it enforced lvl 21 API to be used if installed.

This change requires pick to 5.15 as f71a400bf6 was picked as well.

Pick-to: 5.15
Change-Id: I89a7193b711b8bf927d02907343a49d6f27082ce
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
2020-06-23 16:39:04 +02:00
Assam Boudjelthia
443a187c91 Android: fix regexp error in android_deployment_settings.prf
This might be related to the change
a1947aeffe.

Change-Id: I1c697e3130abd3eb26776d352a0f9bff0065c8f6
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2020-06-16 15:16:36 +00:00
Joerg Bornemann
dd28aaec6f qmake: Remove "Cannot find library" warnings
Remove the warning message that was introduced in 84f2792597.
It is triggered for debug_and_release projects that are built against
a single-configuration Qt. Silently fall back to the behavior before
84f2792597 like it always was the case.

Change-Id: I67ed1a145ec5d7a4047b0ce5ad43bf0fc6834d60
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
2020-06-15 10:33:40 +02:00
Joerg Bornemann
84f2792597 qmake: Support .dll.a import libraries for MinGW builds of Qt
CMake's default import library extension for MinGW is .dll.a. The code
in qt.prf that resolves the values of the QT variable expected an .a
extension.

To play well with CMake world we keep the the .dll.a extension for
Qt's libraries and teach qt.prf to handle both. In order to do that we
need to check for the existence of the .a or .dll.a file. If none of
these candidates was found we print a warning and fall back to the old
behavior.

Task-number: QTBUG-84781
Change-Id: If394f2d6acd104deb0c3a49240009a1900a506f7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-06-11 15:52:26 +02:00
Ulf Hermann
ef236456a4 Always add an empty json file to MOC_JSON_FILES
This way the metatypes files are generated even if there are no
metatypes in the module. This is necessary in order to generate empty
QML modules, which in turn is useful if we only want e.g. URL
interceptors in a module, but not types.

Change-Id: Ief949cfebe831b69353a75d0da15ee347995051c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-09 09:34:18 +02:00
Oliver Wolff
45b0f1be68 Remove winrt
Macros and the await helper function from qfunctions_winrt(_p).h are
needed in other Qt modules which use UWP APIs on desktop windows.

Task-number: QTBUG-84434
Change-Id: Ice09c11436ad151c17bdccd2c7defadd08c13925
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-06-06 20:25:49 +02:00
Dmitry Shachnev
f133b226cd qmake: Stop using -isystem flag
This option changes the order of include paths, which can cause problems
of various kinds. See https://bugs.debian.org/958479 for an example.

The benefit of that option is minimal for what it was intended.

Pick-to: 5.15 5.12
Change-Id: I80eeabd09764df290b60bc59aeb2f90d07723608
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-06-06 09:53:59 +00:00
Joerg Bornemann
a6d475d7db Fix include paths for prefix + framework + qtlibinfix builds of Qt
Prefix framework builds of Qt that use the -qtlibinfix had wrong include paths
in qt_lib_XXX.pri files which broke compilation of user projects.  We now honor
QT_LIBINFIX in qt_lib_XXX.pri files.

However, due to how framework includes work, module-style includes like
    #include <QtCore/qstring.h>
still do not work. Use <qstring.h> or <QString> instead.

Fixes: QTBUG-84219
Pick-to: 5.15
Change-Id: I5314ee810e64cbba6dba06a84064d48bb4ff3377
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-06-04 13:58:02 +00:00
Kai Koehne
1e17d0e9d7 Remove whitespace for file names generated from TARGET
Task-number: QTBUG-84492
Pick-to: 5.15
Change-Id: I70e79b7a57949e8dfd3781967e775bdea8822e0c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-06-02 08:07:54 +02:00
Lorn Potter
bc380b242d wasm: add more debugging information
This also fixes source maps not getting created in debug mode.

Pick-to: 5.15
Fixes: QTBUG-83607
Change-Id: I3ed388c4fef6c286fa452a1c700fa65c2a8f9529
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
2020-05-29 11:56:36 +10:00
Michal Klocek
d479c6db2c Override debug generation request on mac for toolchain.prf
Override request for debug info during compiler 'test',
otherwise call to dsymutil will fail call with /dev/null.

Use case here is to pass for example -glldb with CXXFLAGS.

Fixes: QTBUG-62953
Fixes: QTBUG-84467
Pick-to: 5.15
Change-Id: Ief8f987afb40d0b90da732195d67d476e7bb3aff
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-05-28 18:40:57 +00:00
Giuseppe D'Angelo
fa98adbd04 Fix compilation of PCRE2 under Intel CET
Ubuntu 20.04 enables -fcf-protection by default.

PCRE2 10.35 sees this but complains that -mshstk is also necessary
to build its JIT. Detect whether the compiler is enabling Intel CET
automatically, and if so, build PCRE2 with the right options.

Pick-to: 5.15
Change-Id: I3440e689b81f4f07055f211a4fa7331a43eb410d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-27 22:29:55 +02:00
Tor Arne Vestbø
af4e8e21f8 Run moc on non-PCH sources as well
Change-Id: Idccfc8f7b182169c5becfb28dec5aef4fc7079b1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-05-27 14:41:52 +02:00
Laszlo Agocs
752497910b Remove ANGLE
This marks the end of EGL and OpenGL ES support on Windows.

The concepts of -opengl dynamic, -opengl desktop, QT_OPENGL=software,
etc. remain unchanged, with the exception of the disapperance of
everything ANGLE related.

CMake builds now work identically to qmake on Windows: they default to
'dynamic' OpenGL on Windows, unless -DINPUT_opengl=desktop is specified.

On Windows, Qt 6 is expected to default to the "dynamic" OpenGL model by
default, just like Qt 5.15. This can be changed by switching to "desktop"
OpenGL, which will link to opengl32 (publicly, so other libs and applications
will do so as well) and disallows using another OpenGL DLL.

The "dynamic" mode is essential still because the fallback to a software
rasterizer, such as the opengl32sw.dll we ship with the Qt packages,
has to to work exactly like in Qt 5, the removal of ANGLE does not
change this concept in any way (except of course that the middle option
of using ANGLE is now gone)

When it comes to the windows plugin's OpenGL blacklist feature, it works
like before and accepts the ANGLE/D3D related keywords. They will
then be ignored. Similarly, requesting QT_OPENGL=angle is ignored (but
will show a warning).

The D3D11 and DXGI configure time tests are removed: Qt 5.14 already
depends on D3D 11.1 and DXGI 1.3 headers being available unconditionally
on Win32 (in QRhi's D3D11 backend). No need to test for these.

[ChangeLog][Windows] ANGLE is no longer included with Qt. Dynamic OpenGL
builds work like before but ANGLE is no longer an option. OpenGL proper
or an alternative opengl32 implementation are the two remaining options
now. Attempting to set QT_OPENGL=angle or Qt::AA_UseOpenGLES will have
no effect on Windows.

Fixes: QTBUG-79103
Change-Id: Ia404e0d07f3fe191b27434d863c81180112ecb3b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-05-26 15:11:40 +02:00
BogDan Vatra
eaa6191307 Android: Fix RESOURCES for Android MultiAbI
Pick-to: 5.15
Change-Id: I57560f51115ae560e3133096f402c6c9735f15a6
Reviewed-by: Andy Shaw <andy.shaw@qt.io>
2020-05-22 13:43:04 +00:00
Kai Koehne
b19ccc3af4 Remove -qt-xcb, -system-xcb from README and comments
The options got removed in commit 60588e1a5d

Pick-to: 5.15
Change-Id: Ic94f58885dab6de3c563b3dab70385570864b47d
Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io>
2020-05-19 06:42:35 +00:00
Kai Koehne
9981744684 Configure: Do not automatically enable compilation of examples for tests
If user's specified to build without examples we shouldn't silently
overwrite this. This might mean that some tests will fail to run then,
though.

Fixes: QTBUG-84087
Pick-to: 5.15
Change-Id: I53748fc03354ffdf015f85c93efc6e86c446adb8
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2020-05-19 08:42:19 +02:00
Liang Qi
2cd6d76d68 Merge remote-tracking branch 'origin/5.15' into dev
Conflicts:
	src/corelib/text/qbytearray.cpp

Change-Id: I63706409464d31391012bacdadfd1f6300509787
2020-05-18 08:52:33 +02:00
Joerg Bornemann
786ae0141a CMake: Don't hard-code the sysroot in Qt5XXXConfigExtras.cmake
Instead of writing the hard-coded sysroot into the .cmake file, write
the variable ${CMAKE_SYSROOT}. This makes it possible to relocate the
build to a machine where the sysroot is different from the build
machine.

Fixes: QTBUG-83335
Change-Id: Iaa69feb9a140b050f6b5547929cc940ee0f039ce
Reviewed-by: Rolf Eike Beer <eb@emlix.com>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-05-14 21:36:59 +02:00
Lars Knoll
b4fd377aa9 Make utf8_source the default for qmake builds
We now assume that source code is encoded in UTF-8 by default on
all platforms (and verify this with an auto test). Provide
a CONFIG+=no_utf8_source option for backwards compatibility.

[ChangeLog][qmake] qmake will tell the compiler that source code is
encoded in utf-8 by default. This mainly has an effect on Windows, where
MSVC still assumes source code is encoded in the current ANSI code page.
Use CONFIG+=no_utf8_source to get back the Qt 5 behavior.

Change-Id: I6dcafcaeefdea7d3907ccb723aeb7d23ccc0f04f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2020-05-14 19:14:51 +02:00
Qt Forward Merge Bot
76fe36645e Merge remote-tracking branch 'origin/5.15.0' into 5.15
Change-Id: I06396fa0a3d1687a0935e48d290358edbb0e59e8
2020-05-14 14:01:32 +02:00
Tor Arne Vestbø
f35745a30c iOS: Remove deprecated image-based launch screen
Change-Id: I50a7121c55170e1fb6950fdf7bb854cf6699df67
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-05-11 16:22:25 +02:00
Laszlo Agocs
b56ed4da74 re_escape QMAKE_INCDIR_VULKAN
Avoid getting errors like the following:

Encountered invalid regular expression 'C:\VulkanSDK\1.2.131.2/include'"

Change-Id: I734995878d24bc124f486fb5145ea64d0d5a9c64
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-05-11 14:59:17 +02:00
Tor Arne Vestbø
ba3b53cb50 Fix scanned resources in static builds
Fixes: QTBUG-81621
Change-Id: Ica23e99054c7b2498bdb1e256c256c8b430938b4
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2020-05-11 10:24:18 +02:00
Liang Qi
fc65683e65 Revert "Don't reference build directory in helper lib pri"
This reverts commit c9d9ac5bb0.

This breaks prefix build which tries to link to install folder.

Task-number: QTBUG-83967
Change-Id: I084152afde91c2063154bef8ac99d7e997c9394b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2020-05-07 20:58:25 +02:00
Qt Forward Merge Bot
025e88bfe5 Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: I003c0d6271c6444748bf30b4331eca3fb2410f44
2020-05-05 19:51:50 +02:00
Kai Koehne
ca33e7a740 Fix solaris build
Fixes enabling of fPIC that got removed as a side-effect of commit 39fc377bf.

Fixes: QTBUG-83949
Change-Id: I2bed7edb5b1f97192cbcf9e12dd927a17803d864
Pick-to: 5.15
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-05-05 15:34:16 +02:00
Kai Koehne
fcceae605a Allow switching of QT_NO_CREATE_VERSIONLESS_TARGETS
Fixes: QTBUG-83774
Change-Id: Ib3f2507a917046426b94a779e205012ce52cbfe9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2020-05-05 08:33:40 +02:00
Qt Forward Merge Bot
0f7987f0c9 Merge remote-tracking branch 'origin/5.15' into dev
Conflicts:
	src/corelib/text/qlocale.cpp
	src/network/access/qnetworkaccessmanager.cpp

Regenerated tests/auto/testlib/selftests/float/CMakeLists.txt

Change-Id: I5a8ae42511380ca49a38b13c6fa8a3c5df8bed01
2020-05-04 17:38:40 +02:00
Tor Arne Vestbø
c9d9ac5bb0 Don't reference build directory in helper lib pri
Otherwise the helper-lib pri file will be unusable when installed.

Change-Id: Id79a61e6ca9bb1b32c82ee158fd18f51319c484e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-04-30 12:20:26 +00:00
Oliver Wolff
85dab30b15 Fix building of autotests for certain configurations
When a configuration is static and has builtin_testdata defined, it was
possible that the "testdata" resource that is generated in testcase.prf was
used for a qmlimportscan directly. This generated test data resource  is no
file though. It's a "qmake struct" that contains files and a base folder
so that we should add every file from the "file list" of that struct.

It is possible, that the generated resource has a base, but no files. Thus
we need two loops or we can end up with a command line that ends with
"-qmldir". If qmlimportscanner decided to warn/error out in this case in
the future this feature could be broken and the point of breakage might
not be obvious.

Change-Id: I2111f594f7d5cf40521b8fe9236a8be9e2ed1b07
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-04-28 20:04:42 +02:00
Tor Arne Vestbø
d5f759cf66 iOS: Use storyboard instead of .xib file for launch screen
Apps on the iOS app store are required to use storyboards for their
launch screens from June 30th 2020.

Change-Id: Iae34042294fb167a2c893542c57dfaacaf1e929c
Fixes: QTBUG-83512
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2020-04-26 20:09:58 +02:00