summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/pcre2
Commit message (Collapse)AuthorAgeFilesLines
* 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>