mirror of https://github.com/Cisco-Talos/clamav
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
116 lines
3.0 KiB
116 lines
3.0 KiB
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
#[=======================================================================[.rst:
|
|
FindPCRE2
|
|
-------
|
|
|
|
Finds the PCRE2 library.
|
|
|
|
Imported Targets
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This module provides the following imported targets, if found:
|
|
|
|
``PCRE2::pcre2``
|
|
The PCRE2 library
|
|
|
|
Result Variables
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
This will define the following variables:
|
|
|
|
``PCRE2_FOUND``
|
|
True if the system has the PCRE2 library.
|
|
``PCRE2_VERSION``
|
|
The version of the PCRE2 library which was found.
|
|
``PCRE2_INCLUDE_DIRS``
|
|
Include directories needed to use PCRE2.
|
|
``PCRE2_LIBRARIES``
|
|
Libraries needed to link to PCRE2.
|
|
|
|
Cache Variables
|
|
^^^^^^^^^^^^^^^
|
|
|
|
The following cache variables may also be set:
|
|
|
|
``PCRE2_INCLUDE_DIR``
|
|
The directory containing ``foo.h``.
|
|
``PCRE2_LIBRARY``
|
|
The path to the PCRE2 library.
|
|
|
|
#]=======================================================================]
|
|
|
|
find_package(PkgConfig QUIET)
|
|
pkg_check_modules(PC_PCRE2 QUIET pcre2)
|
|
|
|
find_path(PCRE2_INCLUDE_DIR
|
|
NAMES pcre2.h
|
|
PATHS ${PC_PCRE2_INCLUDE_DIRS}
|
|
PATH_SUFFIXES pcre2 include/pcre2
|
|
)
|
|
|
|
if(PCRE2_LIBRARY)
|
|
set(PCRE2_LIBRARIES "${PCRE2_LIBRARY}")
|
|
endif()
|
|
|
|
if(NOT PCRE2_LIBRARIES)
|
|
find_library(PCRE2_LIBRARY_RELEASE
|
|
NAMES pcre2-8 NAMES_PER_DIR ${PC_PCRE2_LIBRARY_DIRS} PATH_SUFFIXES lib)
|
|
find_library(PCRE2_LIBRARY_DEBUG
|
|
NAMES pcre2-8d NAMES_PER_DIR ${PC_PCRE2_LIBRARY_DIRS} PATH_SUFFIXES lib)
|
|
|
|
include(SelectLibraryConfigurations)
|
|
SELECT_LIBRARY_CONFIGURATIONS(PCRE2)
|
|
else()
|
|
file(TO_CMAKE_PATH "${PCRE2_LIBRARIES}" PCRE2_LIBRARIES)
|
|
endif()
|
|
|
|
set(PCRE2_VERSION ${PC_PCRE2_VERSION})
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(PCRE2
|
|
FOUND_VAR PCRE2_FOUND
|
|
REQUIRED_VARS
|
|
PCRE2_LIBRARIES
|
|
PCRE2_INCLUDE_DIR
|
|
VERSION_VAR PCRE2_VERSION
|
|
)
|
|
|
|
if(PCRE2_FOUND)
|
|
set(PCRE2_INCLUDE_DIRS ${PCRE2_INCLUDE_DIR})
|
|
set(PCRE2_DEFINITIONS ${PC_PCRE2_CFLAGS_OTHER})
|
|
|
|
if(NOT TARGET PCRE2::pcre2)
|
|
add_library(PCRE2::pcre2 UNKNOWN IMPORTED)
|
|
set_target_properties(PCRE2::pcre2 PROPERTIES
|
|
INTERFACE_COMPILE_OPTIONS "${PC_PCRE2_CFLAGS_OTHER}"
|
|
INTERFACE_INCLUDE_DIRECTORIES "${PCRE2_INCLUDE_DIRS}")
|
|
|
|
if(PCRE2_LIBRARY_RELEASE)
|
|
set_property(TARGET PCRE2::pcre2 APPEND PROPERTY
|
|
IMPORTED_CONFIGURATIONS RELEASE)
|
|
set_target_properties(PCRE2::pcre2 PROPERTIES
|
|
IMPORTED_LOCATION_RELEASE "${PCRE2_LIBRARY_RELEASE}"
|
|
)
|
|
endif()
|
|
|
|
if(PCRE2_LIBRARY_DEBUG)
|
|
set_property(TARGET PCRE2::pcre2 APPEND PROPERTY
|
|
IMPORTED_CONFIGURATIONS DEBUG)
|
|
set_target_properties(PCRE2::pcre2 PROPERTIES
|
|
IMPORTED_LOCATION_DEBUG "${PCRE2_LIBRARY_DEBUG}"
|
|
)
|
|
endif()
|
|
|
|
if(NOT PCRE2_LIBRARY_RELEASE AND NOT PCRE2_LIBRARY_DEBUG)
|
|
set_property(TARGET PCRE2::pcre2 APPEND PROPERTY
|
|
IMPORTED_LOCATION "${PCRE2_LIBRARY}")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
mark_as_advanced(
|
|
PCRE2_INCLUDE_DIR
|
|
PCRE2_LIBRARY
|
|
)
|
|
|