[pcre2] Fix CMake integration. (#31928)

* 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>
This commit is contained in:
Theodore Tsirpanis 2023-09-22 21:35:42 +03:00 committed by GitHub
parent 3f8513efb0
commit acc2fb6cce
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 361 additions and 20 deletions

334
ports/pcre2/fix-cmake.patch Normal file
View File

@ -0,0 +1,334 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b5081e..ba2e993 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -100,6 +100,9 @@
# 2021-08-28 PH increased minimum version
# 2021-08-28 PH added test for realpath()
# 2022-12-10 PH added support for pcre2posix_test
+# 2023-01-15 Carlo added C99 as the minimum required
+# 2023-06-03 Theodore used standard CMake constructs to export the library's targets.
+# 2023-08-06 PH added support for setting variable length lookbehind maximum
# Increased minimum to 2.8.5 to support GNUInstallDirs.
# Increased minimum to 3.1 to support imported targets.
@@ -136,6 +139,7 @@ INCLUDE(CheckFunctionExists)
INCLUDE(CheckSymbolExists)
INCLUDE(CheckIncludeFile)
INCLUDE(CheckTypeSize)
+INCLUDE(CMakePackageConfigHelpers)
INCLUDE(GNUInstallDirs) # for CMAKE_INSTALL_LIBDIR
CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
@@ -706,7 +710,9 @@ IF(PCRE2_BUILD_PCRE2_8)
VERSION ${LIBPCRE2_8_VERSION}
SOVERSION ${LIBPCRE2_8_SOVERSION})
TARGET_COMPILE_DEFINITIONS(pcre2-8-static PUBLIC PCRE2_STATIC)
- TARGET_INCLUDE_DIRECTORIES(pcre2-8-static PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-8-static PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
IF(REQUIRE_PTHREAD)
TARGET_LINK_LIBRARIES(pcre2-8-static Threads::Threads)
ENDIF(REQUIRE_PTHREAD)
@@ -719,8 +725,9 @@ IF(PCRE2_BUILD_PCRE2_8)
VERSION ${LIBPCRE2_POSIX_VERSION}
SOVERSION ${LIBPCRE2_POSIX_SOVERSION})
TARGET_LINK_LIBRARIES(pcre2-posix-static pcre2-8-static)
- TARGET_COMPILE_DEFINITIONS(pcre2-posix-static PUBLIC PCRE2_STATIC)
- TARGET_INCLUDE_DIRECTORIES(pcre2-posix-static PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-posix-static PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
SET(targets ${targets} pcre2-posix-static)
IF(MSVC)
@@ -737,7 +744,9 @@ IF(PCRE2_BUILD_PCRE2_8)
IF(BUILD_SHARED_LIBS)
ADD_LIBRARY(pcre2-8-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
- TARGET_INCLUDE_DIRECTORIES(pcre2-8-shared PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-8-shared PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
SET_TARGET_PROPERTIES(pcre2-8-shared PROPERTIES
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_8_MACHO_COMPATIBILITY_VERSION}"
@@ -750,7 +759,9 @@ IF(PCRE2_BUILD_PCRE2_8)
ENDIF(REQUIRE_PTHREAD)
SET(targets ${targets} pcre2-8-shared)
ADD_LIBRARY(pcre2-posix-shared SHARED ${PCRE2POSIX_HEADERS} ${PCRE2POSIX_SOURCES})
- TARGET_INCLUDE_DIRECTORIES(pcre2-posix-shared PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-posix-shared PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
SET_TARGET_PROPERTIES(pcre2-posix-shared PROPERTIES
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=8
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_POSIX_MACHO_COMPATIBILITY_VERSION}"
@@ -787,7 +798,9 @@ ENDIF(PCRE2_BUILD_PCRE2_8)
IF(PCRE2_BUILD_PCRE2_16)
IF(BUILD_STATIC_LIBS)
ADD_LIBRARY(pcre2-16-static STATIC ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
- TARGET_INCLUDE_DIRECTORIES(pcre2-16-static PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-16-static PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
SET_TARGET_PROPERTIES(pcre2-16-static PROPERTIES
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=16
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
@@ -812,7 +825,9 @@ IF(PCRE2_BUILD_PCRE2_16)
IF(BUILD_SHARED_LIBS)
ADD_LIBRARY(pcre2-16-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
- TARGET_INCLUDE_DIRECTORIES(pcre2-16-shared PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-16-shared PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
SET_TARGET_PROPERTIES(pcre2-16-shared PROPERTIES
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=16
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
@@ -849,7 +864,9 @@ ENDIF(PCRE2_BUILD_PCRE2_16)
IF(PCRE2_BUILD_PCRE2_32)
IF(BUILD_STATIC_LIBS)
ADD_LIBRARY(pcre2-32-static STATIC ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
- TARGET_INCLUDE_DIRECTORIES(pcre2-32-static PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-32-static PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
SET_TARGET_PROPERTIES(pcre2-32-static PROPERTIES
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=32
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
@@ -874,7 +891,9 @@ IF(PCRE2_BUILD_PCRE2_32)
IF(BUILD_SHARED_LIBS)
ADD_LIBRARY(pcre2-32-shared SHARED ${PCRE2_HEADERS} ${PCRE2_SOURCES} ${PROJECT_BINARY_DIR}/config.h)
- TARGET_INCLUDE_DIRECTORIES(pcre2-32-shared PUBLIC ${PROJECT_BINARY_DIR})
+ TARGET_INCLUDE_DIRECTORIES(pcre2-32-shared PUBLIC
+ $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
SET_TARGET_PROPERTIES(pcre2-32-shared PROPERTIES
COMPILE_DEFINITIONS PCRE2_CODE_UNIT_WIDTH=32
MACHO_COMPATIBILITY_VERSION "${LIBPCRE2_32_MACHO_COMPATIBILITY_VERSION}"
@@ -1076,9 +1095,13 @@ ENDIF(PCRE2_BUILD_TESTS)
SET(CMAKE_INSTALL_ALWAYS 1)
INSTALL(TARGETS ${targets}
- RUNTIME DESTINATION bin
+ EXPORT pcre2-targets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+INSTALL(EXPORT pcre2-targets
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pcre2
+ NAMESPACE pcre2::)
INSTALL(FILES ${pkg_config_files} DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/pcre2-config"
DESTINATION bin
@@ -1090,11 +1113,12 @@ INSTALL(FILES ${PCRE2_HEADERS} ${PCRE2POSIX_HEADERS} DESTINATION include)
# CMake config files.
set(PCRE2_CONFIG_IN ${CMAKE_CURRENT_SOURCE_DIR}/cmake/pcre2-config.cmake.in)
set(PCRE2_CONFIG_OUT ${CMAKE_CURRENT_BINARY_DIR}/cmake/pcre2-config.cmake)
-configure_file(${PCRE2_CONFIG_IN} ${PCRE2_CONFIG_OUT} @ONLY)
-set(PCRE2_CONFIG_VERSION_IN ${CMAKE_CURRENT_SOURCE_DIR}/cmake/pcre2-config-version.cmake.in)
+configure_package_config_file(${PCRE2_CONFIG_IN} ${PCRE2_CONFIG_OUT} INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pcre2)
set(PCRE2_CONFIG_VERSION_OUT ${CMAKE_CURRENT_BINARY_DIR}/cmake/pcre2-config-version.cmake)
-configure_file(${PCRE2_CONFIG_VERSION_IN} ${PCRE2_CONFIG_VERSION_OUT} @ONLY)
-install(FILES ${PCRE2_CONFIG_OUT} ${PCRE2_CONFIG_VERSION_OUT} DESTINATION cmake)
+write_basic_package_version_file(${PCRE2_CONFIG_VERSION_OUT}
+ VERSION ${PCRE2_MAJOR}.${PCRE2_MINOR}.0
+ COMPATIBILITY SameMajorVersion)
+install(FILES ${PCRE2_CONFIG_OUT} ${PCRE2_CONFIG_VERSION_OUT} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pcre2)
FILE(GLOB html ${PROJECT_SOURCE_DIR}/doc/html/*.html)
FILE(GLOB man1 ${PROJECT_SOURCE_DIR}/doc/*.1)
diff --git a/cmake/pcre2-config-version.cmake.in b/cmake/pcre2-config-version.cmake.in
deleted file mode 100644
index dac149e..0000000
--- a/cmake/pcre2-config-version.cmake.in
+++ /dev/null
@@ -1,15 +0,0 @@
-set(PACKAGE_VERSION_MAJOR @PCRE2_MAJOR@)
-set(PACKAGE_VERSION_MINOR @PCRE2_MINOR@)
-set(PACKAGE_VERSION_PATCH 0)
-set(PACKAGE_VERSION @PCRE2_MAJOR@.@PCRE2_MINOR@.0)
-
-# Check whether the requested PACKAGE_FIND_VERSION is compatible
-if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION OR
- PACKAGE_VERSION_MAJOR GREATER PACKAGE_FIND_VERSION_MAJOR)
- set(PACKAGE_VERSION_COMPATIBLE FALSE)
-else()
- set(PACKAGE_VERSION_COMPATIBLE TRUE)
- if(PACKAGE_VERSION VERSION_EQUAL PACKAGE_FIND_VERSION)
- set(PACKAGE_VERSION_EXACT TRUE)
- endif()
-endif()
diff --git a/cmake/pcre2-config.cmake.in b/cmake/pcre2-config.cmake.in
index b313d6d..5b2aafa 100644
--- a/cmake/pcre2-config.cmake.in
+++ b/cmake/pcre2-config.cmake.in
@@ -5,11 +5,17 @@
#
# Static vs. shared
# -----------------
-# To make use of the static library instead of the shared one, one needs
+# To force using the static library instead of the shared one, one needs
# to set the variable PCRE2_USE_STATIC_LIBS to ON before calling find_package.
+# If the variable is not set, the static library will be used if only that has
+# been built, otherwise the shared library will be used.
+#
+# The following components are supported: 8BIT, 16BIT, 32BIT and POSIX.
+# They used to be required but not anymore; all available targets will
+# be defined regardless of the requested components.
# Example:
# set(PCRE2_USE_STATIC_LIBS ON)
-# find_package(PCRE2 CONFIG COMPONENTS 8BIT)
+# find_package(PCRE2 CONFIG)
#
# This will define the following variables:
#
@@ -23,70 +29,42 @@
# PCRE2::32BIT - The 32 bit PCRE2 library.
# PCRE2::POSIX - The POSIX PCRE2 library.
-set(PCRE2_NON_STANDARD_LIB_PREFIX @NON_STANDARD_LIB_PREFIX@)
-set(PCRE2_NON_STANDARD_LIB_SUFFIX @NON_STANDARD_LIB_SUFFIX@)
-set(PCRE2_8BIT_NAME pcre2-8)
-set(PCRE2_16BIT_NAME pcre2-16)
-set(PCRE2_32BIT_NAME pcre2-32)
-set(PCRE2_POSIX_NAME pcre2-posix)
-find_path(PCRE2_INCLUDE_DIR NAMES pcre2.h DOC "PCRE2 include directory")
-if (PCRE2_USE_STATIC_LIBS)
- if (MSVC)
- set(PCRE2_8BIT_NAME pcre2-8-static)
- set(PCRE2_16BIT_NAME pcre2-16-static)
- set(PCRE2_32BIT_NAME pcre2-32-static)
- set(PCRE2_POSIX_NAME pcre2-posix-static)
- endif ()
+@PACKAGE_INIT@
- set(PCRE2_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
- set(PCRE2_SUFFIX ${CMAKE_STATIC_LIBRARY_SUFFIX})
-else ()
- set(PCRE2_PREFIX ${CMAKE_SHARED_LIBRARY_PREFIX})
- if (MINGW AND PCRE2_NON_STANDARD_LIB_PREFIX)
- set(PCRE2_PREFIX "")
- endif ()
+include(CMakeFindDependencyMacro)
+if("@REQUIRE_PTHREAD@") # REQUIRE_PTHREAD
+ find_dependency(Threads)
+endif()
- set(PCRE2_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
- if (MINGW AND PCRE2_NON_STANDARD_LIB_SUFFIX)
- set(PCRE2_SUFFIX "-0.dll")
- endif ()
-endif ()
-find_library(PCRE2_8BIT_LIBRARY NAMES ${PCRE2_PREFIX}${PCRE2_8BIT_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_8BIT_NAME}d${PCRE2_SUFFIX} DOC "8 bit PCRE2 library")
-find_library(PCRE2_16BIT_LIBRARY NAMES ${PCRE2_PREFIX}${PCRE2_16BIT_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_8BIT_NAME}d${PCRE2_SUFFIX} DOC "16 bit PCRE2 library")
-find_library(PCRE2_32BIT_LIBRARY NAMES ${PCRE2_PREFIX}${PCRE2_32BIT_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_8BIT_NAME}d${PCRE2_SUFFIX} DOC "32 bit PCRE2 library")
-find_library(PCRE2_POSIX_LIBRARY NAMES ${PCRE2_PREFIX}${PCRE2_POSIX_NAME}${PCRE2_SUFFIX} ${PCRE2_PREFIX}${PCRE2_8BIT_NAME}d${PCRE2_SUFFIX} DOC "8 bit POSIX PCRE2 library")
-unset(PCRE2_NON_STANDARD_LIB_PREFIX)
-unset(PCRE2_NON_STANDARD_LIB_SUFFIX)
-unset(PCRE2_8BIT_NAME)
-unset(PCRE2_16BIT_NAME)
-unset(PCRE2_32BIT_NAME)
-unset(PCRE2_POSIX_NAME)
+include("${CMAKE_CURRENT_LIST_DIR}/pcre2-targets.cmake")
# Set version
-if (PCRE2_INCLUDE_DIR)
- set(PCRE2_VERSION "@PCRE2_MAJOR@.@PCRE2_MINOR@.0")
-endif ()
-
-# Which components have been found.
-if (PCRE2_8BIT_LIBRARY)
- set(PCRE2_8BIT_FOUND TRUE)
-endif ()
-if (PCRE2_16BIT_LIBRARY)
- set(PCRE2_16BIT_FOUND TRUE)
-endif ()
-if (PCRE2_32BIT_LIBRARY)
- set(PCRE2_32BIT_FOUND TRUE)
-endif ()
-if (PCRE2_POSIX_LIBRARY)
- set(PCRE2_POSIX_FOUND TRUE)
-endif ()
+set(PCRE2_VERSION "@PCRE2_MAJOR@.@PCRE2_MINOR@.0")
-# Check if at least one component has been specified.
-list(LENGTH PCRE2_FIND_COMPONENTS PCRE2_NCOMPONENTS)
-if (PCRE2_NCOMPONENTS LESS 1)
- message(FATAL_ERROR "No components have been specified. This is not allowed. Please, specify at least one component.")
-endif ()
-unset(PCRE2_NCOMPONENTS)
+# Chooses the linkage of the library to expose in the
+# unsuffixed edition of the target.
+macro(_pcre2_add_component_target component target)
+ # If the static library exists and either PCRE2_USE_STATIC_LIBS
+ # is defined, or the dynamic library does not exist, use the static library.
+ if(NOT TARGET PCRE2::${component})
+ if(TARGET pcre2::pcre2-${target}-static AND (PCRE2_USE_STATIC_LIBS OR NOT TARGET pcre2::pcre2-${target}-shared))
+ add_library(PCRE2::${component} ALIAS pcre2::pcre2-${target}-static)
+ set(PCRE2_${component}_FOUND TRUE)
+ # Otherwise use the dynamic library if it exists.
+ elseif(TARGET pcre2::pcre2-${target}-shared AND NOT PCRE2_USE_STATIC_LIBS)
+ add_library(PCRE2::${component} ALIAS pcre2::pcre2-${target}-shared)
+ set(PCRE2_${component}_FOUND TRUE)
+ endif()
+ if(PCRE2_${component}_FOUND)
+ get_target_property(PCRE2_${component}_LIBRARY PCRE2::${component} IMPORTED_LOCATION)
+ set(PCRE2_LIBRARIES ${PCRE2_LIBRARIES} ${PCRE2_${component}_LIBRARY})
+ endif()
+ endif()
+endmacro()
+_pcre2_add_component_target(8BIT 8)
+_pcre2_add_component_target(16BIT 16)
+_pcre2_add_component_target(32BIT 32)
+_pcre2_add_component_target(POSIX posix)
# When POSIX component has been specified make sure that also 8BIT component is specified.
set(PCRE2_8BIT_COMPONENT FALSE)
@@ -105,41 +83,5 @@ endif()
unset(PCRE2_8BIT_COMPONENT)
unset(PCRE2_POSIX_COMPONENT)
-include(FindPackageHandleStandardArgs)
-set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG "${CMAKE_CURRENT_LIST_FILE}")
-find_package_handle_standard_args(PCRE2
- FOUND_VAR PCRE2_FOUND
- REQUIRED_VARS PCRE2_INCLUDE_DIR
- HANDLE_COMPONENTS
- VERSION_VAR PCRE2_VERSION
- CONFIG_MODE
-)
-
-set(PCRE2_LIBRARIES)
-if (PCRE2_FOUND)
- foreach(component ${PCRE2_FIND_COMPONENTS})
- if (PCRE2_USE_STATIC_LIBS)
- add_library(PCRE2::${component} STATIC IMPORTED)
- target_compile_definitions(PCRE2::${component} INTERFACE PCRE2_STATIC)
- else ()
- add_library(PCRE2::${component} SHARED IMPORTED)
- endif ()
- set_target_properties(PCRE2::${component} PROPERTIES
- IMPORTED_LOCATION "${PCRE2_${component}_LIBRARY}"
- INTERFACE_INCLUDE_DIRECTORIES "${PCRE2_INCLUDE_DIR}"
- )
- if (component STREQUAL "POSIX")
- set_target_properties(PCRE2::${component} PROPERTIES
- INTERFACE_LINK_LIBRARIES "PCRE2::8BIT"
- LINK_LIBRARIES "PCRE2::8BIT"
- )
- endif ()
-
- set(PCRE2_LIBRARIES ${PCRE2_LIBRARIES} ${PCRE2_${component}_LIBRARY})
- mark_as_advanced(PCRE2_${component}_LIBRARY)
- endforeach()
-endif ()
-
-mark_as_advanced(
- PCRE2_INCLUDE_DIR
-)
+# Check for required components.
+check_required_components("PCRE2")

View File

@ -7,6 +7,7 @@ vcpkg_from_github(
PATCHES
pcre2-10.35_fix-uwp.patch
no-static-suffix.patch
fix-cmake.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
@ -31,11 +32,11 @@ vcpkg_cmake_configure(
-DPCRE2_SUPPORT_UNICODE=ON
-DPCRE2_BUILD_TESTS=OFF
-DPCRE2_BUILD_PCRE2GREP=OFF
-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=ON
-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=ON
-DCMAKE_DISABLE_FIND_PACKAGE_Readline=ON
-DCMAKE_DISABLE_FIND_PACKAGE_Editline=ON
-DINSTALL_MSVC_PDB=${INSTALL_PDB}
-DCMAKE_REQUIRE_FIND_PACKAGE_BZip2=ON
-DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON
)
vcpkg_cmake_install()
@ -50,16 +51,14 @@ endif()
file(WRITE "${CURRENT_PACKAGES_DIR}/include/pcre2.h" "${PCRE2_H}")
vcpkg_fixup_pkgconfig()
vcpkg_cmake_config_fixup(CONFIG_PATH lib/cmake/${PORT})
# The cmake file provided by pcre2 has some problems, so don't use it for now.
#vcpkg_cmake_config_fixup(CONFIG_PATH cmake)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/cmake" "${CURRENT_PACKAGES_DIR}/debug/cmake")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/man")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/man")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE
"${CURRENT_PACKAGES_DIR}/man"
"${CURRENT_PACKAGES_DIR}/share/doc"
"${CURRENT_PACKAGES_DIR}/debug/include"
"${CURRENT_PACKAGES_DIR}/debug/man"
"${CURRENT_PACKAGES_DIR}/debug/share")
if(BUILD_STATIC)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
@ -70,4 +69,5 @@ elseif(VCPKG_TARGET_IS_WINDOWS)
endif()
endif()
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING")

6
ports/pcre2/usage Normal file
View File

@ -0,0 +1,6 @@
The package pcre2 is compatible with built-in CMake targets:
# Each component imports a target:
# TARGETS: PCRE2::8BIT PCRE2::16BIT PCRE2::32BIT PCRE2::POSIX
find_package(pcre2 CONFIG REQUIRED)
target_link_libraries(main PRIVATE PCRE2::8BIT PCRE2::16BIT PCRE2::32BIT PCRE2::POSIX)

View File

@ -1,14 +1,11 @@
{
"name": "pcre2",
"version": "10.42",
"port-version": 1,
"description": "Regular Expression pattern matching using the same syntax and semantics as Perl 5.",
"homepage": "https://github.com/PCRE2Project/pcre2",
"license": "BSD-3-Clause",
"dependencies": [
{
"name": "bzip2",
"default-features": false
},
{
"name": "vcpkg-cmake",
"host": true
@ -16,15 +13,14 @@
{
"name": "vcpkg-cmake-config",
"host": true
},
"zlib"
}
],
"default-features": [
"platform-default-features"
],
"features": {
"jit": {
"description": "Build JIT support",
"description": "Enable support for Just-In-Time compiling regex matchers",
"supports": "!emscripten"
},
"platform-default-features": {

View File

@ -6354,7 +6354,7 @@
},
"pcre2": {
"baseline": "10.42",
"port-version": 0
"port-version": 1
},
"pdal": {
"baseline": "2.5.3",

View File

@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "678c2336c4102c5a8868570c60140fdc2a8d1dcf",
"version": "10.42",
"port-version": 1
},
{
"git-tree": "148d5898b3c1925fd8e82663589917255172d5c9",
"version": "10.42",