[pcre] Update to 8.45 (#18550)

- New upstream version 8.45
  This is the final release of PCRE1
- Update patches:
  export-cmake-targets.patch
  pcre-8.45_suppress_cmake_and_compiler_warnings-errors.patch
- Add patch:
  pcre-8.45_fix_postfix_for_debug_Windows_builds.patch
- Remove deprecated SYSTEM_LIBRARIES from vcpkg_fixup_pkgconfig()
- Switch from CONTROL to vcpkg.json
    .\vcpkg format-manifest .\ports\pcre\CONTROL
This commit is contained in:
Wolfgang Stöggl 2021-06-24 22:20:52 +02:00 committed by GitHub
parent 0b54c4604e
commit 9f20dbd9a0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 220 additions and 98 deletions

View File

@ -1,5 +0,0 @@
Source: pcre
Version: 8.44
Port-Version: 8
Homepage: https://www.pcre.org/
Description: Perl Compatible Regular Expressions

View File

@ -1,8 +1,6 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt 2021-06-14 10:33:38.000000000 +0200
index 252de6e..bcef3ae 100644 +++ b/CMakeLists.txt 2021-06-18 18:08:24.162881000 +0200
--- a/CMakeLists.txt @@ -934,10 +934,19 @@
+++ b/CMakeLists.txt
@@ -885,10 +885,19 @@ ENDIF(PCRE_BUILD_TESTS)
# Installation # Installation
SET(CMAKE_INSTALL_ALWAYS 1) SET(CMAKE_INSTALL_ALWAYS 1)
@ -11,8 +9,8 @@ index 252de6e..bcef3ae 100644
+ INSTALL(TARGETS ${target} + INSTALL(TARGETS ${target}
+ EXPORT pcre-targets + EXPORT pcre-targets
RUNTIME DESTINATION bin RUNTIME DESTINATION bin
LIBRARY DESTINATION lib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION lib) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ target_include_directories(${target} PUBLIC $<INSTALL_INTERFACE:include>) + target_include_directories(${target} PUBLIC $<INSTALL_INTERFACE:include>)
+endforeach() +endforeach()
+ +

View File

@ -1,18 +0,0 @@
--- a/CMakeLists.txt 2017-01-23 16:33:46.000000000 +0100
+++ b/CMakeLists.txt 2020-03-08 21:12:00.225068400 +0100
@@ -74,7 +74,6 @@
# CMP0026 to avoid warnings for the use of LOCATION in GET_TARGET_PROPERTY.
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
-CMAKE_POLICY(SET CMP0026 OLD)
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # for FindReadline.cmake
@@ -191,6 +190,7 @@
ENDIF(MINGW)
IF(MSVC)
+ add_definitions(/wd4703 /wd4146 /wd4308)
OPTION(PCRE_STATIC_RUNTIME
"ON=Compile against the static runtime (/MT)."
OFF)

View File

@ -0,0 +1,161 @@
Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt (revision 1767)
+++ CMakeLists.txt (working copy)
@@ -436,6 +436,12 @@
@ONLY)
ENDIF(PCRE_BUILD_PCRECPP)
+# Make sure to not link debug libs
+# against release libs and vice versa
+IF(WIN32)
+ SET(CMAKE_DEBUG_POSTFIX "d")
+ENDIF(WIN32)
+
# Generate pkg-config files
SET(PACKAGE_VERSION "${PCRE_MAJOR}.${PCRE_MINOR}")
SET(prefix "${CMAKE_INSTALL_PREFIX}")
@@ -442,6 +448,9 @@
SET(exec_prefix "\${prefix}")
SET(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}")
SET(includedir "\${prefix}/include")
+IF(WIN32 AND (CMAKE_BUILD_TYPE MATCHES Debug))
+ SET(LIB_POSTFIX ${CMAKE_DEBUG_POSTFIX})
+ENDIF()
IF(NOT BUILD_SHARED_LIBS)
SET(PCRE_STATIC_CFLAG "-DPCRE_STATIC")
ENDIF(NOT BUILD_SHARED_LIBS)
@@ -659,11 +668,6 @@
ENDIF(MSVC)
SET(CMAKE_INCLUDE_CURRENT_DIR 1)
-# needed to make sure to not link debug libs
-# against release libs and vice versa
-IF(WIN32)
- SET(CMAKE_DEBUG_POSTFIX "d")
-ENDIF(WIN32)
SET(targets)
Index: configure.ac
===================================================================
--- configure.ac (revision 1767)
+++ configure.ac (working copy)
@@ -1044,6 +1044,9 @@
AM_CONDITIONAL([WITH_GCOV],[test "x$enable_coverage" = "xyes"])
# Produce these files, in addition to config.h.
+# LIB_POSTFIX is used by CMakeLists.txt for Windows debug builds.
+# Pass empty LIB_POSTFIX to *.pc files and pcre-config here.
+AC_SUBST(LIB_POSTFIX)
AC_CONFIG_FILES(
Makefile
libpcre.pc
Index: libpcre.pc.in
===================================================================
--- libpcre.pc.in (revision 1767)
+++ libpcre.pc.in (working copy)
@@ -8,6 +8,6 @@
Name: libpcre
Description: PCRE - Perl compatible regular expressions C library with 8 bit character support
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lpcre
+Libs: -L${libdir} -lpcre@LIB_POSTFIX@
Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
Cflags: -I${includedir} @PCRE_STATIC_CFLAG@
Index: libpcre16.pc.in
===================================================================
--- libpcre16.pc.in (revision 1767)
+++ libpcre16.pc.in (working copy)
@@ -8,6 +8,6 @@
Name: libpcre16
Description: PCRE - Perl compatible regular expressions C library with 16 bit character support
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lpcre16
+Libs: -L${libdir} -lpcre16@LIB_POSTFIX@
Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
Cflags: -I${includedir} @PCRE_STATIC_CFLAG@
Index: libpcre32.pc.in
===================================================================
--- libpcre32.pc.in (revision 1767)
+++ libpcre32.pc.in (working copy)
@@ -8,6 +8,6 @@
Name: libpcre32
Description: PCRE - Perl compatible regular expressions C library with 32 bit character support
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lpcre32
+Libs: -L${libdir} -lpcre32@LIB_POSTFIX@
Libs.private: @PTHREAD_CFLAGS@ @PTHREAD_LIBS@
Cflags: -I${includedir} @PCRE_STATIC_CFLAG@
Index: libpcrecpp.pc.in
===================================================================
--- libpcrecpp.pc.in (revision 1767)
+++ libpcrecpp.pc.in (working copy)
@@ -8,5 +8,5 @@
Name: libpcrecpp
Description: PCRECPP - C++ wrapper for PCRE
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lpcre -lpcrecpp
+Libs: -L${libdir} -lpcre@LIB_POSTFIX@ -lpcrecpp@LIB_POSTFIX@
Cflags: -I${includedir} @PCRE_STATIC_CFLAG@
Index: libpcreposix.pc.in
===================================================================
--- libpcreposix.pc.in (revision 1767)
+++ libpcreposix.pc.in (working copy)
@@ -8,6 +8,6 @@
Name: libpcreposix
Description: PCREPosix - Posix compatible interface to libpcre
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -lpcreposix
+Libs: -L${libdir} -lpcreposix@LIB_POSTFIX@
Cflags: -I${includedir} @PCRE_STATIC_CFLAG@
Requires.private: libpcre
Index: pcre-config.in
===================================================================
--- pcre-config.in (revision 1767)
+++ pcre-config.in (working copy)
@@ -91,7 +91,7 @@
;;
--libs-posix)
if test @enable_pcre8@ = yes ; then
- echo $libS$libR -lpcreposix -lpcre
+ echo $libS$libR -lpcreposix@LIB_POSTFIX@ -lpcre@LIB_POSTFIX@
else
echo "${usage}" 1>&2
fi
@@ -98,7 +98,7 @@
;;
--libs)
if test @enable_pcre8@ = yes ; then
- echo $libS$libR -lpcre
+ echo $libS$libR -lpcre@LIB_POSTFIX@
else
echo "${usage}" 1>&2
fi
@@ -105,7 +105,7 @@
;;
--libs16)
if test @enable_pcre16@ = yes ; then
- echo $libS$libR -lpcre16
+ echo $libS$libR -lpcre16@LIB_POSTFIX@
else
echo "${usage}" 1>&2
fi
@@ -112,7 +112,7 @@
;;
--libs32)
if test @enable_pcre32@ = yes ; then
- echo $libS$libR -lpcre32
+ echo $libS$libR -lpcre32@LIB_POSTFIX@
else
echo "${usage}" 1>&2
fi
@@ -119,7 +119,7 @@
;;
--libs-cpp)
if test @enable_cpp@ = yes ; then
- echo $libS$libR -lpcrecpp -lpcre
+ echo $libS$libR -lpcrecpp@LIB_POSTFIX@ -lpcre@LIB_POSTFIX@
else
echo "${usage}" 1>&2
fi

