summaryrefslogtreecommitdiffstats
path: root/mkspecs/common
Commit message (Collapse)AuthorAgeFilesLines
* cmake: Propagate Apple platform build requirements to qconfig.priTor Arne Vestbø2024-03-141-6/+0
| | | | | | | | | | | | So we don't have to maintain the requirements in two places. None of the variables removed from the qmake configs are referenced before we do load(qt_config), so this should be safe. Pick-to: 6.7 Change-Id: Iabd5884a2fd1c4b1cd7b44416bebb2624050229e Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* QMake: Fix quoting of WASM's ASYNCIFY_IMPORTS linker optionJoerg Bornemann2024-02-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | WASM projects failed to link on Windows if "CONFIG += silent" was specified in the .pro file and the build environment did not contain sh.exe. In that case, QMake prepends "@echo linking && " to the link command. The mingw32-make tool then considers this command as "complex command" and runs it through either sh.exe or cmd.exe, depending on whether sh.exe is found in PATH. If cmd.exe is used, the single quotes around the ASYNCIFY_IMPORTS option are passed verbatim to em++. Then em++ thinks 'ASYNCIFY_IMPORTS=qt_asyncify_suspend_js,qt_asyncify_resume_js' is an input file. That file is of course non-existent, and linking fails. Remove the single quotes around the linker option. They are not necessary. Pick-to: 6.5 6.6 6.7 Fixes: QTBUG-122192 Change-Id: Id362b51ac787f7f235bcb3d9102c5dee66ce5768 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Remove QT_READDIR_R macro from qplatformdefs.hAhmad Samir2024-02-064-11/+0
| | | | | | | | | | | | | | | | | | | readdir_r() has been deprecated since glibc-2.24; all usage of QT_READDIR_R in qtbase has been ported to readdir() since 2016 4b6784b49c6dcf0add9ec0cbb4ad97cd191c2aa3 (which explains in details the reasons behind the deprecation). What's left is the QT_READDIR_R, user code that still uses it, can switch to readdir_r() (which is not advisable). [ChangeLog][QtCore] Removed QT_READDIR_R macro; readdir_r() has been deprecated since glibc-2.24 and it's recommended to use readdir() instead. For more details see: https://man7.org/linux/man-pages/man3/readdir_r.3.html Change-Id: Icca2dca7e696533dcb983a82ba97a13baadcf015 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Bump macOS minimum deployment target to 12 (Monterey)Elias Toivola2024-02-011-2/+2
| | | | | | | | | | macOS 11 is at its end-of-life and no longer supported by Apple. It should be dropped from dev (Qt 6.8). Task-number: QTQAINFRA-6009 Change-Id: Ib5fc5adbc13eb08e4603b226b9d7748417765b15 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Remove remnants of Qt for Native Client (NACL)Tor Arne Vestbø2023-09-234-53/+0
| | | | | | | | | The project has been superseded by Qt for WebAssembly and was never supported in Qt 6. Pick-to: 6.6 6.5 Change-Id: I36682cfe3ce6adac76a307b0faba97dcb7c655cc Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qmake: Bump supported macOS SDK version to 14 (Sonoma)Tor Arne Vestbø2023-09-181-1/+1
| | | | | | Pick-to: 6.6 6.6.0 6.5 6.5.3 Change-Id: I49f97e844729f2b99af6efad00d024db13050ea1 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* undef READ and WRITE on VxWorksŁukasz Matysiak2023-08-311-0/+7
| | | | | | | | | | On VxWorks READ is defined as 0 and WRITE as 1 this causes issues with moc and Q_PROPERTY that are manifested as parse errors Task-number: QTBUG-115777 Change-Id: I9ea971507fa30390affb8b6865bfde04e8fd5a7d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix compilation of qfilesystemengine on VxWorksJacek Poplawski2023-07-271-0/+2
| | | | | Change-Id: I533f262bf6624008d216d96aa29ae2dfc4ba9195 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add initial support for building for VxWorks using clangJacek Poplawski2023-07-211-0/+43
| | | | | Change-Id: I8c4538cd5582bfea69a6e1890445c4c75e6ca0d7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Make WASM export names different across modulesMikolaj Boc2023-06-201-1/+0
| | | | | | | | The export name is now ${TARGET_NAME}Entry. This can also be overridden by using QT_WASM_EXPORT_NAME, both in CMake and qmake Change-Id: I59c97ae6e22f0b2720716e9d7eff7b6b13d37ab5 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* wasm: set stack size to 5MB againMorten Sørvig2023-03-061-1/+2
| | | | | | | | | | | Recent Emscripten 3.1.27 reduces the stack size to 64KB, which is way to small for Qt-based applications. Restore the previous stack size (5 MB) by setting STACK_SIZE. Change-Id: I6c25e31b32dc1d551fa423655fcef4891830bcd1 Reviewed-by: Piotr Wierciński <piotr.wiercinski@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
* wasm: Fix qmake buildMorten Sørvig2022-12-091-1/+1
| | | | | | | | | | Add missing '\' on multiline variable assignment. Sync EXPORTED_METHODS with cmake build. Change-Id: I8c790c5f8a7bdae75d6b3e3d6e4482f6c69ecbe8 Reviewed-by: David Skoland <david.skoland@qt.io> Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
* wasm: add support for wasm64 buildLorn Potter2022-12-072-0/+231
| | | | | | | | | | | | | | This adds a new platform named wasm-emscripten-64 which sets the build and link argument -MEMORY64 You may see this warning, please ignore at your own discretion: em++: warning: -sMEMORY64 is still experimental. Many features may not work. [-Wexperimental] Fixes: QTBUG-104891 Change-Id: I8d3150d239ba72dbef5c2352e0171d6cfbe51b59 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Bump macOS minimum deployment target to 11 (Big Sur)Tor Arne Vestbø2022-11-301-1/+1
| | | | | | | | | macOS Catalina (10.15) has reached its end-of-life, and is no longer supported with bug fixes or security updates by Apple. Change-Id: I65d0f572785bc77a563be925cf64823c20b9e015 Reviewed-by: Liang Qi <liang.qi@qt.io> Reviewed-by: Timur Pocheptsov <timur.pocheptsov@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>
* Bump macOS and iOS deployment targets to 10.15 and 14 respectivelyTor Arne Vestbø2022-08-291-1/+1
| | | | | | Change-Id: I1ffaa77f3a4194d2ab02729ff525e5f831e3b7a8 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@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>
* 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>
* 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>
* Use SPDX license identifiersLucie Gérard2022-05-1611-418/+22
| | | | | | | | | | | | | 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>
* 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>
* qmake: Add support for C++23Joerg Bornemann2022-04-053-0/+5
| | | | | | | | | | | | | | | 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>
* Enable -mno-direct-extern-access and ELF protected visibilityThiago Macieira2022-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Update MSVC qmake mkspecs to make -std:c++20 available for VS2019 16.11+Christian Heimlich2022-02-111-0/+8
| | | | | | | | | | Set QMAKE_CXXFLAGS_CXX2A variable to -std:c++20 while building projects with qmake and MSVC 16.11 or greater (_MSC_FULL_VER >= 192930133), when c++2a is specified in the project config. Pick-to: 6.2 6.3 Change-Id: If9a48d1ed16cb05c5cc01414ce8a4344e22438fe Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* INTEGRITY: Prevent deletion of virtual functionsKimmo Ollila2022-01-251-2/+2
| | | | | | | | | | | | | | | In release builds -olink also enables deletion of (unused) virtual functions. In some cases this can lead to application crashes when using loaders combined with timers. Prevent this by adding -no_uvfd option to release build flags. Task-number: QTBUG-99506 Pick-to: 6.3 6.2 5.15 Change-Id: I5c669e1e987f1fe912c9aca52ff82000125eed53 Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io> Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
* qmake: Introduce the variable MSVC_TOOLSET_VERJoerg Bornemann2021-11-102-0/+11
| | | | | | | | | | | | | ...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>
* qmake: Support Visual Studio 2022Joerg Bornemann2021-11-102-0/+10
| | | | | | | | | | | | 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>
* macOS: Bump max supported SDK version to 12Tor Arne Vestbø2021-11-041-1/+1
| | | | | | Pick-to: 6.2 5.15 Change-Id: Ib4980719fe372abfb2566fe4e82db29226a7fcfa Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* qmake: Add support for C17/C18Joerg Bornemann2021-08-262-0/+2
| | | | | | | | | | | | 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>
* qmake: Make it possible to set CONFIG += c11 with MSVC 19.28Joerg Bornemann2021-08-261-0/+6
| | | | | | | | | | | | 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>
* macOS: Respect QMAKE_APPLE_DEVICE_ARCHS by building for all those archsTor Arne Vestbø2021-06-231-0/+2
| | | | | | | | | | 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>
* Cleanup leftover QWSTasuku Suzuki2021-04-141-2/+0
| | | | | | | QWS is replaced with QPA in Qt5 Change-Id: Iccec38e55ae23a27ebecd8010e1df7bba8aa5a33 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Bump Apple platform minimum versionsAlexandru Croitor2021-03-101-3/+1
| | | | | | | | | | | | | | | | | | | | | | 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>
* macOS: Don't hard-code x86_64 as the architecture when using qmakeTor Arne Vestbø2020-12-071-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* macOS: Upgrade supported SDK to 11.0Tor Arne Vestbø2020-11-201-1/+1
| | | | | | | | | | | | 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>
* QNX7.1 updatesMarianne Yrjänä2020-11-205-6/+4
| | | | | | | | Updates due to newer compiler version in QNX7.1 Task-number: QTBUG-88300 Change-Id: If9bbc08d49a077d80174a1807e069b5d4ef61c0d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* MSVC: enable identical COMDAT folding for release buildsYuhang Zhao2020-11-121-2/+2
| | | | | | | | | | | | | | | 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>
* Build Qt (and client apps using it) with /permissive-Giuseppe D'Angelo2020-11-101-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | *Not* using /permissive- exposes Qt and client apps to interesting bugs and/or build failures, (e.g. QTBUG-87225, or 19b5520abfb5f66d4b83c7a18cc72d68673d098a). 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>
* Generalize the winmain/qtmain entry-point libraryTor Arne Vestbø2020-10-172-2/+0
| | | | | | | | | | 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>
* Add externConstexpr to MSVC compile optionsUlf Hermann2020-10-131-0/+1
| | | | | | | | 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>
* qmake: Do not pass -mthreads to ClangOrgad Shaneh2020-08-281-2/+1
| | | | | | | | | It is not supported. Warning: argument unused during compilation '-mthreads'. Change-Id: I6de147c15dbf3c7f416b233e739ce2de183701af Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* configure: Explicitly enable float-divide-by-zero with ubsanRobert Loehning2020-08-071-3/+3
| | | | | | | | | | 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>
* Qmake: Share QMAKE_LINK_OBJECT_SCRIPT definitionOrgad Shaneh2020-07-062-1/+2
| | | | | | | | | | | | 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>
* Limit OpenGL deprecation silencing on Apple platform to Qt itselfTor Arne Vestbø2020-07-022-4/+0
| | | | | | | | | | | | | | | | | | | | | 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>
* Remove winrtOliver Wolff2020-06-0614-295/+1
| | | | | | | | | 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>
* qmake: Stop using -isystem flagDmitry Shachnev2020-06-062-2/+0
| | | | | | | | | | | 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>
* Fix compilation of PCRE2 under Intel CETGiuseppe D'Angelo2020-05-271-0/+2
| | | | | | | | | | | | 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>
* Remove ANGLELaszlo Agocs2020-05-264-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Fix solaris buildKai Koehne2020-05-051-0/+1
| | | | | | | | | 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>
* Remove checks for glibc < 2 from qplatformdefs.h filesJoerg Bornemann2020-04-231-4/+0
| | | | | | | | | | | | | | | The last release of glibc 1 was 1995 and can be considered outdated. Also, the current check prevented building with e.g. musl libc. Every file that includes common/posix/qplatformdefs.h already has QT_SOCKLEN_T defined to socklen_t, so remove the definition from those completely. This is a continuation of 813f468a and a421e409. Change-Id: Icf2692a8e814286487662e290a8f844872eefe53 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>