<!-- If your PR fixes issues, please note that here by adding "Fixes
#NNNNNN." for each fixed issue on separate lines. -->
Fixes#38083
<!-- If you are still working on the PR, open it as a Draft:
https://github.blog/2019-02-14-introducing-draft-pull-requests/. -->
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [x] SHA512s are updated for each updated download.
- [ ] ~~The "supports" clause reflects platforms that may be fixed by
this new version.~~
- [ ] ~~Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.~~
- [ ] ~~Any patches that are no longer applied are deleted from the
port's directory.~~
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
All features passed with following triplets:
```
x86-windows
x64-windows
x64-windows-static
```
Usage test passed on `x64-windows`.
<!-- If this PR adds a new port, please uncomment and fill out this
checklist:
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [ ] The name of the port matches an existing name for this component
on https://repology.org/ if possible, and/or is strongly associated with
that component on search engines.
- [ ] Optional dependencies are resolved in exactly one way. For
example, if the component is built with CMake, all `find_package` calls
are REQUIRED, are satisfied by `vcpkg.json`'s declared dependencies, or
disabled with
[CMAKE_DISABLE_FIND_PACKAGE_Xxx](https://cmake.org/cmake/help/latest/variable/CMAKE_DISABLE_FIND_PACKAGE_PackageName.html).
- [ ] The versioning scheme in `vcpkg.json` matches what upstream says.
- [ ] The license declaration in `vcpkg.json` matches what upstream
says.
- [ ] The installed as the "copyright" file matches what upstream says.
- [ ] The source code of the component installed comes from an
authoritative source.
- [ ] The generated "usage text" is accurate. See
[adding-usage](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/examples/adding-usage.md)
for context.
- [ ] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [ ] Only one version is in the new port's versions file.
- [ ] Only one version is added to each modified port's versions file.
END OF NEW PORT CHECKLIST (delete this line) -->
---------
Co-authored-by: Lily Wang <v-lilywang@microsoft.com>
Problem occurs also on x64-linux-dynamic.
```
warning: There should be no absolute paths, such as the following, in an installed package:
/home/XXX/prog/vcpkg/packages/pcre2_x64-linux-dynamic
/home/XXX/prog/vcpkg/installed
/home/XXX/prog/vcpkg/buildtrees/pcre2
/home/XXX/prog/vcpkg/downloads
Absolute paths were found in the following files:
/home/XXX/prog/vcpkg/packages/pcre2_x64-linux-dynamic/bin/pcre2-config
/home/XXX/prog/vcpkg/packages/pcre2_x64-linux-dynamic/debug/bin/pcre2-config
error: Found 1 post-build check problem(s). To submit these ports to curated catalogs, please first correct the portfile: /home/XXX/prog/vcpkg/ports/pcre2/portfile.cmake
```
- [ ] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [X] SHA512s are updated for each updated download.
- ~~[ ] The "supports" clause reflects platforms that may be fixed by
this new version.~~
- ~~[ ] Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file.~~
- ~~[ ] Any patches that are no longer applied are deleted from the
port's directory.~~
- [X] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [X] Only one version is added to each modified port's versions file.
PCRE2 JIT compilation is unsupported on iOS as per
https://codereview.qt-project.org/c/qt/qtbase/+/204514
Since our Qt port uses the separately built `pcre2` port (instead of the
bundled version):
3f966cf6a8/ports/qtbase/portfile.cmake (L315)
...the linked Qt fix doesn't apply to us, so we'll have to disable it
explicitly.
### Background
I ran into this today while debugging a crash of a Qt app built for the
iOS simulator (using vcpkg-built libraries):
<details>
<summary>Crash Log</summary>
```
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Subtype: KERN_PROTECTION_FAILURE at 0x000000010dbb8008
Exception Codes: 0x0000000000000002, 0x000000010dbb8008
VM Region Info: 0x10dbb8008 is in 0x10dbb8000-0x10dbc8000; bytes after start: 8 bytes before end: 65527
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
ColorSync 10dbb0000-10dbb8000 [ 32K] r--/r-- SM=PRV
---> VM_ALLOCATE 10dbb8000-10dbc8000 [ 64K] rwx/rwx SM=PRV
GAP OF 0x38000 BYTES
MALLOC_TINY 10dc00000-10dd00000 [ 1024K] rw-/rwx SM=PRV
Termination Reason: SIGNAL 10 Bus error: 10
Terminating Process: exc handler [98229]
Triggered by Thread: 0
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 Mixxx 0x107b8ec24 sljit_malloc_exec + 236
1 Mixxx 0x107b8ea80 pcre2_jit_compile_16 + 160
2 Mixxx 0x104ec52d4 QRegularExpressionPrivate::compilePattern() + 252
3 Mixxx 0x104ec6058 QRegularExpression::isValid() const + 24
4 Mixxx 0x104e30194 QtPrivate::contains(QStringView, QString const*, QRegularExpression const&, QRegularExpressionMatch*) + 52
5 Mixxx 0x10599a8ec QIOSScreen::QIOSScreen(UIScreen*) + 1060
6 Mixxx 0x105998850 QIOSIntegration::initialize() + 272
7 Mixxx 0x104d8165c QCoreApplicationPrivate::init() + 1640
8 Mixxx 0x1076c80e0 QGuiApplicationPrivate::init() + 60
9 Mixxx 0x105d9d20c QApplicationPrivate::init() + 24
10 Mixxx 0x105d9d1e0 QApplication::QApplication(int&, char**, int) + 140
```
</details>
This fixes the problem.
### Checklist
- [x] Changes comply with the [maintainer
guide](https://github.com/microsoft/vcpkg-docs/blob/main/vcpkg/contributing/maintainer-guide.md).
- [x] SHA512s are updated for each updated download (not applicable).
- [x] The "supports" clause reflects platforms that may be fixed by this
new version.
- [x] Any fixed [CI
baseline](https://github.com/microsoft/vcpkg/blob/master/scripts/ci.baseline.txt)
entries are removed from that file (not applicable).
- [x] Any patches that are no longer applied are deleted from the port's
directory (not applicable).
- [x] The version database is fixed by rerunning `./vcpkg x-add-version
--all` and committing the result.
- [x] Only one version is added to each modified port's versions file.
* Remove dependencies to bzip2 and zlib.
They are used only by pcre2grep which we don't build in the port.
* Fix CMake integration.
The patch has been submitted upstream in PCRE2Project/pcre2#260.
* Add a usage file and use `vcpkg_install_copyright`.
* Bring back patching pcre2.h.
* Bump port version.
* Update version database.
* Fix CRLF damage.
* Fix target capitalization.
* Update version database.
---------
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
* [pcre2] Explicitly control dependencies
* version
* Fix Windows static
* version
* Fix windows static
* version
* Remove patch
* version
Co-authored-by: Billy O'Neal <bion@microsoft.com>
* Update to 10.40
* Drop '-static' suffix for MSVC
The suffix breaks pc files. Renaming allowed by maintainer guidelines,
to facilitate downstream usage.
* Update versions
* Check if files exists before call vcpkg_replace_string.
* Update per comments.
Only guard debug.
* Update ports/pcre2/portfile.cmake
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
* Bump port-version.
Co-authored-by: GLUD Lars <lars.glud@leica-geosystems.com>
Co-authored-by: Jack·Boos·Yu <47264268+JackBoosY@users.noreply.github.com>
Co-authored-by: Billy Robert O'Neal III <bion@microsoft.com>
- New upstream version 10.37
- Drop patches (fixed upstream):
pcre2-10.35_add_check_for_Intel_CET.patch
pcre2-10.35_fix_postfix_for_debug_Windows_builds.patch
pcre2-10.35_fix-space.patch
- Switch from CONTROL to vcpkg.json
.\vcpkg format-manifest .\ports\pcre2\CONTROL