summaryrefslogtreecommitdiffstats
path: root/src/tools/bootstrap
Commit message (Collapse)AuthorAgeFilesLines
* Bootstrap: remove unused sourcesThiago Macieira2024-03-131-10/+2
| | | | | | | | | qiterable.cpp is even a comment-only source. Change-Id: I01ec3c774d9943adb903fffd17b79d567a435594 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Bootstrap: remove qnumeric.cpp by using qnumeric_p.hThiago Macieira2024-03-131-1/+0
| | | | | | | | | That is, use the inline functions that refer to <numeric_limits> and <cmath> directly, instead of the out-of-line wrappers. Someone should verify if the hacks for QNX's <math.h> are still required. Change-Id: I01ec3c774d9943adb903fffd17b7ee560b4b71b9 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Bootstrap: remove QDirListing/QDirIteratorThiago Macieira2024-03-131-1/+0
| | | | | | | | | | Bootstrapped tools don't usually need to list directories; they should operate on file lists passed to it by the build system instead. This may deserve a QT_FEATURE. Change-Id: I01ec3c774d9943adb903fffd17b7ecfba2702fc5 Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Bootstrap: remove QTemporaryFileThiago Macieira2024-03-131-1/+0
| | | | | | | | | Done by harmonizing the use on the QT_CONFIG(temporaryfile) macro and fixing one test that was missing. We can't remove the older macro because it is marked PBULIC) but we don't need to use it ourselves. Change-Id: I01ec3c774d9943adb903fffd17b7eb4dd1a4e63f Reviewed-by: Ahmad Samir <a.samirh78@gmail.com>
* Bootstrap: remove QRandomGeneratorThiago Macieira2024-03-131-1/+0
| | | | | | | | | | | The bootstrapped tools really mustn't produce random output (they must always be reproducible exactly). Therefore, ensure we don't need this file. Change-Id: I01ec3c774d9943adb903fffd17b7eb94dbd4be89 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Ahmad Samir <a.samirh78@gmail.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Bootstrap: remove QVariantThiago Macieira2024-03-131-1/+0
| | | | | | | | | I added QT_NO_VARIANT to qconfig-bootstrapped.h to be clearer on what the #ifs are, but there's no testing of that feature outside of QT_BOOTSTRAPPED. Change-Id: I01ec3c774d9943adb903fffd17b7e8ac4340fb89 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Bootstrap: remove QDataStreamThiago Macieira2024-03-131-1/+0
| | | | | | | | | | | It was only used by the cmake_automoc_parser so it would write a 64-bit in big-endian format. So bypass QDataStream and write it native endianness. Change-Id: I01ec3c774d9943adb903fffd17b79c78e56db4cf Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Move qAbort from qglobal.cpp to qassert.cppThiago Macieira2024-03-061-1/+0
| | | | | | | | | | | It makes more sense there, as all the other functions in that file are about early termination. This allows us to remove qglobal.cpp from the bootstrap library, because qglobal.cpp now only has the callback tables. Amends 8f13af5d7b9b659208a8a93e6581d30b434dae1f. Change-Id: I01ec3c774d9943adb903fffd17b7ea92404bdbd3 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Port to QDirListingAhmad Samir2024-03-031-1/+1
| | | | | | | | | | | Use QDirListing in the Bootstrap build instead of QDirIterator. Drive-by changes: - more const variables - use emplace_back() instead of append() where appropriate Change-Id: Ie1f0d03856e557c4bfabfff38a87edc7da86d091 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* PCRE2: upgrade to 10.43Giuseppe D'Angelo2024-02-191-0/+1
| | | | | | | | | | | | Apart from some source code reshuffling, 10.43's JIT has dropped its support for ARMv5. [ChangeLog][Third-Party Code] PCRE2 was updated to version 10.43. Pick-to: 6.7 6.6 6.5 Change-Id: I7909f0a9358f38282f5eaeacd2eb10529b47e63c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Kai Köhne <kai.koehne@qt.io>
* Apple: Fix a few deprecation warnings after bumping deployment targetsTor Arne Vestbø2024-02-191-0/+6
| | | | | | | | | | | | - kIOMasterPortDefault -> kIOMainPortDefault - Use UTType instead of Carbon Core functions/constants - NSWorkspace iconForFileType -> iconForContentType - Removed obsoleted kUTTypeInkText pasteboard type There are still a few more, but these will be fixed in follow ups. Change-Id: Ibbca226d578b4ba64bd9c8c5d0addc1870114a20 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
* Bootstrap: remove QBitArrayMarc Mutz2024-01-311-1/+0
| | | | | | | | | | It appears to be used only in qlalr, which is, however, not bootstrapped. Pick-to: 6.7 6.6 6.5 6.2 Change-Id: Idc16d957bf687238c7b0ee603d8b092e2048ef18 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Utilize NO_UNITY_BUILD arguments instead of manual exclusionAmir Masoud Abdol2023-03-141-1/+2
| | | | | | | | | | | Unity build is disabled by default for all 3rdparty libraries, so we don't need to set the manually anymore; and for the plugins we can use NO_UNITY_BUILD instead. Pick-to: 6.5 Task-number: QTBUG-109394 Change-Id: Ia2f83ae083924d31adf07e7647b34ae6571ed01f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Add some exclusions for CMake Unity (Jumbo) buildsFriedemann Kleint2023-02-161-1/+1
| | | | | | | | | | | | | Add exclusions for issues that are likely not fixable (3rd party code, X11 define clashes, etc) in 3rd party, tools and plugins. Pick-to: 6.5 Task-number: QTBUG-109394 Done-with: Amir Masoud Abdol <amir.abdol@qt.io> Change-Id: I698c004201a76a48389271c130e44fba20f5adf7 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* src: Remove remains of qmake conversion from CMakeLists.txt filesFriedemann Kleint2023-02-101-27/+11
| | | | | | Pick-to: 6.5 Change-Id: Id644d322a602038403bb7f46c532744575fbf6d3 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Adapt QTimeZone to handle Qt::TimeSpec machineryEdward Welbourne2022-12-091-0/+1
| | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QTimeZone] QTimeZone is now always defined; feature timezone now controls most of its prior API and some new API is added, most of it always present, to enable QTimeZone to package a Qt::TimeSpec and, for Qt::OffsetFromUTC, its offset. Prior to this change, APIs using Qt::TimeSpec had to provide a separate function taking a QTimeZone alongside a function taking a Qt::TimeSpec and optional offset; it will now be possible to unify these into a single function taking a QTimeZone. Adaptation of other Qt classes to do so shall follow. Task-number: QTBUG-108199 Change-Id: If5ec3cc63920af882ebb333bf69cde266b1f6ad7 Reviewed-by: Ivan Solovev <ivan.solovev@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
* Add Boyer-Moore Latin-1 string searcher with optional case sensitivityØystein Heskestad2022-12-081-0/+1
| | | | | | | | [ChangeLog][QtCore][QString] Added Boyer-Moore Latin-1 string searcher with optional case sensitivity Task-number: QTBUG-100236 Change-Id: I200a0dac7c8012add1ee02511dba791d233115e0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Rename the header qenvironmentvariables.h -> qtenvironmentvariables.hSona Kurazyan2022-09-301-1/+1
| | | | | | Change-Id: I8153c856c2cd93ec6932cd7dd5e9d7273d5712dd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Replace the syncqt.pl script with syncqt toolAlexey Edelev2022-09-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | syncqt.pl adds an extra dependency on perl when building Qt. Modern C++ provides the convenient cross-platform way to access a filesystem and to use regular expressions, so we may replace the perl script with C++ application. The syncqt executable is built at configure time and installed as QtCore tool. It's running at configure time to deliver the required header files for IDE to build a consistent code model and at the build time to keep tracking changes in header files and generate the missing aliases without reconfiguring. 'syncqt' only parses header files from a CMake build tree, so the resulting Qt installation only contains interfacing headers that belong to the platform that Qt is built for. 'sync.profile' files are not used as the 'source of truth' for sync qt procedure anymore, all the necessary information is taken from either CMake files at configure time or from the module header files while parsing them. syncqt.pl is still in place since it's required as fallback solution for a smooth transition to the new syncqt implementation for all qt repositories. This patchset only enables the C++ based syncqt for 'qtbase' repository. From the performance perspective C++ version works faster then perl script, also the configure time is reduced significally on subsequent reconfigurations - up x2 times faster when re-configuring repository, but it also takes time to compile the tool itself the first time. Numbers for qtbase: syncqt.pl syncqt.cpp initial: 0m16,035s 0m20,413s reconfig: 0m6,819s 0m3,725s The syncing procedure can be run separately for each module using <ModuleName>_sync_headers targets. The 'sync_headers' target can be used to sync all the modules at once. Task-number: QTBUG-87480 Task-number: QTBUG-103196 Change-Id: I8c938bcaf88a8713b39bbfd66d9e7ef12b2c3523 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Add QComHelper class for dealing with COM on WindowsTor Arne Vestbø2022-08-291-0/+1
| | | | | | | | | | | | | | | Unifies our approach to calling CoInitializeEx and CoUninitialize, removing a lot of boilerplate in the process, and also fixes a few bugs where we would incorrectly balance our calls to CoInitializeEx and CoUninitialize. The optimistic approach of qfilesystemengine_win.cpp of calling CoCreateInstance without initializing the COM library explicitly has been removed, as calling CoInitializeEx should be a noop in the situation where it's already been loaded. Change-Id: I9e2ec101678c2ebb9946504b5e8034e58f1bb56a Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
* Change the license of all CMakeLists.txt and *.cmake files to BSDLucie Gérard2022-08-231-1/+1
| | | | | | | 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>
* QCoreGlobalData: removeMarc Mutz2022-08-211-1/+0
| | | | | | | | | | | | | | | Inline the data members into the only remaining user (qdir.cpp) and remove the class. As a drive-by, fix the non-idiomatic use of QT_BUILD_CORE_LIB to mean !QT_BOOTSTRAPPED and apply the guard consistently to the declaration, too. Pick-to: 6.4 6.3 6.2 Fixes: QTBUG-105747 Change-Id: If2c780dd96e2a2e331cabdc42fd920874e7737b0 Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Extract header qassert.h from qglobal.hSona Kurazyan2022-08-051-0/+1
| | | | | | | | | | | | For now qassert.h is included in the middle of qglobal.h, since some of the code below needs it, but this will be cleaned up when that code is moved in its own header. Task-number: QTBUG-99313 Change-Id: I2cdfed44f5c8772c1dad4797cf8edc6cb4c964b4 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Add license headers to cmake filesLucie Gérard2022-08-031-0/+3
| | | | | | | | | | | | 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>
* Extract header qenvironmentvariables.h from qglobal.hSona Kurazyan2022-07-291-0/+1
| | | | | | | | | | | | | qcontainerfwd.h was relying on the forward declaration of QByteArray in qglobal.h, so add the missing forward declaration there. Additionally, had to move the implementations of qTzSet() and qMkTime() to qenvironmentvariables.cpp along with environmentMutex. Task-number: QTBUG-99313 Change-Id: I233aff305c2fedaf0a48362cc99ff2d6f6c0ee54 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Fix building with "-sanitize fuzzer-no-link"Robert Loehning2022-07-121-0/+1
| | | | | | | | | | | | | | | | | | | This partially reverts commit c25a5b4e1fc9e74f1f3ab1001db4fbae267d7831. We need qtemporaryfile.cpp in the bootstrap library, because qfile.cpp uses QTemporaryFileName - even if QTemporaryFile has been disabled. Re-adding qtemporaryfile.cpp does not increase the bootstrap library's size significantly, because since c25a5b4e1f we have #define QT_NO_TEMPORARYFILE in qconfig-bootstrapped.h, and that disables compilation of QTemporaryFile but leaves QTemporaryFileName intact. Pick-to: 6.4 Fixes: QTBUG-103805 Change-Id: I6947ca303edb36fc359bd5d07c1cbd88098905fb Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Split qtLocalTime out into a new QLocalTime namespaceEdward Welbourne2022-05-201-0/+1
| | | | | | | | | | | | | | | ... in new qlocaltime* files, now that it's decoupled enough from the internals of QDateTime for this to be possible. Part of the consolidation of time_t code in one place. Move assorted constants from qdatetime.cpp to a private namespace in qdatetimeprivate_p.h to be shared between q*time.cpp hereafter (fixing an out of date comment in the process - julianDayFromDate() is long gone). Task-number: QTBUG-95993 Change-Id: I03d97e959118041f9d86b8bb2e738599bc0b17e1 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Revert introduction of QT_USE_BOOTSTRAP_SOURCE_COPYJoerg Bornemann2022-05-091-115/+69
| | | | | | | | | | | | | | | | | | | | | | | This removes the hack that creates a copy of bootstraplib sources to avoid rebuilding the world if a bootstraplib source file changed. Said hack led to confusing behavior: - when accidentally editing bootstraplib copies instead of the real sources - when header files were changed in a way that were incompatible to the bootstraplib source copy This reverts commit 80a8ead08d1fea926850d1da61f693dfe26ed5b0. This reverts commit 743bb66744e762d10754426e43d42b24cc7bff0f. The official way to avoid the QTBUG-92269 problem is now to set QT_HOST_PATH=<host-Qt-installation> and QT_FORCE_FIND_TOOLS=ON. If you want to build the tools as well, set QT_FORCE_BUILD_TOOLS=ON. Fixes: QTBUG-92269 Change-Id: I226bf5792f9ca8e7e207dc53e01c2903018d82d3 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Fix unresolved include in bootstraplib when using source copiesJoerg Bornemann2022-04-211-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | When QT_USE_BOOTSTRAP_SOURCE_COPY is ON, there are situations where includes like "../../3rdparty/sha1/sha1.cpp" in qcryptographichash.cpp cannot be resolved. For example, out-of-source MSVC builds are affected. In-source builds are working by accident, because we're adding the include path "<qtbase-build-dir>/src/corelib/global", and <qtbase-build-dir> is <qtbase-source-dir>. Linux/macOS builds are working by accident, because we're adding the include path "<qtbase-source-dir>/src/3rdparty/forkfd". Fix this by explicitly adding the directory where qcryptographichash.cpp resides to INCLUDE_DIRECTORIES. This amends commit 743bb66744e762d10754426e43d42b24cc7bff0f. Fixes: QTBUG-102720 Change-Id: I55fcc186ea4c81134c39023ced3f04458230109b Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Avoid rebuilds when changing sources belonging to bootstraplibJoerg Bornemann2022-04-131-69/+111
| | | | | | | | | | | | | | | | | | | | | | | Whenever a source file is touched that belongs to the bootstrap library, all bootstrap tools are rebuilt. This includes moc. The moc binary however, is a dependency whose invalidation results in a rebuilt of quite some parts of Qt. There's no easy way to turn off this dependency. To mitigate the rebuilds, the bootstrap lib now can use a copy of the corelib sources. That means the bootstrap lib is not rebuilt if its sources are changed. This is basically the situation we had in Qt5. The sources are not updated on reconfiguration. There's a new target 'update_bootstrap_sources' that can be built to update the copied source tree of the bootstrap lib. This new behavior can be controlled with the variable QT_USE_BOOTSTRAP_SOURCE_COPY. It's on by default for developer builds. Fixes: QTBUG-92269 Change-Id: I50234df66590c39594d208424394c7a600dc5606 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove qipaddress from boostrap libFabian Kosmale2022-03-231-1/+0
| | | | | Change-Id: I31a883404f34d0933fe8b316d05b0f28103e48ae Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QTemporary(file|dir) from boostrap libFabian Kosmale2022-03-231-2/+0
| | | | | | Change-Id: I851f0fd8150592784a7b38d3d30d69d8346de112 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Remove QUrl* from boostrap libFabian Kosmale2022-03-231-4/+0
| | | | | | Change-Id: I669ad12588adfd6fb409525616e145120e5a7c76 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Bootstrap: Make compiler warnings fatalKai Köhne2022-03-021-0/+3
| | | | | | | | | Prevent compiler warnings from creeping into the bootstrap library. Pick-to: 6.3 Change-Id: I8054416564c91fee256cad616911dd4ad231d0df Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Jörg Bornemann <joerg.bornemann@qt.io>
* Remove QXml* from bootstrap libJoerg Bornemann2022-02-091-3/+0
| | | | | | | | | Those classes are not used by any bootstrapped tool. Also remove the QT_BOOTSTRAPPED code paths. Change-Id: Ic5a9b153a578fedcba37cd81a62ccf0182a2d34f Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Remove QLine, QPoint, QRect, and QSize from bootstrap libJoerg Bornemann2022-02-091-4/+0
| | | | | | | | | Those classes are not used by any bootstrapped tool. Change-Id: I82fc32e16d044b91ab3a79109ab98a3010df2e2d Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QDom from bootstrap libJoerg Bornemann2022-02-091-2/+0
| | | | | | | | It's not used by any bootstrapped tool. Change-Id: Id6751e80bb34642aeaea1c2bb4f24b480280623d Reviewed-by: Alexey Edelev <alexey.edelev@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QSystemSemaphore from bootstrap libJoerg Bornemann2022-02-091-5/+0
| | | | | | | | This class is used by androidtestrunner, which is not bootstrapped. Change-Id: Ie75b4dd039f773a8ccb58f243bf9f74a5121c3f3 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Remove QSharedMemory from the bootstrap libraryJoerg Bornemann2022-01-271-5/+0
| | | | | | | | | It's not used by any bootstrapped tool anymore. Pick-to: 6.2 6.3 Fixes: QTBUG-100074 Change-Id: I92cf441c200174e73b483cb4f08bab6c3e7d9c09 Reviewed-by: Marc Mutz <marc.mutz@qt.io>
* Remove zlib from bootstrap libraryJoerg Bornemann2021-10-161-26/+0
| | | | | | | | | None of the bootstrapped tools use zlib anymore. Change-Id: I2cd7cb855ed671916a21c23449d9b6c4506f8546 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Avoid to call _qt_internal_set_up_static_runtime_library() twiceLi Xinwei2021-08-031-1/+1
| | | | | | Pick-to: 6.2 Change-Id: I28985470b3e0b88befbbd2d62a027670d7d6c822 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Enable QT_TYPESAFE_FLAGS for bootstrap and QtCoreGiuseppe D'Angelo2021-06-231-0/+1
| | | | | | Change-Id: I5c64a29ffecece9e527f5db78cceb912836153d3 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Skip building debug bootstrap lib for CMake 3.20 and multi-config buildLi Xinwei2021-05-231-0/+5
| | | | | | | | | | | When building qtbase with CMake 3.20, only release tools will be built by default in a multi-config build, so it is possible to skip building debug bootstrap lib. Task-number: QTBUG-88414 Change-Id: I266ac458ae3c89c593656e4ebdc788ae5797b788 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Revert "Include qsimd.cpp in bootstrap build"Thiago Macieira2021-05-011-1/+0
| | | | | | | | | | | | | | | | | | | | | | This reverts commit 9268cb808510beb3f9c50fba273e67e5b560c3e6. That was done in the mistaken assumption that the bootstrap library needs the fast hashing algorithms. It doesn't, since it's only used for tools that need deterministic output anyway. This fixes the build on x86 where the compiler is enabling rdrand by default (Ivy Bridge systems, but also -march=haswell and the GCC 11 -march=x86-64-v3): qsimd.cpp:750:37: error: redefinition of ‘qsizetype qRandomCpu(void*, qsizetype)’ 750 | QT_FUNCTION_TARGET(RDRND) qsizetype qRandomCpu(void *buffer, qsizetype count) noexcept | ^~~~~~~~~~ In file included from qsimd.cpp:44: qsimd_p.h:354:25: note: ‘qsizetype qRandomCpu(void*, qsizetype)’ previously defined here 354 | static inline qsizetype qRandomCpu(void *, qsizetype) noexcept | ^~~~~~~~~~ Change-Id: I755911ae7d0341f49039fffd167afc7540bf0dd6 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* Include qsimd.cpp in bootstrap buildTor Arne Vestbø2021-04-271-0/+1
| | | | | | | | | | QHash, which is included in the bootstrap library, uses qCpuFeatures() as part of the implementation of qHashBits(), when the __ARM_FEATURE_CRYPTO is available, so we need to ensure the definition of that function is also included. Change-Id: I3eeb3685335120a4861c397ab9c82540bcfcd17c Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Introduce zlib find script to work around hardcoded iOS SDKAlexandru Croitor2021-04-191-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Xcode allows building a project targeting either the device or simulator sysroot in one single build dir, but for the sysroot switching to work there should be no linker or compiler flags referencing absolute paths of a specific sysroot. During CMake configuration of a project targeting iOS, all found system libraries will be within one single sysroot, either the device one or the simulator one, whichever one was passed to CMAKE_OSX_SYSROOT. CMake will then generate the Xcode project and pass those absolute paths, which makes sysroot switching within Xcode not work. To avoid that, the CMake documentation recommends passing linker and framework flags of the form '-lfoo' and '-framework bar' instead of absolute paths. Xcode then takes care of setting the correct framework search path. Zlib is one of the libraries found in the iOS sysroot and thus passed as absolute path. To avoid that, create a new FindWrapZLIB find script. The target it creates will pass the absolute path to the library on non Apple platforms and an -lz linker flag on Apple platforms (macOS and iOS). To avoid issues with target global promotion when system PNG package is found, ensure that a found ZLIB::ZLIB target is promoted to global manually in src/gui/configure.cmake. Pick-to: 6.1 Change-Id: I8bd8649be4f680a331ad51925f27cb9d13ac5e5f Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* Move static PCRE2 defines to non-system PCRE2 sectionAlexey Edelev2021-02-011-4/+8
| | | | | | | | | | | Private PCRE2-specific definitions should be only used with the built-in PCRE2 library. Ammends 7c69eb8868b6c79c3c70f3cd7ee6ceb188b0521b Fixes: QTBUG-90556 Change-Id: If47e0b9eaaece290676d6c2b484bb52281aa7c68 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Use system PCRE2 for Bootstrap libraryAlexey Edelev2021-01-251-33/+44
| | | | | | | | | By default, use system PCRE2 for Bootstrap library, if not cross-compiling. Fixes: QTBUG-90556 Change-Id: I7291927565484073cadacec9a381b54b44ebeaec Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove .prev_CMakeLists.txt filesJoerg Bornemann2021-01-121-263/+0
| | | | | | | | | | Those serve no purpose anymore, now that the .pro files are gone. Task-number: QTBUG-88742 Change-Id: I39943327b8c9871785b58e9973e4e7602371793e Reviewed-by: Cristian Adam <cristian.adam@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Remove the qmake project filesJoerg Bornemann2021-01-071-177/+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>