summaryrefslogtreecommitdiffstats
path: root/mkspecs
Commit message (Collapse)AuthorAgeFilesLines
* Apple: Use 'en' instead of 'English' as development regionTor Arne Vestbø2022-10-231-1/+1
| | | | | | | | | | | This is consistent with what $(DEVELOPMENT_LANGUAGE) reports, as well as the Apple Locales Programming Guide which states that "Locale names such as “English”, “French”, and “Japanese” are deprecated in OS X and are supported solely for backward compatibility." Pick-to: 6.4 Change-Id: I99779d678ef9d4ea90249572f2f977e9b4df6c62 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* qmake: Add CFBundleDevelopmentRegion to the macOS Info.plistTor Arne Vestbø2022-10-201-0/+2
| | | | | | | | | | | | | | Aligns with what our CMake Info.plist has for macOS, what we do for both qmake and CMake on iOS, and what Xcode generates for new projects. The value is hard-coded to English instead of using $(DEVELOPMENT_LANGUAGE) as the file will be used by both the Makefile and Xcode generator, and only the latter does variable replacements for $(FOO). Task-number: QTBUG-63324 Pick-to: 6.4 Change-Id: I87e1cb14b14a9746b3603016c2ac69c252d37ff6 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Bump supported macOS SDK version for qmake to macOS 13Tor Arne Vestbø2022-10-141-1/+1
| | | | | | | Pick-to: 6.2 6.4 Change-Id: I278af36b980ec4dacba7962c9f78655b536c21b2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Guard some qmake 'simulator' conditions with iOS scopeTor Arne Vestbø2022-10-051-4/+4
| | | | | | Fixes: QTBUG-106353 Change-Id: Ic5a7aa1b9d932d0cb50a6c0924eb1a9a0d93cf38 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Move tvOS and watchOS mkspecs to unsupported directoryTor Arne Vestbø2022-09-138-0/+0
| | | | | Change-Id: I68077e331a3cd915d0b521f2f5f97638c05ccbc0 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* wasm: don't set GL_DEBUGMorten Sørvig2022-09-081-1/+1
| | | | | | | | | | | This spams the console with "writeStackCookie"/"checkStackCookie" messages, which makes finding relevant debug output harder. Pick-to: 6.4 Change-Id: I352b633f02f9ecc1333d1d91f5ffc21a4a937e53 Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
* findclasslist.pl: print the line number of where the occurrence cameThiago Macieira2022-09-061-3/+3
| | | | | | | | | Makes debugging easier. Pick-to: 6.4 Change-Id: Ic6547f8247454b47baa8fffd170ea7f7d84b990f Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* findclasslist.pl: do match subclasses in private headers tooThiago Macieira2022-09-061-3/+7
| | | | | | | | | | | | | I noticed that the QtCore version file had several entries for 13QObjectPrivate, which turns out to be for all the nested structs inside. That's not harmful for QObjectPrivate, since that is itself a private, but would be a problem for a nested struct of a public class. I'm sure those exist. Pick-to: 6.4 Change-Id: Ic6547f8247454b47baa8fffd170ea79360aaa615 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* findclasslist.pl: match unexported classes tooThiago Macieira2022-09-061-3/+11
| | | | | | | | | | | | | Unexported structs do mark private API too. This change necessitated fixing the negative-lookahead, because otherwise we'd match a line like: class QVariant; With $1 = "QVarian" and the "t" stood for the negative lookahead. Pick-to: 6.4 Change-Id: Ic6547f8247454b47baa8fffd170bba2c68c29dbc Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* wasm: set ALLOW_MEMORY_GROWTH for multi-threaded buildsMorten Sørvig2022-09-011-16/+3
| | | | | | | | | | | | | | | | | | | | Unify the settings for single-threaded and multi-threaded builds; Qt now always enables heap growth by default. This means we don't have to reserve a large (1GB) fixed memory size, but can instead set the smaller (50 MB) initial memory size, like the single-threaded build does. Enabling threads + memory growth can potentially cause a performance regression when accessing heap memory from JavaScript (https://github.com/WebAssembly/design/issues/1271). We leave it for the application to decide if this applies, and if the switch to fixed memory should be made. Change-Id: I96988b072506456685086e55aca4007a146bd70f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* findclasslist.pl: add a way to mark lines to be ignoredThiago Macieira2022-08-301-0/+6
| | | | | | | | | | In case they get erroneously extracted. For example, in Core5Compat, QTextCodec appears in the _p.h as a full class if !QT_CONFIG(textcodec) (I don't know what that is for, but it's there). Pick-to: 6.4 Change-Id: Ic6547f8247454b47baa8fffd170eb1d0f7e6d0f9 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* wasm: update emsdk to 3.1.14Lorn Potter2022-08-301-1/+1
| | | | | | | | | This fixes some threading bugs Pick-to: 6.4 Change-Id: I1a96dcc54d8338de09b551d52a166d073e85d752 Reviewed-by: Aleksandr Reviakin <aleksandr.reviakin@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Bump macOS and iOS deployment targets to 10.15 and 14 respectivelyTor Arne Vestbø2022-08-292-2/+2
| | | | | | Change-Id: I1ffaa77f3a4194d2ab02729ff525e5f831e3b7a8 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* qmake: Align iOS Info.plist file with the CMake oneAlexandru Croitor2022-08-251-6/+3
| | | | | | | | | | | | | Remove keys that are not needed: CFBundleSignature and LSRequiresIPhoneOS. Add CFBundleDevelopmentRegion, which is added by default in new Xcode projects. Pick-to: 6.4 Task-number: QTBUG-95838 Change-Id: I090c14561bc812ec255f55001b658d2dc60e11f3 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* qmake: Reformat mkspecs/macx-ios-clang/Info.plist.appAlexandru Croitor2022-08-251-33/+46
| | | | | | | | | | Replace tabs with spaces. Add some newlines. Pick-to: 6.4 Task-number: QTBUG-95838 Change-Id: I0fa0e7b74590e7a093d22de85e24d4456ece4a63 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* wasm: include asyncify support unconditionallyMorten Sørvig2022-08-171-3/+3
| | | | | | | | | | | | | | | | | | | Emscripten's option for enabling asyncify (-sASYNCIFY) is a link-time option, which means there is no requirement to have a separate asyncify build, at least for static builds. Replace the current QT_HAVE_EMSCRIPTEN_ASYNCIFY compile-time option with a run-time option which checks if the asyncify API is available. Keep support for configuring with "-device-option QT_EMSCRIPTEN_ASYNCIFY=1" for backwards compatibility and for the use case where want asyncify support to be on by default for a given Qt build. Enable asyncify for the asyncify_exec example. Pick-to: 6.4 Change-Id: I301fd7e2d3c0367532c886f4e34b23e1093646ad Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* qmake: Fix tool paths generated for androiddeployqt json fileAlexandru Croitor2022-08-171-2/+4
| | | | | | | | | | | | | | | | | They should contain the executable suffix .exe when androiddeployqt is run on Windows, because androiddeployqt does not add the suffix itself when the tool paths read from the json file. Amends 4fc14b19336531c96f5883ff4b06f9af1ddaa30d Amends 176136ce60f22ac14335b92aaa473e53b9022bc1 Pick-to: 6.4 Fixes: QTBUG-105133 Fixes: QTCREATORBUG-27868 Change-Id: I8c5bac2fa6c82d122f8a70c5ff2a561298327a34 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
* qmake: Fix non-Xcode asset catalog handling for iOS simulatorAlexandru Croitor2022-08-162-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | If an iOS project was built with qmake using the Makefile generator instead of the Xcode generator, so -spec macx-ios-clang, and not -spec macx-xcode, Asset catalog processing failed with an actool error like Unknown platform: "ios-simulator" This is because we used the deployment identifier (which is meant for creation of the -mios-simulator-version-min flag) to pass a value to actool's -platform option, rather than the sdk name. Introduce a new variable called platform_identifier, which will be set to the currently processed macOS/iOS sdk name (e.g. macosx, iphonesimulator, iphoneos). Use it when processing asset catalogs using the Makefile generator. Relates to 9daeb6fe9d35b10ed739ea0a0566533524ffd532 Amends 5574aa986b69277881fe5fc694d97514c668024f Pick-to: 6.3 6.4 Fixes: QTBUG-102053 Change-Id: Ic4ea3b9e11c21ae535d6544cbed3670f9db44e72 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* wasm: allow apps to override EXPORT_RUNTIME_METHODSLorn Potter2022-08-122-1/+8
| | | | | | | | | | | | | | | | | | | | | | | Developers can add to Emscripten's EXPORT_RUNTIME_METHODS by defining their own using: QT_WASM_EXTRA_EXPORTED_METHODS Which will add on to Qt's default exported runtime methods of UTF16ToString,stringToUTF16 for cmake: set_target_properties(<target> PROPERTIES QT_WASM_EXTRA_EXPORTED_METHODS "ccall,cwrap") or set(QT_WASM_EXTRA_EXPORTED_METHODS "ccall,cwrap") for qmake: QT_WASM_EXTRA_EXPORTED_METHODS = ccall,cwrap Done-with: Mikolaj Boc Fixes: QTBUG-104882 Pick-to: 6.4 Change-Id: I9678bdb7b077aaa8527057212ea4e161c0be0b60 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Fix installation of separate debug info for pluginsJoerg Bornemann2022-08-091-1/+1
| | | | | | | | | | | | | | This amends commit fc2e40e88d44d457ec5ebd1cc235696f3f478be9. For Qt plugins, we do not add 'dlltarget' to INSTALLS but only 'target'. In this case we must add the .dll.debug file to 'target' like we did before fc2e40e88d4. Fixes: QTBUG-105374 Pick-to: 5.15 6.2 6.3 6.4 Change-Id: If495548dfca55d02e1c5884e03e281e27ee07ccd Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* darwin: Remove unneeded SDK version checks for older versionsTor Arne Vestbø2022-08-051-1/+1
| | | | | | | | | All versions down to 6.2 require at least Xcode 12, which ships with the macOS 11 SDK, and iOS 14 SDK. Pick-to: 6.4 6.3 6.2 Change-Id: I128321ec9e97b670b7c027f1233978e1b8856f88 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* qmake: Link static plugins even in shared Qt buildsTor Arne Vestbø2022-07-251-14/+24
| | | | | | | | | It's perfectly possible to create static plugins in an otherwise shared Qt build, but the logic to import these plugins into applications was assuming a fully static Qt build. We now handle this more granularly. Change-Id: Iacfa72f04c7918613b50ca87cf123e7f4c0841d5 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Split up logic for enumerating plugins from how they are processedTor Arne Vestbø2022-07-251-26/+30
| | | | | | | | | | | | Sanitizing the contents of the QTPLUGIN variable, and adding default plugins from the available modules, should be a separate step before the resulting QTPLUGIN is iterated and processed by for example linking to each plugin, generating an import file, and adding module dependencies. This makes it easier to add logic to the processing step later on. Change-Id: I00e826c7fe87b29cf2e6bf4e1901c4d1482a20e6 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: fix the word order in "no_direct_extern_access"Thiago Macieira2022-07-202-1/+1
| | | | | | | | | And take the opportunity to remove the "m" in the qmake feature name and .prf file. Pick-to: 6.4 Change-Id: I36b24183fbd041179f2ffffd170224ab75cdd968 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix attempt to use -mno-direct-extern-access with ClangThiago Macieira2022-07-201-2/+7
| | | | | | | | | Clang has the option, but spells it differently. Fixes: QTBUG-105002 Pick-to: 6.4 Change-Id: I36b24183fbd041179f2ffffd170217e82ff6d14d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add new mkspecs device for Raspberry Pi 4 (64-bit)Umair Raihan2022-07-142-0/+33
| | | | | | | | | | | | | | | The existing mkspecs for Raspberry Pi 4 (devices/linux-rasp-pi4-v3d-g++) was intended to compile Qt application for the 32-bit version of Raspberry Pi, thus it used compiler flags that are incompatible when compiling Qt application for the ARM 64-bit architecture. According to ARM compiler documentation, -mfpu flag is rejected by AArch64 state while its alternative, -mcpu, has to be avoided when -march flag is already defined. -mfloat-abi flag is not valid with AArch64 targets. To support both 64-bit and 32-bit architectures, I proposed to add this new mkspecs. See: https://developer.arm.com/documentation/101754/0618/armclang-Reference/armclang-Command-line-Options/-mfpu https://developer.arm.com/documentation/101754/0618/armclang-Reference/armclang-Command-line-Options/-mfloat-abi Pick-to: 6.3 6.4 Change-Id: I36574875e798281688601edd0f166922592d9830 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
* Disable bitcode for iOSTor Arne Vestbø2022-07-071-1/+1
| | | | | | | | | | It's deprecated as of Xcode 14, and generates a warning message if a project explicitly enables bitcode. The App Store no longer accepts bitcode submissions from Xcode 14. Pick-to: 6.2 6.3 6.4 5.15 Change-Id: Ib1f9d5114ca4d8b1845ecc7a9de0473ee015db33 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* rcc: teach qmake not to use zstd when not availableSamuli Piippo2022-07-061-0/+1
| | | | | | | | | | | | | | The zstd feature might have different values between the host and target, in which case qmake must tell rcc not to use zstd when the feature is disabled. Amends 14546d1816a877690cda71f02c275303ef42afa8 Fixes: QTBUG-103794 Pick-to: 6.4 6.3 6.2 Change-Id: Ia0378742a50e2a85f59985dea2506d3dda5f28e8 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* wasm: use simpler syntax for EXPORTED_RUNTIME_METHODSMorten Sørvig2022-07-061-1/+1
| | | | | | | | | Recents emsdk versions support specifying the method list without using brackets. Switch to this syntax since that avoids any quoting issues. Pick-to: 6.4 Change-Id: Ib7bf8ec3f0d2ef67e8222a23e7af9b368ee99a00 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* CMake: disable the attempt to force SIMD on iOS simulator buildsThiago Macieira2022-06-271-9/+0
| | | | | | | | | | | This will stop working with the next commit, which merges all basic x86 SIMD intrinsics into one configure test. As a result, linking almost anything graphical on iOS (which is almost everything) causes the linker to fail with undefined references to SIMD-optimized versions that didn't get compiled. Change-Id: Ib42b3adc93bf4d43bd55fffd16c288f4104a6ccc Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* wasm: Optimize use of openglesLorn Potter2022-06-221-3/+1
| | | | | | | | | | | | | | - USE_WEBGL2 is depreciated, Emscripten now uses MAX_WEBGL_VERSION - Optimize and remove use of emulated ES2 and ES3, which means only use WebGL friendly subset. Users can add USE_ES3=1 and USE_ES2=1 to the final linker arguments for those respective versions in order to enable using glDrawArrays and glDrawElements with unbound buffers. See https://emscripten.org/docs/porting/multimedia_and_graphics/OpenGL-support.html Pick-to: 6.4 Change-Id: I11ae359966964b3e7aa6e61ccc714c2bfbf61f96 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* qmake/MinGW: Install separate debug info of DLLs next to the DLLJoerg Bornemann2022-06-211-1/+5
| | | | | | | | | | | | | | | | ...instead of next to the import library. If separate_debug_info is enabled then we would create an install rule that puts the .dll.debug file next to the .a file. GDB however expects the file to be next to the .dll. Fix the installation rule in separate_debug_info.prf accordingly. This affects the MinGW packages of Qt 5.15 and user projects targeting MinGW. Pick-to: 5.15 6.2 6.3 6.4 Fixes: QTBUG-86790 Change-Id: If91c356e7e7f7f4330ebc43691e414929f9beb4b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* wasm: don't enable specialHTMLTargets by defaultMorten Sørvig2022-06-011-1/+1
| | | | | | | | | | | | | | | | | | Adding specialHTMLTargets to EXPORTED_RUNTIME_METHODS carries the obligation to actually use it as well; failing to do so makes Emscripten stop with a reference error on startup. However, we can't guarantee that Qt will use it in all cases. The current usage depends on QGuiApplication being used. Application code could be using QCoreApplication, or no application object at all. Detect if specialHTMLTargets is present instead, and then enable the code paths which uses it if that's the case. This means that apps which want to use e.g. multiple browser windows can opt into support by making sure EXPORTED_RUNTIME_METHODS contains specialHTMLTargets. Change-Id: I81105aa01946602fcf593f170e305d7dc9bad3be Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* wasm: update emscripten to 3.1.10Lorn Potter2022-05-271-1/+1
| | | | | | | | Qt 6.4 will require Emscripten 3.1.10 Change-Id: I34d6288489b6674f6fd75134dd1855ae931c79c2 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: David Skoland <david.skoland@qt.io>
* qmake: iOS: Don't pass -fobjc-nonfragile-abi -fobjc-legacy-dispatchAlexandru Croitor2022-05-231-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to latest clang source code (llvm-14.0.3) non-fragile ABI is default for everything but i386 which means we can stop passing the -fobjc-nonfragile-abi option. See https://github.com/llvm/llvm-project/blob/llvmorg-14.0.3/clang/lib/Driver/ToolChains/Darwin.h#L245 This gets rid of the following warning when building a qmake project for iOS, while targeting the iOS simulator: clang: warning: argument unused during compilation: '-fobjc-nonfragile-abi' [-Wunused-command-line-argument It only happens for the simulator case because Xcode adds the -fobjc-abi-version=2 option, thus the qmake one gets ignored. As a drive-by also remove the usage of the -fobjc-legacy-dispatch option. According to clang sources it should be implicitly used on iOS. See https://github.com/llvm/llvm-project/blob/llvmorg-14.0.3/clang/include/clang/Basic/ObjCRuntime.h#L100 Amends d788f636691df5cae59d44a3828a0ddd58c343d0 Pick-to: 6.2 6.3 Fixes: QTBUG-103001 Change-Id: I06f8e46e40a1f04c5bbc4f177afa035e525dfed6 Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* macOS: Ensure proper quoting when calling otool in objc_namespace scriptTor Arne Vestbø2022-05-231-3/+3
| | | | | | | Pick-to: 6.2 6.3 5.15 Change-Id: I0c7fc40d321277103f6e80f221884cd87df6f930 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-16122-4627/+243
| | | | | | | | | | | | | Replace the current license disclaimer in files by a SPDX-License-Identifier. Files that have to be modified by hand are modified. License files are organized under LICENSES directory. Task-number: QTBUG-67283 Change-Id: Id880c92784c40f3bbde861c0d93f58151c18b9f1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* wasm: enable WASM_BIGINTMorten Sørvig2022-05-121-1/+2
| | | | | | | | | | | | | | | | | | | JavaScripts's BigInt feature provides support for arbitrary-precision integers. This makes it possible to represent 64-bit integers; the standard JS Number type supports 32-bit integers only (or more accurately 53-bit integers - see Number.MAX_SAFE_INTEGER). Enable WASM_BIGINT which makes Emscripten map int64_t and uint64_t to BigInt when interfacing with JavaScript code. This removes one of the conditions which enables wasm-emscripten-finalize. Task-number: QTBUG-103352 Change-Id: Ia70d599daaf34c92695f5a2b61665e0c237e6b95 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: David Skoland <david.skoland@qt.io>
* wasm: set ASSERTIONS level to default (1)Morten Sørvig2022-05-121-1/+0
| | | | | | | | | | This removes one of the conditions which enables wasm-emscripten-finalize. Task-number: QTBUG-103352 Change-Id: Id05db4b081dec360cdad2e611622e5baf09aeb23 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: David Skoland <david.skoland@qt.io>
* INTEGRITY: enable C99 globallyTatiana Borisova2022-05-111-0/+1
| | | | | | | | | | | | | PCRE 10.40 requires C99 now. While all GHS compiler versions we support in Qt 6 default to C99, GHS v2016.5.4, which we use in Qt 5.15, still defaults to C89, so set QMAKE_CFLAGS_C99 for that compiler. It doesn't hurt in Qt 6, but enables the updated PCRE in Qt 5.15. Pick-to: 6.3 6.2 5.15 Change-Id: I0a2d3254f80136210289a415ede7c2409b07af9b Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Kimmo Ollila <kimmo.ollila@qt.io>
* wasm: add specialHTMLTargets to EXPORTED_RUNTIME_METHODS for qmakeLorn Potter2022-04-211-1/+1
| | | | | | | | | | | The change 0ec75f4b9932a65f9ec7ec79eb6f2e04691cea3f missed adding specialHTMLTargets for qmake Also add warning to keep QtWasmHelpers in sync with qmake.conf Change-Id: Idb363e77f0cecb4f125d3cb4f7507899149a3bac Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* objc_namespace: Add support for universal binariesTor Arne Vestbø2022-04-191-19/+49
| | | | | | Pick-to: 6.2 6.3 5.15 Change-Id: If6a15c1ec27fe0e1a42764fbcd194d7806aecf0c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* objc_namespace: Fix misspelled argument for silencing outputTor Arne Vestbø2022-04-191-1/+1
| | | | | | | Pick-to: 6.2 6.3 5.15 Change-Id: I318a57e193bd10f8dbd2b22ab173a2940ba1dad9 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* objc_namespace: Update parsing logic to account for otool changesTor Arne Vestbø2022-04-191-14/+26
| | | | | | | | | | The textual output of otool in recent Xcode releases has changed. We now look for OBJC_CLASS_RO/OBJC_METACLASS_RO rather than class_ro_t. Pick-to: 6.2 6.3 5.15 Change-Id: I86192e91e55d8deb7e5c6790b327855fc0f7e594 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* qmake: Add support for C++23Joerg Bornemann2022-04-055-5/+11
| | | | | | | | | | | | | | | Add the CONFIG value c++2b that represent the upcoming C++23 standard. Add QMAKE_CXXFLAGS_CXX2B and QMAKE_CXXFLAGS_GNUCXX2B. On MSVC, use /std:c++latest when c++2b is active. This fixes an issue with MSVC where c++latest implied the /std:c++20 compiler flag. Pick-to: 5.15 6.2 6.3 Fixes: QTBUG-102202 Change-Id: Ie00ee5793c1a649195013c8c19efc8d59cf0acc9 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* qmake: Ignore stderr when determining the macOS SDK versionJoerg Bornemann2022-03-291-1/+1
| | | | | | | | | | | | | | If xcrun prints warnings or errors to stderr while determining the SDK version, they become part of the SDK version string. This then leads to a qmake error. Intentionally ignore stderr so that it is not treated as part of the SDK version. Pick-to: 5.15 6.2 6.3 Fixes: QTBUG-102066 Change-Id: I023296b430aac1407c970412c5cf1010bd81589b Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* iOS: Use python3 for enumerating test target devicesAlexandru Croitor2022-03-181-1/+1
| | | | | | | | | macOS 12.3 removed python 2 Pick-to: 6.3 6.2 5.15 Fixes: QTBUG-101745 Change-Id: Ieace2623e838cf36a7a68186b0f729ff0f19299a Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* wasm: remove compiler and linker warningsLorn Potter2022-03-171-18/+24
| | | | | | | | | | | INITIAL_MEMORY and PTHREAD_POOL_SIZE are linker flags only USE_PTHREADS is both linker and compiler arguments. Also increase default INITIAL_MEMORY Pick-to: 6.3 Change-Id: Id1998efbf1d6de901f404db7e988f6cafd547a39 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Enable -mno-direct-extern-access and ELF protected visibilityThiago Macieira2022-03-103-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The -mno-direct-extern-access tells the compiler and linker that references to symbols outside this ELF module mustn't be direct and must instead always go through the GOT or PLT (the PLT can additionally be disabled with -fno-plt). The ELF protected visibility tells the compiler and linker that this symbol is present in the dynamic symbol table as an export, but it cannot be interposed by another ELF module. This option is required for user code to link properly to Qt, otherwise they will get linker errors (assuming GNU binutils >= 2.39) or runtime failures (glibc >= 2.35). Both versions of glibc and binutils are older than GCC 12, so it's a safe assumption they are in use and downgrading the toolchain or libc is not supported. Adding this option to the compilation is assured for CMake and qmake-based projects. For example, all accessess to QCoreApplication::self in QtCore, after this change and with GCC 12 are relocation-free and direct: 000000000013ebf0 <QCoreApplicationPrivate::checkInstance(char const*)>: 13ebf0: cmpq $0x0,0x4f73d0(%rip) # 635fc8 <QCoreApplication::self> 13ebf8: setne %al 13ebfb: je a90fe <QCoreApplicationPrivate::checkInstance(char const*) [clone .cold]> 13ec01: ret Meanwhile, accesses to the same variable in other modules are indirect via the GOT: 66650: mov 0x876e1(%rip),%rax # edd38 <QCoreApplication::self@Qt_6> 66657: cmpq $0x0,(%rax) This replaces the -Bsymbolic and -Bsymbolic-functions (broken) functionality that Qt has been using or attempting to use since ~2006. See https://gitlab.com/x86-psABIs/x86-64-ABI/-/issues/8#note_606975128 Change-Id: Iad4b0a3e5c06570b9f5f571b26ed564aa0811e47 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* qmake: Enforce linker response files for WebAssembly on WindowsJoerg Bornemann2022-02-211-2/+1
| | | | | | | | | | | | Set QMAKE_REPONSEFILE_THRESHOLD to 1 in the WebAssembly mkspec to enforce the usage of linker response files. This fixes "The command line is too long." errors when linking user projects that depend on many libraries, for example projects using QtQuickControls2. Pick-to: 6.2 6.3 Fixes: QTBUG-100559 Change-Id: I2f03f0756c9f171bc7382940fa0f8079bdb75a00 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>