View File

@ -0,0 +1,18 @@
--- a/CMakeLists.txt 2021-06-14 10:33:38.000000000 +0200
+++ b/CMakeLists.txt 2021-06-18 17:59:59.155148900 +0200
@@ -77,7 +77,6 @@
# CMP0026 to avoid warnings for the use of LOCATION in GET_TARGET_PROPERTY.
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
-CMAKE_POLICY(SET CMP0026 OLD)
# For FindReadline.cmake. This was changed to allow setting CMAKE_MODULE_PATH
# on the command line.
@@ -199,6 +198,7 @@
ENDIF(MINGW)
IF(MSVC)
+ add_definitions(/wd4703 /wd4146 /wd4308)
OPTION(PCRE_STATIC_RUNTIME
"ON=Compile against the static runtime (/MT)."
OFF)

View File

@ -1,10 +1,12 @@
set(PCRE_VERSION 8.44) set(PCRE_VERSION 8.45)
set(EXPECTED_SHA adddec1236b25ff1c90e73835c2ba25d60a5839cbde2d6be7838a8ec099f7443dede931dc39002943243e21afea572eda71ee8739058e72235a192e4324398f0) set(EXPECTED_SHA 71f246c0abbf356222933ad1604cab87a1a2a3cd8054a0b9d6deb25e0735ce9f40f923d14cbd21f32fdac7283794270afcb0f221ad24662ac35934fcb73675cd)
set(PATCHES set(PATCHES
# Fix CMake Deprecation Warning concerning OLD behavior for policy CMP0026 # Fix CMake Deprecation Warning concerning OLD behavior for policy CMP0026
# Suppress MSVC compiler warnings C4703, C4146, C4308, which fixes errors # Suppress MSVC compiler warnings C4703, C4146, C4308, which fixes errors
# under x64-uwp and arm-uwp # under x64-uwp and arm-uwp
pcre-8.44_suppress_cmake_and_compiler_warnings-errors.patch pcre-8.45_suppress_cmake_and_compiler_warnings-errors.patch
# Modified for 8.45 from https://bugs.exim.org/show_bug.cgi?id=2600
pcre-8.45_fix_postfix_for_debug_Windows_builds.patch
export-cmake-targets.patch) export-cmake-targets.patch)
vcpkg_download_distfile(ARCHIVE vcpkg_download_distfile(ARCHIVE
@ -34,19 +36,20 @@ endif()
vcpkg_configure_cmake( vcpkg_configure_cmake(
SOURCE_PATH ${SOURCE_PATH} SOURCE_PATH ${SOURCE_PATH}
PREFER_NINJA PREFER_NINJA
OPTIONS -DPCRE_BUILD_TESTS=NO OPTIONS
-DPCRE_BUILD_PCREGREP=NO -DPCRE_BUILD_TESTS=NO
-DPCRE_BUILD_PCRE32=YES -DPCRE_BUILD_PCREGREP=NO
-DPCRE_BUILD_PCRE16=YES -DPCRE_BUILD_PCRE32=YES
-DPCRE_BUILD_PCRE8=YES -DPCRE_BUILD_PCRE16=YES
-DPCRE_SUPPORT_JIT=YES -DPCRE_BUILD_PCRE8=YES
-DPCRE_SUPPORT_UTF=YES -DPCRE_SUPPORT_JIT=YES
-DPCRE_SUPPORT_UNICODE_PROPERTIES=YES -DPCRE_SUPPORT_UTF=YES
# optional dependencies for PCREGREP -DPCRE_SUPPORT_UNICODE_PROPERTIES=YES
-DPCRE_SUPPORT_LIBBZ2=OFF # optional dependencies for PCREGREP
-DPCRE_SUPPORT_LIBZ=OFF -DPCRE_SUPPORT_LIBBZ2=OFF
-DPCRE_SUPPORT_LIBEDIT=OFF -DPCRE_SUPPORT_LIBZ=OFF
-DPCRE_SUPPORT_LIBREADLINE=OFF -DPCRE_SUPPORT_LIBEDIT=OFF
-DPCRE_SUPPORT_LIBREADLINE=OFF
# OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2 # OPTIONS -DUSE_THIS_IN_ALL_BUILDS=1 -DUSE_THIS_TOO=2
# OPTIONS_RELEASE -DOPTIMIZE=1 # OPTIONS_RELEASE -DOPTIMIZE=1
# OPTIONS_DEBUG -DDEBUGGABLE=1 # OPTIONS_DEBUG -DDEBUGGABLE=1
@ -66,56 +69,7 @@ foreach(FILE ${CURRENT_PACKAGES_DIR}/include/pcre.h ${CURRENT_PACKAGES_DIR}/incl
file(WRITE ${FILE} "${PCRE_H}") file(WRITE ${FILE} "${PCRE_H}")
endforeach() endforeach()
# Create pkgconfig files vcpkg_fixup_pkgconfig()
set(PACKAGE_VERSION ${PCRE_VERSION})
set(prefix "${CURRENT_INSTALLED_DIR}")
set(exec_prefix "\${prefix}")
set(libdir "\${prefix}/lib")
set(includedir "\${prefix}/include")
if(VCPKG_TARGET_IS_LINUX)
# Used here in .pc.in files: Libs.private: @PTHREAD_CFLAGS@
set(PTHREAD_CFLAGS "-pthread")
endif()
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
configure_file("${SOURCE_PATH}/libpcre.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpcre.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcre16.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpcre16.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcre32.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpcre32.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcrecpp.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpcrecpp.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcreposix.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libpcreposix.pc" @ONLY)
endif()
# debug
set(prefix "${CURRENT_INSTALLED_DIR}/debug")
set(exec_prefix "\${prefix}")
set(libdir "\${prefix}/lib")
set(includedir "\${prefix}/../include")
if(NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
configure_file("${SOURCE_PATH}/libpcre.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcre.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcre16.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcre16.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcre32.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcre32.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcrecpp.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcrecpp.pc" @ONLY)
configure_file("${SOURCE_PATH}/libpcreposix.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcreposix.pc" @ONLY)
if (VCPKG_TARGET_IS_WINDOWS)
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcre.pc
"-lpcre" "-lpcred"
)
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcre16.pc
"-lpcre16" "-lpcre16d"
)
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcre32.pc
"-lpcre32" "-lpcre32d"
)
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcrecpp.pc
"-lpcre -lpcrecpp" "-lpcred -lpcrecppd"
)
vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libpcreposix.pc
"-lpcreposix" "-lpcreposixd"
)
endif()
endif()
vcpkg_fixup_pkgconfig(SYSTEM_LIBRARIES pthread)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
@ -123,6 +77,9 @@ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/man) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/man)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/man) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/man)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc) file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/share/doc)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
vcpkg_copy_pdbs() vcpkg_copy_pdbs()
configure_file(${CMAKE_CURRENT_LIST_DIR}/unofficial-pcre-config.cmake ${CURRENT_PACKAGES_DIR}/share/unofficial-pcre/unofficial-pcre-config.cmake @ONLY) configure_file(${CMAKE_CURRENT_LIST_DIR}/unofficial-pcre-config.cmake ${CURRENT_PACKAGES_DIR}/share/unofficial-pcre/unofficial-pcre-config.cmake @ONLY)

6
ports/pcre/vcpkg.json Normal file
View File

@ -0,0 +1,6 @@
{
"name": "pcre",
"version": "8.45",
"description": "Perl Compatible Regular Expressions",
"homepage": "https://www.pcre.org/"
}

View File

@ -4761,8 +4761,8 @@
"port-version": 4 "port-version": 4
}, },
"pcre": { "pcre": {
"baseline": "8.44", "baseline": "8.45",
"port-version": 8 "port-version": 0
}, },
"pcre2": { "pcre2": {
"baseline": "10.37", "baseline": "10.37",

View File

@ -1,5 +1,10 @@
{ {
"versions": [ "versions": [
{
"git-tree": "665bab8c2bf878815782cff93dfff5720316ab88",
"version": "8.45",
"port-version": 0
},
{ {
"git-tree": "69e232f12c4e3eab4115f0672466a6661978bea2", "git-tree": "69e232f12c4e3eab4115f0672466a6661978bea2",
"version-string": "8.44", "version-string": "8.44",