brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · b3f49e1 Raw
66 lines · plain
1#.rst:2# FindLibEdit3# -----------4#5# Find libedit library and headers6#7# The module defines the following variables:8#9# ::10#11#   LibEdit_FOUND          - true if libedit was found12#   LibEdit_INCLUDE_DIRS   - include search path13#   LibEdit_LIBRARIES      - libraries to link14#   LibEdit_VERSION_STRING - version number15 16find_package(PkgConfig QUIET)17pkg_check_modules(PC_LIBEDIT QUIET libedit)18 19find_path(LibEdit_INCLUDE_DIRS NAMES histedit.h HINTS ${PC_LIBEDIT_INCLUDE_DIRS})20find_library(LibEdit_LIBRARIES NAMES edit HINTS ${PC_LIBEDIT_LIBRARY_DIRS})21 22include(CheckIncludeFile)23if(LibEdit_INCLUDE_DIRS AND EXISTS "${LibEdit_INCLUDE_DIRS}/histedit.h")24  include(CMakePushCheckState)25  cmake_push_check_state()26  list(APPEND CMAKE_REQUIRED_INCLUDES ${LibEdit_INCLUDE_DIRS})27  list(APPEND CMAKE_REQUIRED_LIBRARIES ${LibEdit_LIBRARIES})28  check_include_file(histedit.h HAVE_HISTEDIT_H)29  cmake_pop_check_state()30  if (HAVE_HISTEDIT_H)31    file(STRINGS "${LibEdit_INCLUDE_DIRS}/histedit.h"32          libedit_major_version_str33          REGEX "^#define[ \t]+LIBEDIT_MAJOR[ \t]+[0-9]+")34    string(REGEX REPLACE "^#define[ \t]+LIBEDIT_MAJOR[ \t]+([0-9]+)" "\\1"35            libedit_major_version "${libedit_major_version_str}")36 37    file(STRINGS "${LibEdit_INCLUDE_DIRS}/histedit.h"38          libedit_minor_version_str39          REGEX "^#define[ \t]+LIBEDIT_MINOR[ \t]+[0-9]+")40    string(REGEX REPLACE "^#define[ \t]+LIBEDIT_MINOR[ \t]+([0-9]+)" "\\1"41            libedit_minor_version "${libedit_minor_version_str}")42 43    set(LibEdit_VERSION_STRING "${libedit_major_version}.${libedit_minor_version}")44  else()45    set(LibEdit_INCLUDE_DIRS "")46    set(LibEdit_LIBRARIES "")47  endif()48endif()49 50include(FindPackageHandleStandardArgs)51find_package_handle_standard_args(LibEdit52                                  FOUND_VAR53                                    LibEdit_FOUND54                                  REQUIRED_VARS55                                    LibEdit_INCLUDE_DIRS56                                    LibEdit_LIBRARIES57                                  VERSION_VAR58                                    LibEdit_VERSION_STRING)59mark_as_advanced(LibEdit_INCLUDE_DIRS LibEdit_LIBRARIES)60 61if (LibEdit_FOUND AND NOT TARGET LibEdit::LibEdit)62  add_library(LibEdit::LibEdit INTERFACE IMPORTED)63  target_link_libraries(LibEdit::LibEdit INTERFACE ${LibEdit_LIBRARIES})64  target_include_directories(LibEdit::LibEdit INTERFACE ${LibEdit_INCLUDE_DIRS})65endif()66