meson: Allow fallback & static build of pcre subproject

Using `allow_fallback: false` on the first check for libpcre
was unnecessary, as `required: false` already disables using
fallbacks. `allow_fallback: false` meant that
`--force-fallback-for` couldn’t work. This commit fixes that.

Also allow the fallback libpcre to be built statically so it
can be linked into GLib.

Helps: #3025
This commit is contained in:
Marius Kintel 2023-06-28 14:38:36 +00:00 committed by Philip Withnall
parent b5d995e6b8
commit dd5683ce64

View File

@ -2050,7 +2050,9 @@ else
endif endif
pcre2_req = '>=10.32' pcre2_req = '>=10.32'
pcre2 = dependency('libpcre2-8', version: pcre2_req, required: false, allow_fallback: false)
# Pick up pcre from the system, or if "--force-fallback-for libpcre2-8" was specified
pcre2 = dependency('libpcre2-8', version: pcre2_req, required: false, default_options: ['default_library=static'])
if not pcre2.found() if not pcre2.found()
if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl' if cc.get_id() == 'msvc' or cc.get_id() == 'clang-cl'
# MSVC: Search for the PCRE2 library by the configuration, which corresponds # MSVC: Search for the PCRE2 library by the configuration, which corresponds
@ -2066,7 +2068,7 @@ endif
# Try again with the fallback # Try again with the fallback
if not pcre2.found() if not pcre2.found()
pcre2 = dependency('libpcre2-8', version: pcre2_req, allow_fallback: true) pcre2 = dependency('libpcre2-8', version: pcre2_req, allow_fallback: true, default_options: ['default_library=static'])
assert(pcre2.type_name() == 'internal') assert(pcre2.type_name() == 'internal')
# static flags are automatically enabled by the subproject if it's built # static flags are automatically enabled by the subproject if it's built
# with default_library=static # with default_library=static