-
Notifications
You must be signed in to change notification settings - Fork 6.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pcre2] Fix CMake integration. #31928
Merged
Merged
Changes from all commits
Commits
Show all changes
10 commits
Select commit
Hold shift + click to select a range
2d2729f
Remove dependencies to bzip2 and zlib.
teo-tsirpanis ed7cd22
Fix CMake integration.
teo-tsirpanis a6a12ae
Add a usage file and use `vcpkg_install_copyright`.
teo-tsirpanis 61e560a
Bring back patching pcre2.h.
teo-tsirpanis 7f76e7f
Bump port version.
teo-tsirpanis f967933
Update version database.
teo-tsirpanis 0d416c9
Merge remote-tracking branch 'origin/master' into HEAD
BillyONeal 927b6e0
Fix CRLF damage.
BillyONeal bf828b5
Fix target capitalization.
teo-tsirpanis 72df0c0
Update version database.
teo-tsirpanis File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain what this part of the change is doing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BZip2 and Zlib are used by the
pcre2grep
program which was disabled by the line just above.