summaryrefslogtreecommitdiffstats
path: root/config.tests
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Remove superfluous precompile_header feature and config testJoerg Bornemann2025-03-073-23/+0
| | | | | | | | | | | | | | Whether precompiled headers are used during the Qt build is controlled by the CMake variable BUILD_WITH_PCH and the qt_auto_detect_pch function. The precompiled_header feature wasn't actually used. Remove it and the corresponding configure test. Fixes: QTBUG-134425 Change-Id: I9b2ff9cbcf4888899b6a39d22d260388a9375c5c Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add copyright holder to the SPDX lineAllan Sandfeld Jensen2025-03-051-1/+1
| | | | | | | Fixes: QTBUG-134392 Pick-to: 6.9 Change-Id: I50f36af1c4ff91e3ab51db0abaf5b2b088fd8742 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Enable broken_threadlocal_dtors for VxWorksMichał Łoś2024-11-051-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Changes applied in commit 4fabde349f16b59f37568da2a4c050c6dd53a34e broke VxWorks tests and examples, many of which crash with error: ``` pthreadLib: unable to create POSIX thread internal attributes. ``` This error appeared in multiple tests, but was tested on tst_QSignalSpy, where it was 100% reproducible (I haven't check other tests for reproducibility). This above error is printed when VxWorks task starts and initializes its pthread containers. Pthread starting procedure results in error `S_objLib_OBJ_ID_ERROR`, on which documentation states that it means "The <tid> parameter is an invalid task ID". This happens because VxWorks pthread implementation clears its internal data, and only then passes control to `taskExit` system procedure, which calls thread_local destructors. Any calls to `pthread` routines which require current thread internal data ends with error and termination. While VxWorks uses clang internally, it implements `__cxa_thread_atexit` and `__cxa_thread_atexit_impl`, which makes it pass `TEST_cxa_atexit` in CMake, even thou their call order is different than on other platforms. Enable QT_FEATURE_broken_threadlocal_dtors for VxWorks by failing compilation of cxa_thread_atexit* tests, which fixes the crashes on VxWorks. Task-number: QTBUG-115777 Change-Id: I4109b66903333a94301afe7fe5634ac4365a70b4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QThread/Unix: refactor to split QThreadPrivate::finish() in two phasesThiago Macieira2024-10-282-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 1ed0dd88a32cd2c5ae100b48e14ff55bcbb652e6 moved the finish() functionality from immediately after run() returns to the time of thread-local destruction, to make sure that user destructors didn't run after our cleaning up. But as a side effect, it made other user code run too late, after some thread-local statics had been destroyed. This is a common practice, which causes the destructor for worker to run too late: worker->moveToThread(thread); ... QObject::connect(thread, &QThread::finished, thread, &QObject::deleteLater); QObject::connect(thread, &QThread::finished, worker, &QObject::deleteLater); This commit splits the cleanup in two phases: QThreadPrivate::finish(), which runs immediately after run() and will call back out to user code (finished() signal and delivery of deleteLater()), and cleanup() that cleans up the QThread{Private,Data} state and destroys the event dispatcher. That destruction is the only call out to user code. I've removed the complex mix of pre-C++11 pthread_setspecific() content and C++11 thread_local variables in favor of using one or the other, not both. We prefer the thread-local for future-proofing and simplicity, on platforms where we can verify this C++11 feature works, and because it allows us to clean up QThreadData and the event dispatcher as late as possible. (There's some code that runs even later, such as pthread TLS destructors, used by Glib's GMainLoop) Unfortunately, we can't use it everywhere. The commit above had already noticed QNX has a problem and recent bug reports have shown other platforms (Solaris, MUSL libc) that, 13 years after the ratification of the standard, still have broken support, so we use pthread for them and we call cleanup() from within finish() (that is, no late cleaning-up, retaining the status quo from Qt 4 and 5). See QTBUG-129846 for an analysis. Drive-by moving the resetting of thread priority to after finished() is emitted. [ChangeLog][QtCore][QThread] Restored the Qt 6.7 timing of when the finished() signal is emitted relative to the destruction of thread_local variables. Qt 6.8.0 contained a change that moved this signal to a later time on most Unix systems, which has caused problems with the order in which those variables were accessed. The destruction of the event dispatcher is kept at this late stage, wherever possible. Fixes: QTBUG-129927 Fixes: QTBUG-129846 Fixes: QTBUG-130341 Task-number: QTBUG-117996 Pick-to: 6.8 Change-Id: Ie5e40dd18faa05d8f777fffdf7dc30fc4fe0c7e9 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add LSX and LASX configure detectionChen Zhanwang2024-10-222-0/+55
| | | | | | | | | | Adds loongarch simd extension(LSX LASX) configure test and -feature-lsx and -feature-lasx configure options. Add detection of LSX and LASX at run-time in qsimd.cpp. Change-Id: I63eab2f4f45c306b672a89b376e0cbc01da0df83 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Fix runtime CPU feature detection for ARMAllan Sandfeld Jensen2024-10-173-1/+59
| | | | | | | | | We had no routines for checking compiler support instead only compiler currently enabled. Change-Id: I5543e4cff2b0bab494e11abf257061147baaf0d7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add ARM SVE detectionAllan Sandfeld Jensen2024-10-021-0/+3
| | | | | | | Limited to ARM64 and little-endian to keep our code simple. Change-Id: Ie65f71a31ca98d6929561d4b2ee1e9332b3a82d8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix compile-time CRYPTO detection, and detection on MSVC ARM64Allan Sandfeld Jensen2024-09-171-2/+2
| | | | | | | | | | | We had a mismatch of the naming of the Qt and compiler defines. Matched the qt defines to the compiler define, and added detection support for MSVC (ARM64). Pick-to: 6.8 Change-Id: I9abfbe8a96bc8c800e86dac3ab9a7abf9c1f7f9f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Fix ARM NEON detection on MSVC arm64Allan Sandfeld Jensen2024-08-121-1/+1
| | | | | | | | | | | | | | | | MSVC doesn't define __ARM_NEON, but neon is a necessary part of arm64, so will always be there. At the same time fix the NEON code for MSVC which has a different idea of what the intrinsics types are, even if all the intrinsic functions are the same. This has two consequences: 1. Since NEON lacks construction intrinsics except duplication, NEON mask constants needs to be built differently. 2. Since MSVC has all the NEON types aliases of the same underlying type, QSimdNeon cant do the same type based dispatch as before. Fixes: QTBUG-127646 Pick-to: 6.8 Change-Id: I8038bb6bb4557e8ce29e3844f2742a97b4489818 Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Add copyright and licensing to .cpp and .h files missing themLucie Gérard2024-05-282-0/+4
| | | | | | | Task-number: QTBUG-124453 Change-Id: I4487791114ce8ee6d2e788cc9a5f2ea5ec162f6b Reviewed-by: Kai Köhne <kai.koehne@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add copyright and licensing to build system files missing itLucie Gérard2024-05-211-0/+2
| | | | | | | Task-number: QTBUG-124453 Change-Id: Ibb6a0ab839a16ceef3c68861bac2f508ddb3d1ae Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Correct license in config.testLucie Gérard2024-02-2010-10/+10
| | | | | | | | | | | | According to QUIP-18 [1], all build system files should be BSD-3-Clause [1]: https://contribute.qt-project.org/quips/18 Pick-to: 6.7 Task-number: QTBUG-121787 Change-Id: I06880d91e4c6f8d7a92d249f3d216b2bc82fdeed Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove the mandatory x86-64 features from its feature listThiago Macieira2023-05-311-3/+3
| | | | | | | | | | | | | | The x86-64 architecture mandates support for MMX and SSE2, so we don't need to tell that the compiler generates them. They're implied. This could serve to determine that the user specified no -march= or -m flags that affect the architecture on the CMAKE_CXX_FLAGS, but fails if the compiler does that on its own for this particular target. For example, both for Android and macOS, the minimum feature set is SSSE3 for 32-bit and SSE4.1 for 64-bit. Change-Id: I76216ced393445a4ae2dfffd172a94b17e8a9a37 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* Rid of 'special case' markersAlexey Edelev2023-04-131-1/+0
| | | | | | | | | | | It's unlikely we will ever use pro2cmake at this project stage, so it doesn't make any sense to keep the 'special case' markers in the CMake scripts. Remove them and replace with TODO where needed. Change-Id: I84290c20679dabbfdec3c5937ce0428fecb3e5a7 Reviewed-by: Amir Masoud Abdol <amir.abdol@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-238-8/+8
| | | | | | | Task-number: QTBUG-105718 Change-Id: I5d3ef70a31235868b9be6cb479b7621bf2a8ba39 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add license headers to cmake filesLucie Gérard2022-08-038-0/+24
| | | | | | | | | | | | CMakeLists.txt and .cmake files of significant size (more than 2 lines according to our check in tst_license.pl) now have the copyright and license header. Existing copyright statements remain intact Task-number: QTBUG-88621 Change-Id: I3b98cdc55ead806ec81ce09af9271f9b95af97fa Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* CMake: add one more test for no_direct_extern_accessThiago Macieira2022-07-203-2/+19
| | | | | | | | | | | | | | | | | Found while compiling qtdeclarative tests: FAILED: qtdeclarative/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen [...] ld: qtdeclarative/tests/auto/qml/qmlcppcodegen/data/TestTypes/libcodegen_test_moduleplugin.a(codegen_test_moduleplugin_TestTypesPlugin.cpp.o): non-canonical reference to canonical protected function `_Z28qml_register_types_TestTypesv' in qtdeclarative/tests/auto/qml/qmlcppcodegen/data/libcodegen_test_module.a(codegen_test_module_qmltyperegistrations.cpp.o) ld: failed to set dynamic section sizes: bad value collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. See https://sourceware.org/bugzilla/show_bug.cgi?id=29377 Pick-to: 6.4 Change-Id: I3859764fed084846bcb0fffd1702fe6da341a9e3 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: fix the word order in "no_direct_extern_access"Thiago Macieira2022-07-204-0/+0
| | | | | | | | | 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-203-3/+9
| | | | | | | | | 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>
* x86/RDSEED: Work around QNX compiler missing the rdseed intrinsicThiago Macieira2022-07-061-0/+2
| | | | | | | | | | | Since it's no big deal, we can disable this. Making it use rdseed via inline assembly or detect when the compiler is fixed is Someone Else's Problem. Fixes: QTBUG-104697 Change-Id: I89c4eb48af38408daa7cfffd16feabb5408e2fbf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* CMake: update the x86 intrinsic checksThiago Macieira2022-06-283-216/+55
| | | | | | | | | | | | | | | | | | | | | | | | Merge all the existing checks into a single one, which is a simple pass or fail, since all our supported compilers support all the intrinsics up to Cannon Lake. The two I've recently added (AVX512VBMI2 and VAES) aren't yet supported everywhere, so they stay. For some reason, all intrinsics seem to be disabled on Android. It looks like some support was missing during the CMake port and this was never again looked at. I'm leaving it be. As for WASM, discussion with maintainers is that the WASM emulation of x86 intrinsics is too hit-and-miss. No one is testing the performance, particularly the person writing such code (me). They also have some non-obvious selection of what is supported natively and what is merely emulated. Using the actual WASM intrinsics is preferred, but someone else's job. Change-Id: Ib42b3adc93bf4d43bd55fffd16c10d66208e8384 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Lorn Potter <lorn.potter@gmail.com> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* CMake: Test the linker too for -mno-direct-extern-accessThiago Macieira2022-05-254-0/+47
| | | | | | | | | | | | | | | | | The GNU binutils ld linker needed a patch after the tagging of 2.38 to make the new feature work. Before this patch, the linker will fail to link when protected visibility symbols are used in the library, so don't enable the feature unless the linker is recent enough. GNU binutils gold from that version passes this test. LLVM lld is unknown (I didn't test), but LLVM was consulted in developing the feature. Fixes: QTBUG-103493 Change-Id: Ibcde9b9795ad42ac9978fffd16f1c80ca20953ff Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Use SPDX license identifiersLucie Gérard2022-05-169-288/+19
| | | | | | | | | | | | | 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>
* CMake: Make sure the strip_for_binary project works with MakefilesAlexandru Croitor2022-04-041-0/+1
| | | | | | | | | | | | | | | The printed lib path did not appear when building the project with the Unix Makefiles generator. Make sure the printing does not depend on the shell used by the generator, by making it VERBATIM. Amends 39f657032b5e65bfcb93472201f6607c0388ba37 Pick-to: 6.2 6.3 Task-number: QTBUG-101653 Change-Id: I3853bbed3b121ecdc8b2e9da42eb3399f347b8c2 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* CMake: Generate and use a wrapper script for stripping binariesAlexandru Croitor2022-03-242-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MinGW 11.2.0 comes with a strip.exe that strips the ".gnu_debuglink" section in binaries, a section that is needed for the separate debug information feature. binutils version 2.34 mentions the feature for the first time: https://sourceware.org/binutils/docs-2.34/binutils/strip.html#strip To ensure the debuglink section is preserved, generate a shell wrapper that calls the original strip binary with an extra option to keep the required section. To determine if the option is supported, we build a real shared library on which strip will be called with the --keep-section option. If the option is not supported, a wrapper is not generated and the stock strip binary is used. This logic only applies when targeting Linux and MinGW + a shared library Qt. For other targets, the stock strip binary is used. Developers can opt out of this logic by passing -DQT_NO_STRIP_WRAPPER=TRUE when configuring each Qt repo. Pick-to: 6.2 6.3 Fixes: QTBUG-101653 Change-Id: Idd213d48d087d3c9600c853362aebaba348cde33 Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Add VERBATIM option to add_custom_command callsAlexey Edelev2022-03-171-1/+2
| | | | | | | | | | | Use VERBATIM option to prepare the correct command line for the add_custom_command. This especially sensitive when using build directories with names containing special symbols, that cannot be handled by shell correctly. Change-Id: I51d7041cb806411135fd59bf6273c04a3c695443 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: add detection of x86 VAES and AVX512VBMI2 featuresThiago Macieira2022-03-081-0/+20
| | | | | | | | We have VAES code in qhash.cpp that isn't getting compiled right now. Change-Id: Ibf4acec0f166495998f7fffd16d6961261dec361 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
* CMake: remove unused config.tests (atomicfptr, avx512 and stl)Thiago Macieira2022-02-154-281/+0
| | | | | Change-Id: Ib42b3adc93bf4d43bd55fffd16c10873018acb04 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* qsimd_p.h: add a hack to allow AVX to work with MinGWThiago Macieira2022-01-201-3/+0
| | | | | | | | | | | | | | | | | | | GCC is unable to emit the SEH metadata about the stack aligning that is required to execute AVX aligned instructions (VMOVDQA, VMOVAPS, etc.), so it just doesn't align the stack. That causes crashes on a 50/50 chance every time the compiler attempts to address a stack-aligned variable. In a debug-mode build, because it always loads & saves everything on the stack, the chance of a crash happening is a near certainty. So we hack around it by going behind the compiler's back and instructing the assembler to emit the unaligned counterparts of the instructions every time the compiler wished to emit the aligned one. There's no performance penalty: if the variable is actually aligned, the unaligned instruction executes in the exact same time. Change-Id: Ib42b3adc93bf4d43bd55fffd16c29cac0da18972 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* wasm: add simd supportLorn Potter2021-10-051-0/+4
| | | | | | | | | | | | | | | | | | 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>
* Fix separate_debug_info configure test for cross-compilationJoerg Bornemann2021-09-281-1/+0
| | | | | | | | | | | | | | | The separate_debug_info configure test uses the CMake variable CMAKE_OBJCOPY. CMakeFindBinUtils in the test project finds the host's objcopy despite CMAKE_TOOLCHAIN_FILE being correctly set. We now add CMAKE_OBJCOPY to the list of variables that are passed to configure test projects and remove the CMakeFindBinUtils include, which looks rather internal anyways. Pick-to: 6.2 Fixes: QTBUG-96798 Change-Id: I164c6bd1771e8789e9dd19b50573b33b8866bd3b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Bump almost all cmake_minimum_required calls to 3.16Alexandru Croitor2021-09-225-5/+5
| | | | | | | | | | | | Needed for subsequent change that will check and error out if the version is lower than 3.16. We do that to ensure all policies introduced by CMake up to version 3.16 have their behavior set to NEW. Pick-to: 6.2 Task-number: QTBUG-95018 Change-Id: Ieaf82c10987dd797d86a3fd4a986a67e72de486a Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Fix the precompile_header configure testJoerg Bornemann2021-06-193-0/+92
| | | | | | | | This configure test always failed, and its result was never used. Pick-to: 6.2 Change-Id: I5112464b247efb5327ef5c23c96ef27168c11afc Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove target specific flags from the linker capabilities checkAlexey Edelev2021-06-165-0/+151
| | | | | | | | | | | | | Remove target specific flags from static_link_order. Move the check to the common config.tests folder. Amends 5fb99e3860eb43f4bacacec7f4a4626cb0159b14 Pick-to: 6.2 Task-number: QTBUG-93002 Task-number: QTBUG-94528 Change-Id: I1368075ec6bd1e743b2b89fd93143df38a278ec2 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add runtime ARM64 AES checkAllan Sandfeld Jensen2021-05-201-0/+3
| | | | | | | | | | | | Adds runtime CPU detection for Windows and macOS, and switches feature detection of AES to runtime like for x86, So far only on ARM64, since gcc doesn't do function versioning on ARM32, but clang can, so it could be added later. Change-Id: Ibe5d60f48cdae3e366a8ecd6263534ba2b09b131 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Check whether CMake was built with zstd supportJoerg Bornemann2021-04-161-0/+5
| | | | | | | | | | | | | | | | CMake 3.18 introduced the file(ARCHIVE_CREATE) API that we use with COMPRESSION Zstd for compressing corelib's mimedatabase. It's possible to build CMake without proper zstd support, and we have encountered such builds in the wild where the file(ARCHIVE_CREATE) call crashes. Add a configure test to determine whether CMake properly supports the Zstd compression method. Fixes: QTBUG-89108 Change-Id: I37e389c878845162b6f18457984d4f73a265b604 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-078-82/+0
| | | | | | | | | | | | | | | | Remove the qmake project files for most of Qt. Leave the qmake project files for examples, because we still test those in the CI to ensure qmake does not regress. Also leave the qmake project files for utils and other minor parts that lack CMake project files. Task-number: QTBUG-88742 Change-Id: I6cdf059e6204816f617f9624f3ea9822703f73cc Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* CMake: Skip regeneration of manual compile test projectAlexandru Croitor2020-04-091-0/+1
| | | | | Change-Id: I8563ed5b034c843b9f3a4390f963558f6d214ad1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* CMake: Port the 'separate_debug_info' featureJoerg Bornemann2020-03-063-0/+18
| | | | | | | | | | | | | | | For this, we have to uninline the separate_debug_info configure test, because supporting the conversion of this in configurejson2cmake is not worth the hassle. Separate debug information can be turned on for a target by calling the function qt_enable_separate_debug_info. For Qt's shared libraries and tools separate debug information is generated if the 'separate_debug_info' feature is manually turned on. Change-Id: Ic2ffc15efef3794dc0aa42f3d853ef6d651a751c Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add initial support for cross-building to iOSAlexandru Croitor2019-12-031-0/+6
| | | | | | | | | | | | | | | | | | | | | | Tested locally with the following configurations: - iOS device builds (arm64) - iOS simulator builds (x86_64) - iOS simulator_and_device builds (fat arm64 and x86_64 archives) All iOS builds currently require a custom vcpkg fork which contains fixes for building the required 3rd party libraries. qtsvg, qtdeclarative, qtgraphicaleffects and qtquickcontrols2 have also been tested to build successfully. simulator_and_device builds are also supported, but require an umerged patch in upstream CMake as well as further patches to vcpkg. Task-number: QTBUG-75576 Change-Id: Icd29913fbbd52a60e07ea5253fd9c7af7f8ce44c Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Qt CMake Build Bot Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
* Merge remote-tracking branch 'origin/dev' into wip/cmakeSimon Hausmann2019-10-171-4/+1
|\ | | | | | | Change-Id: Ia1da879a7bd8f71a649661a1844144dd67d60b3a
| * Merge remote-tracking branch 'origin/5.14' into 5.15Qt Forward Merge Bot2019-10-161-4/+1
| |\ | | | | | | | | | Change-Id: Ifd83db69416230175ddc3161f640b612755018fc
| | * wasm: fix arch detect on windows with WASM_OBJECT_FILESLorn Potter2019-10-141-4/+1
| | | | | | | | | | | | | | | | | | | | | Fixes: QTBUG-79146 Change-Id: I00188013b98687f34582aeb7b29b6d7439334536 Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | | Merge remote-tracking branch 'origin/dev' into wip/cmakeAlexandru Croitor2019-10-141-0/+17
|\| | | | | | | | | | | Change-Id: I4a78428a8ea273b6960792e3b8043f816fa37fcf
| * | QRandom: add support for RDSEEDThiago Macieira2019-10-091-0/+17
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Intel whitepaer[1] recommends using the RDSEED over RDRAND whenever present. libstdc++ from GCC 10 will also use it in std::random_device. [ChangeLog][QtCore][QRandomGenerator] The system() random generator will now use the RDSEED instruction on x86 processors whenever available as the first source of random data. It will fall back to RDRAND and then to the system functions, in that order. [1] https://software.intel.com/en-us/articles/intel-digital-random-number-generator-drng-software-implementation-guide Change-Id: I907a43cd9a714da288a2fffd15bab176e54e1975 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* | Merge remote-tracking branch 'origin/wip/qt6' into wip/cmakeAlexandru Croitor2019-10-113-0/+16
|\| | | | | | | Change-Id: I3a1d7673c3c20019ab12a2ea0a60f1619920a34c
| * Say hello to Android multi arch build in one goBogDan Vatra2019-08-261-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Multi arch build in one go is need to support the new .aab packaging format. By default the users apps are built for all Android ABIs: arm64-v8a armeabi-v7a x86_64 x86 The user can pass ANDROID_ABIS to qmake to filter the ABIs during development, e.g. qmake ANDROID_ABIS="arm64-v8a armeabi-v7a" will build only for arm ABIs. [ChangeLog][Android] Android multi arch build in one go, needed to support the new .aab packaging format. Change-Id: I3a64caf9621c2a195863976a62a57cdf47e6e3b5 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
| * Merge remote-tracking branch 'origin/5.12' into 5.13Liang Qi2019-08-123-0/+19
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/arch/write_info.pri Repair architecture config test for the WASM_OBJECT_FILES=1 build mode configure.pri tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp Done-With: Jörg Bornemann <joerg.bornemann@qt.io> Change-Id: I9e12088356eb5bc65b53211cd7a8e330cccd1bb4
| | * Fix host architecture detection for canadian cross buildsJoerg Bornemann2019-08-083-0/+16
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the host architecture is different from -platform (canadian cross build with -external-hostbindir) then we cannot use QMAKE_HOST.os to deduce the executable extension for that platform, because this value comes from the qmake binary that was pointed to by -external-hostbindir. Move the target name deduction mechanism to the actual configure test .pro files to make sure the right scopes are available, and write the deduced target name to a text file. That text file is read by qtConfTest_architecture to get the right binary to analyze. Fixes: QTBUG-77286 Change-Id: I68b844dd51dbfda6432a4b0dca6331899c82255f Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* | Merge branch 'wip/qt6' into wip/cmakeAlexandru Croitor2019-08-152-2/+1
|\| | | | | | | Change-Id: I50ac36b8803c296998149e98cc61e38687cdd14b