diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:55:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 09:55:11 +0000 |
commit | cd07912073c951b4bbb871ed2653af1be2cfc714 (patch) | |
tree | 1073c2308492e6aea4c66cb7436ee92db2abfd42 /CMakeModules/FindPCRE2.cmake | |
parent | Initial commit. (diff) | |
download | libyang2-upstream.tar.xz libyang2-upstream.zip |
Adding upstream version 2.1.30.upstream/2.1.30upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | CMakeModules/FindPCRE2.cmake | 62 |
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() |