summaryrefslogtreecommitdiffstats
path: root/CMakeModules/FindPCRE2.cmake
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:55:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 09:55:11 +0000
commitcd07912073c951b4bbb871ed2653af1be2cfc714 (patch)
tree1073c2308492e6aea4c66cb7436ee92db2abfd42 /CMakeModules/FindPCRE2.cmake
parentInitial commit. (diff)
downloadlibyang2-cd07912073c951b4bbb871ed2653af1be2cfc714.tar.xz
libyang2-cd07912073c951b4bbb871ed2653af1be2cfc714.zip
Adding upstream version 2.1.30.upstream/2.1.30upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'CMakeModules/FindPCRE2.cmake')
-rw-r--r--CMakeModules/FindPCRE2.cmake62
1 files changed, 62 insertions, 0 deletions
diff --git a/CMakeModules/FindPCRE2.cmake b/CMakeModules/FindPCRE2.cmake
new file mode 100644
index 0000000..19af7b7
--- /dev/null
+++ b/CMakeModules/FindPCRE2.cmake
@@ -0,0 +1,62 @@
+# - Find pcre
+# Find the native PCRE2 headers and libraries.
+#
+# PCRE2_INCLUDE_DIRS - where to find pcre.h, etc.
+# PCRE2_LIBRARIES - List of libraries when using pcre.
+# PCRE2_FOUND - True if pcre found.
+include(FindPackageHandleStandardArgs)
+
+if(PCRE2_LIBRARIES AND PCRE2_INCLUDE_DIRS)
+ # in cache already
+ set(PCRE2_FOUND TRUE)
+else()
+ find_path(PCRE2_INCLUDE_DIR
+ NAMES
+ pcre2.h
+ PATHS
+ /usr/include
+ /usr/local/include
+ /opt/local/include
+ /sw/include
+ ${CMAKE_INCLUDE_PATH}
+ ${CMAKE_INSTALL_PREFIX}/include)
+
+ # Look for the library.
+ find_library(PCRE2_LIBRARY
+ NAMES
+ libpcre2.a
+ pcre2-8
+ PATHS
+ /usr/lib
+ /usr/lib64
+ /usr/local/lib
+ /usr/local/lib64
+ /opt/local/lib
+ /sw/lib
+ ${CMAKE_LIBRARY_PATH}
+ ${CMAKE_INSTALL_PREFIX}/lib)
+
+ if(PCRE2_INCLUDE_DIR AND PCRE2_LIBRARY)
+ # learn pcre2 version
+ file(STRINGS ${PCRE2_INCLUDE_DIR}/pcre2.h PCRE2_VERSION_MAJOR
+ REGEX "#define[ ]+PCRE2_MAJOR[ ]+[0-9]+")
+ string(REGEX MATCH " [0-9]+" PCRE2_VERSION_MAJOR ${PCRE2_VERSION_MAJOR})
+ string(STRIP "${PCRE2_VERSION_MAJOR}" PCRE2_VERSION_MAJOR)
+
+ file(STRINGS ${PCRE2_INCLUDE_DIR}/pcre2.h PCRE2_VERSION_MINOR
+ REGEX "#define[ ]+PCRE2_MINOR[ ]+[0-9]+")
+ string(REGEX MATCH " [0-9]+" PCRE2_VERSION_MINOR ${PCRE2_VERSION_MINOR})
+ string(STRIP "${PCRE2_VERSION_MINOR}" PCRE2_VERSION_MINOR)
+
+ set(PCRE2_VERSION ${PCRE2_VERSION_MAJOR}.${PCRE2_VERSION_MINOR})
+ endif()
+
+ set(PCRE2_INCLUDE_DIRS ${PCRE2_INCLUDE_DIR})
+ set(PCRE2_LIBRARIES ${PCRE2_LIBRARY})
+ mark_as_advanced(PCRE2_INCLUDE_DIRS PCRE2_LIBRARIES)
+
+ # Handle the QUIETLY and REQUIRED arguments and set PCRE2_FOUND to TRUE if all listed variables are TRUE.
+ find_package_handle_standard_args(PCRE2 FOUND_VAR PCRE2_FOUND
+ REQUIRED_VARS PCRE2_LIBRARY PCRE2_INCLUDE_DIR
+ VERSION_VAR PCRE2_VERSION)
+endif()