Commit Graph

2391 Commits

Author SHA1 Message Date
Kai Köhne
6205cb161d Update copyright year to 2022
Pick-to: 5.15 6.2 6.3
Change-Id: If6f1d6f9f82a601f8e2b6d36650d6e737518aa60
Reviewed-by: Paul Wicking <paul.wicking@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
2022-01-04 12:44:19 +01:00
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
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
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ø
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
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
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
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
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ø
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
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
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
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