summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/pcre2
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Don't use AUTOMOC for third party librariesAlexandru Croitor2022-07-251-0/+1
| | | | | | | | | | | None of them have Qt sources that need moc-ing. It's also needed to circumvent an AUTOMOC + PCH issue when AUTOMOC is enabled for a target that does not have any C++ sources, but the target links to another target that does have C++ sources. Pick-to: 6.4 Change-Id: Ib1b2aa766089f093117c1ba34e156dfe8b0957e6 Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
* Upgrade PCRE2 to 10.40Giuseppe D'Angelo2022-04-2147-9258/+13827
| | | | | | | | | | New upstream release. [ChangeLog][Third-Party Code] PCRE2 has been updated to 10.40. Pick-to: 5.15 6.2 6.3 Change-Id: Ice0516604259ad9fd36fe2708aa0239aafe381ca Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* PCRE2: upgrade to 10.39Giuseppe D'Angelo2021-11-036-3170/+3284
| | | | | | | | | | New upstream release. [ChangeLog][Third-Party Code] PCRE2 has been updated to version 10.39. Change-Id: Ic8db3035bad41a8cdb0d735e593e71124b5df9d2 Pick-to: 5.15 6.2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Update PCRE2 to 10.38Giuseppe D'Angelo2021-10-0226-991/+1366
| | | | | | | | [ChangeLog][Third-Party Code] PCRE2 has been updated to version 10.38. Change-Id: Ib6ab544790747a94a00b8eb516314ff3c57e4c79 Pick-to: 6.2 5.15 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* PCRE2: upgrade to 10.37Giuseppe D'Angelo2021-05-3114-179/+973
| | | | | | | | | New upstream release. Change-Id: I3a7e6c3d6706c940c0a279e4b63e1bfd96cc242c Pick-to: 6.1 5.15 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Granularily disable PCRE2 JIT on macOS ARMTor Arne Vestbø2021-05-191-4/+3
| | | | | | | | | | | | | | 2f8df4d1a87df9dd67913b016171dac20839d16e disabled the PCRE2 JIT on macOS for ARM, but did so based on the build system architecture configure test. When doing a universal build these configure tests are based on the primary architecture (x86_64 in our case), which means we ended up still enabling the JIT. We work around it by passing the PCRE2_DISABLE_JIT define only when building the arm64 slice. Change-Id: I60df82acb57030ccef8b117a40209eb107b1d5bd Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Remove .prev_CMakeLists.txt filesJoerg Bornemann2021-01-121-81/+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-072-62/+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>
* PCRE: update to 10.36Giuseppe D'Angelo2020-12-0734-13242/+4166
| | | | | | | | | | | | Dropped the RTEMS patch (upstream now uses posix_madvise). Drop support for the TILE architecture (dropped by upstream). [ChangeLog][Third-Party Code] PCRE2 has been updated to version 10.36. Pick-to: 6.0 5.15 Change-Id: Idb4467bef0ff520605b8b5d9188b9d67d8e4d0f2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix included license text for PCRE2 - Stack-less Just-In-Time CompilerKai Koehne2020-10-251-1/+1
| | | | | | | | | | [ChangeLog][Third-Party Code] Changed license text of "PCRE2 - Stack-less Just-In-Time Compiler" component. The documentation (incorrectly) included the generic PCRE2 license so far. Pick-to: 5.15 5.12 Change-Id: I7b36a640ba83fb6087fe28d77f9435af13f8c84d Reviewed-by: Paul Wicking <paul.wicking@qt.io>
* CMake: Regenerate projects to use new qt_internal_ APIAlexandru Croitor2020-09-232-12/+12
| | | | | | | | | | | Modify special case locations to use the new API as well. Clean up some stale .prev files that are not needed anymore. Clean up some project files that are not used anymore. Task-number: QTBUG-86815 Change-Id: I9947da921f98686023c6bb053dfcc101851276b5 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
* Disable PCRE2 JIT on macOS ARM64Tor Arne Vestbø2020-07-103-2/+13
| | | | | | | | | | | | It's already disabled for many other ARM platforms, and upstream support for Apple Silicon is still pending, so we disable it for now. See: https://bugs.exim.org/show_bug.cgi?id=2618 Fixes: QTBUG-85528 Pick-to: 5.15 Pick-to: 5.12 Change-Id: I42b6e5efaa07c9b832cd05a47436eb86a214e9bf Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* CMake: Fix pcre2 compilation with intelcet part 2Alexandru Croitor2020-06-252-0/+80
| | | | | | | | | | | | | I somehow forgot that we build the pcre2 sources not only as part of the bootstrap library and qmake, but also as separate library as well. Apply the flags to the bundled library. Amends 976fa5134aea52741df7b25a196fa36251dc932f Amends fa98adbd04de9d44ce921436b92589a41f285dcd Change-Id: Ia1db3a8bd731c7e3ee4d7109be8e2ef98c594070 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Remove winrtOliver Wolff2020-06-062-2/+2
| | | | | | | | | 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>
* CMake: Regenerate tools and 3rd partyAlexandru Croitor2020-05-291-0/+3
| | | | | Change-Id: I38e065cddc954e8594a5dce823c3bb5385a8a1e8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Actually apply the shadow stack Intel CET flagsGiuseppe D'Angelo2020-05-281-2/+2
| | | | | | | | | | C&P mistake dropped $$ from qmake variables, my fault. Will squash manually in 5.15 to avoid introducing a bug there. Amends fa98adbd04. Change-Id: I3ce33dba16f512cd20c8d3c6adc4c1a09506c1ea Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix compilation of PCRE2 under Intel CETGiuseppe D'Angelo2020-05-271-0/+5
| | | | | | | | | | | | 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>
* CMake: Generate information about 3rdparty libs in module .pri filesJoerg Bornemann2020-05-191-0/+1
| | | | | | | | | | | | | For modules that are not yet ported to CMake and that use QMAKE_USE += libfoo we need to provide the information about libfoo in the qt_lib_XXX.pri files. Also, we now generate qt_ext_XXX.pri files for bundled 3rdparty libs. Task-number: QTBUG-75666 Change-Id: I9e4b057a197554ecb37c294c0bf09e2a2b3aa053 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* Update PCRE2 to 10.35Giuseppe D'Angelo2020-05-1142-3270/+4576
| | | | | | | | | [ChangeLog][Third-Party Code] PCRE2 has been update to version 10.35. Change-Id: I9793bdd3d25b88eea0d4479f544b297d065b5fb6 Pick-To: 5.15 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Include QRegularExpression in the bootstrap libraryLars Knoll2020-04-133-47/+48
| | | | | | | | This allows us to use regular expressions in bootstrapped tools such as moc and tracegen. Change-Id: I4310dd15bf26651aac6ab30c884e025ca06b3099 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* cmake: Regenerate projectsAlexandru Croitor2020-03-161-1/+1
| | | | | Change-Id: I0cd4f34b0df0227789805f30f474ff6aa275078f Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* cmake: Remove APPLE prefix from platform namesTor Arne Vestbø2020-03-161-1/+1
| | | | | | | None of the other platforms have it. Change-Id: Ib448c2c03ba03f711b507ef391977c0e6aa7c192 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Allow building bundled 3rd party libraries in qtbaseAlexandru Croitor2020-02-251-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A few things are needed to accomplish that: - the python scripts do not ignore certain system_foo features anymore (it is a hardcoded list for now just to be safe) - configurejson2cmake now outputs qt_find_package(WrapSystemFoo) calls for bundled libraries (see below) - the harfbuzz .pro file is modified to accommodate pro2cmake not being able to correctly parse some conditional scopes - the freetype .pro file is modified to make sure linking of the library succeeds without duplicate symbol errors, which qmake doesn't encounter due to magical exclusion of cpp files that are included in other cpp files (presumably for include moc_foo.cpp support) - feature evaluation for Core, Gui, Network now happens in the qtbase/src directory, so that bundled libraries can be conditionally built - for each bundled library there are now two FindWrap scripts: - FindWrapSystemFoo which finds an installed library in the system - FindWrapFoo which either uses the system installed library or the built bundled one depending on a condition - projects that intend to use bundled libraries need to link against WrapFoo::WrapFoo instead of WrapSystemFoo::WrapSystemFoo targets (this is handled by pro2cmake). Unfortunately manually added qt_find_package(WrapFoo) calls might still be needed as is the case for WrapFreetype and others. - a new cmake/QtFindWrapHelper.cmake file is added that provides a macro to simplify creation of WrapFoo targets that link against a bundled or system library. The implementation is fairly ugly due to CMake macro constraints, but it was deemed better than copy-pasting a bunch of almost identical code across all FindWrapFoo.cmake files. - a qtzlib header-only module is now created when using bundled zlib, to provide public syncqt created headers for consumers that need them. These are projects that have 'QT_PRIVATE += zlib-private' in their .pro files (e.g. qtimageformats, qtlocation, qt3d, etc.) This is unfortunately needed due to QtNetwork using zlib types in its private C++ API. The change includes support for building the following bundled libraries: - zlib - libpng - libjpeg - Freetype - Harfbuzz-ng - PCRE2 The following 3rd party libraries are still using an old implementation within the CMake build system, and should be migrated to the new one in the near future: - double-conversion - Old harfbuzz The are a few libraries that are not yet ported: - system-sqlite - systemxcb - maybe others Among other things, this change allows building qtbase on Windows without requiring vcpkg. Task-number: QTBUG-82167 Change-Id: I35ecea0d832f66c1943c82e618de4a51440971a5 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Leander Beernaert <leander.beernaert@qt.io>
* Update PCRE2 to 10.34Giuseppe D'Angelo2019-12-2539-4632/+7346
| | | | | | | | Also adjust the import script to handle new files. The RTEMS patch is not upstreamed and had to be-reapplied. Change-Id: Ie3102d56a25674b50c67edd3cce25ffe7040a215 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* rtems: Fix pcre2 build (madvise undefined)Mikhail Svetkin2019-04-302-1/+29
| | | | | | | | | | | | | | | | | | | | | | | RTEMS does not have madvise. We can use only posix_madvise Change-Id: Ia18b7cd2d7f9db84331f7e2350d060b9e85b30c8 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Upgrade PCRE2 to 10.33Giuseppe D'Angelo2019-05-0235-4462/+7208
| | | | | | | Adjust also the attribution file. Change-Id: I27bdbcf07bdca51bb5ae169ca50dd63502f5468f Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Upgrade PCRE2 to 10.32Giuseppe D'Angelo2018-10-1835-4067/+4892
| | | | | | | [ChangeLog][Third-Party Code] PCRE2 was updated to version 10.32. Change-Id: Id3bf7df0003f626cd1135d0508a5a489ff02f1e5 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
* Document SLJIT part of pcre2Kai Koehne2018-09-062-0/+41
| | | | | | | | | | src/sljit features the BSD-2-Clause license, not the BSD-3-Clause one. [ChangeLog][Third-Party Components] Added documentation for the SLJIT part of pcre2, which is available under the BSD-2-Clause license. Change-Id: Ie1e981ef6eab2c8d2960919b66ac85b29450f919 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* PCRE2: upgrade to upstream version 10.31Giuseppe D'Angelo2018-07-2336-3126/+4863
| | | | | | | | [ChangeLog][Third-Party Code] PCRE2 was updated to version 10.31. Task-number: QTBUG-69271 Change-Id: I0be7c280029f781aa20add8f87868d59e3fa53da Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* pcre2: Disable JIT on windows on arm/arm64Martin Storsjö2018-01-231-0/+2
| | | | | | | | | | | | | | sljit, the JIT in pcre2, doesn't quite fully work on windows on arm yet (although the subset of functionality used by pcre2 might mostly work). On arm64, it fails to compile (although working around that failure is pretty easy), when using clang in MinGW mode (where __GNUC__ is defined, making the JIT auto-enabled). Disable it in these configurations until it has been fully tested and fixed upstream first. Change-Id: Ie9681cb7cdd1960586ba194c71e057eb918cb419 Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* Merge remote-tracking branch 'origin/5.9' into 5.10Liang Qi2017-09-063-834/+1
|\ | | | | | | | | | | | | | | | | | | Conflicts: examples/opengl/qopenglwidget/main.cpp src/3rdparty/pcre2/src/pcre2_printint.c src/plugins/platforms/cocoa/qnsview.mm src/widgets/widgets/qcombobox.cpp Change-Id: I37ced9da1e8056f95851568bcc52cd5dc34f56af
| * PCRE2: remove pcre2_printint.c from the imported sourcesGiuseppe D'Angelo2017-09-052-833/+0
| | | | | | | | | | | | | | | | | | | | Follow up of fc37e0369929e265db4fa3b9fa75164d63d66d1e: while the file is #included from pcre2_compile.c, it's never actually compiled (seems to be about a debugging aid for developing PCRE2). So it's safe to get rid of it. Change-Id: I0affaad730e8c5678d3431e47d5fee0dbedc0e78 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * PCRE2: disable JIT on all UIKit platformsGiuseppe D'Angelo2017-09-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | Both iOS and tvOS need to have JIT disabled, so use the uikit qmake scope for that. This was already done for PCRE 1, but the corresponding change was lost for PCRE 2 (probably due to a bad merge). Change-Id: Iac7997880c13b34ced46c63b748980c6fb700a0f Task-number: QTBUG-62993 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| * PCRE2: remove a source file from the .proGiuseppe D'Angelo2017-09-011-1/+0
| | | | | | | | | | | | | | | | | | | | pcre2_printint.c does not need to be compliled as a standalone source file, as it's #included from pcre2_compile.c. Apparently qmake does not detect this in all cases, and sometimes tries to compile pcre2_printint.c, resulting in compile errors. Change-Id: If494e5853b52ff1387bfb24f3847b73edcc837b7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | PCRE2: upgrade to version 10.30Giuseppe D'Angelo2017-08-2350-17643/+20219
|/ | | | | | | | | Minimal adjustments to config.h are necessary. [ChangeLog][Third-Party Code] PCRE2 has been updated to version 10.30. Change-Id: Iaca6a5ceffe4f5029212411eca8e2965ca7d9410 Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Update attribution file for changed command line paramHeiko Becker2017-04-071-1/+1
| | | | | | | | | 47c4d1378cc1eaffbc19c753726b36d2ff0decc0 changed the configuration command line parameter back to pcre, omitting the "2" which has been added after porting to PCRE2. Change-Id: Iadbd57725ab706cb4bae89c2decf8259bcad46b5 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
* pcre2: Replace LGPL21 with LGPL license headerKai Koehne2017-02-281-13/+19
| | | | | | | | Also use canonical contact url. Change-Id: I61bf0990698a7021f1240deaf3eef2aff8f90a7e Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Document new PCRE2 libraryKai Koehne2017-02-011-0/+17
| | | | | | | | [ChangeLog][Third-Party Code] The PCRE sources that are bundled with Qt got updated to version 10.22. Change-Id: Ib334fb4e9766035fd120ef4ab3a249322adba8eb Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
* PCRE2: port QRegularExpression to PCRE2Giuseppe D'Angelo2016-12-122-1/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PCRE1 is going towards EOL. PCRE2 is the way forward in terms of new features, performance, and security improvements. The APIs that QRegularExpression uses are similar so the required modifications aren't extensive. The biggest difference comes to JIT-compiling of the pattern. In PCRE1, JIT-compiling did not modify the processed PCRE pattern, but returned a new chunk of data. This allowed multiple threads to keep matching using the same processed data and NULL for the JIT data, until a thread JIT-compiled and atomically set the shared JIT data to the results of the compilation. In PCRE2, JIT-compiling _modifies_ the processed PCRE pattern in a way that it's thread unsafe [1]; the results of JIT-compilation are stored somewhere inside the processed pattern. This means the above approach cannot work -- a thread may be matching while another one JIT-compiles, causing a data race. While waiting for better workarounds from upstream, employ a read/write mutex to protect the matching from JIT-compilation. [1] https://lists.exim.org/lurker/message/20160104.105831.3cb25b39.en.html [ChangeLog][General] QRegularExpression now requires the PCRE2 library, at least version 10.20. Support for the PCRE1 library has been dropped. A copy of PCRE2 is shipped with Qt and will automatically be used on those platforms which lack it. Change-Id: I9fe11104230a096796df2d0bdcea861acf769f57 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* PCRE2: import of PCRE2 10.22Giuseppe D'Angelo2016-12-1155-0/+85150
| | | | | Change-Id: Ib2c6210568e8d2f313c5cfcdfdf0a2f09ee356db Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* PCRE2: create a config.hGiuseppe D'Angelo2016-12-111-0/+52
| | | | | Change-Id: I9417a29d14def4b5ac4be82ba99023bff7393102 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* PCRE2: add import script from tarballGiuseppe D'Angelo2016-12-111-0/+134
Change-Id: I09e2622ca2c78b290ecba97ae9fa7274bb7f67b6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>