mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 10:21:07 +08:00
[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:
parent
3f8513efb0
commit
acc2fb6cce
334
ports/pcre2/fix-cmake.patch
Normal file
334
ports/pcre2/fix-cmake.patch
Normal 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")
|
@ -7,6 +7,7 @@ vcpkg_from_github(
|
|||||||
PATCHES
|
PATCHES
|
||||||
pcre2-10.35_fix-uwp.patch
|
pcre2-10.35_fix-uwp.patch
|
||||||
no-static-suffix.patch
|
no-static-suffix.patch
|
||||||
|
fix-cmake.patch
|
||||||
)
|
)
|
||||||
|
|
||||||
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
|
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" BUILD_STATIC)
|
||||||
@ -31,11 +32,11 @@ vcpkg_cmake_configure(
|
|||||||
-DPCRE2_SUPPORT_UNICODE=ON
|
-DPCRE2_SUPPORT_UNICODE=ON
|
||||||
-DPCRE2_BUILD_TESTS=OFF
|
-DPCRE2_BUILD_TESTS=OFF
|
||||||
-DPCRE2_BUILD_PCRE2GREP=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_Readline=ON
|
||||||
-DCMAKE_DISABLE_FIND_PACKAGE_Editline=ON
|
-DCMAKE_DISABLE_FIND_PACKAGE_Editline=ON
|
||||||
-DINSTALL_MSVC_PDB=${INSTALL_PDB}
|
-DINSTALL_MSVC_PDB=${INSTALL_PDB}
|
||||||
-DCMAKE_REQUIRE_FIND_PACKAGE_BZip2=ON
|
|
||||||
-DCMAKE_REQUIRE_FIND_PACKAGE_ZLIB=ON
|
|
||||||
)
|
)
|
||||||
|
|
||||||
vcpkg_cmake_install()
|
vcpkg_cmake_install()
|
||||||
@ -50,16 +51,14 @@ endif()
|
|||||||
file(WRITE "${CURRENT_PACKAGES_DIR}/include/pcre2.h" "${PCRE2_H}")
|
file(WRITE "${CURRENT_PACKAGES_DIR}/include/pcre2.h" "${PCRE2_H}")
|
||||||
|
|
||||||
vcpkg_fixup_pkgconfig()
|
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.
|
file(REMOVE_RECURSE
|
||||||
#vcpkg_cmake_config_fixup(CONFIG_PATH cmake)
|
"${CURRENT_PACKAGES_DIR}/man"
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/cmake" "${CURRENT_PACKAGES_DIR}/debug/cmake")
|
"${CURRENT_PACKAGES_DIR}/share/doc"
|
||||||
|
"${CURRENT_PACKAGES_DIR}/debug/include"
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/man")
|
"${CURRENT_PACKAGES_DIR}/debug/man"
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/share/doc")
|
"${CURRENT_PACKAGES_DIR}/debug/share")
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
|
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/man")
|
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
|
|
||||||
|
|
||||||
if(BUILD_STATIC)
|
if(BUILD_STATIC)
|
||||||
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
|
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
|
||||||
@ -70,4 +69,5 @@ elseif(VCPKG_TARGET_IS_WINDOWS)
|
|||||||
endif()
|
endif()
|
||||||
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
6
ports/pcre2/usage
Normal 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)
|
@ -1,14 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "pcre2",
|
"name": "pcre2",
|
||||||
"version": "10.42",
|
"version": "10.42",
|
||||||
|
"port-version": 1,
|
||||||
"description": "Regular Expression pattern matching using the same syntax and semantics as Perl 5.",
|
"description": "Regular Expression pattern matching using the same syntax and semantics as Perl 5.",
|
||||||
"homepage": "https://github.com/PCRE2Project/pcre2",
|
"homepage": "https://github.com/PCRE2Project/pcre2",
|
||||||
"license": "BSD-3-Clause",
|
"license": "BSD-3-Clause",
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
{
|
|
||||||
"name": "bzip2",
|
|
||||||
"default-features": false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"name": "vcpkg-cmake",
|
"name": "vcpkg-cmake",
|
||||||
"host": true
|
"host": true
|
||||||
@ -16,15 +13,14 @@
|
|||||||
{
|
{
|
||||||
"name": "vcpkg-cmake-config",
|
"name": "vcpkg-cmake-config",
|
||||||
"host": true
|
"host": true
|
||||||
},
|
}
|
||||||
"zlib"
|
|
||||||
],
|
],
|
||||||
"default-features": [
|
"default-features": [
|
||||||
"platform-default-features"
|
"platform-default-features"
|
||||||
],
|
],
|
||||||
"features": {
|
"features": {
|
||||||
"jit": {
|
"jit": {
|
||||||
"description": "Build JIT support",
|
"description": "Enable support for Just-In-Time compiling regex matchers",
|
||||||
"supports": "!emscripten"
|
"supports": "!emscripten"
|
||||||
},
|
},
|
||||||
"platform-default-features": {
|
"platform-default-features": {
|
||||||
|
@ -6354,7 +6354,7 @@
|
|||||||
},
|
},
|
||||||
"pcre2": {
|
"pcre2": {
|
||||||
"baseline": "10.42",
|
"baseline": "10.42",
|
||||||
"port-version": 0
|
"port-version": 1
|
||||||
},
|
},
|
||||||
"pdal": {
|
"pdal": {
|
||||||
"baseline": "2.5.3",
|
"baseline": "2.5.3",
|
||||||
|
@ -1,5 +1,10 @@
|
|||||||
{
|
{
|
||||||
"versions": [
|
"versions": [
|
||||||
|
{
|
||||||
|
"git-tree": "678c2336c4102c5a8868570c60140fdc2a8d1dcf",
|
||||||
|
"version": "10.42",
|
||||||
|
"port-version": 1
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"git-tree": "148d5898b3c1925fd8e82663589917255172d5c9",
|
"git-tree": "148d5898b3c1925fd8e82663589917255172d5c9",
|
||||||
"version": "10.42",
|
"version": "10.42",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user