File: FindReadline.cmake

package info (click to toggle)
ycm-cmake-modules 0.13.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,640 kB
  • sloc: python: 319; sh: 181; makefile: 22
file content (78 lines) | stat: -rw-r--r-- 3,130 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# SPDX-FileCopyrightText: 2012-2021 Istituto Italiano di Tecnologia (IIT)
# SPDX-License-Identifier: BSD-3-Clause

#[=======================================================================[.rst:
FindReadline
------------

Try to find GNU Readline, a library for easy editing of command lines.
Once done this will define the following variables::

 Readline_FOUND         - System has GNU Readline
 Readline_INCLUDE_DIRS  - GNU Readline include directory
 Readline_LIBRARIES     - GNU Readline libraries
 Readline_DEFINITIONS   - Additional compiler flags for GNU Readline
 Readline_VERSION       - GNU Readline version
 Readline_MAJOR_VERSION - GNU Readline major version
 Readline_MINOR_VERSION - GNU Readline minor version

Environment variables used to locate the GNU Readline library::

 READLINE_DIR - Readline root directory

Cached variables used to locate the GNU Readline library::

 Readline_INCLUDE_DIR - the Readline include directory
 Readline_LIBRARY_RELEASE - GNU Readline library (release)
 Readline_LIBRARY_DEBUG - GNU Readline library (debug)
#]=======================================================================]

include(SelectLibraryConfigurations)
include(FindPackageHandleStandardArgs)

# Include directories
find_path(Readline_INCLUDE_DIR
          NAMES readline/readline.h
          HINTS ENV Readline_DIR
          PATH_SUFFIXES include)
mark_as_advanced(Readline_INCLUDE_DIR)
set(Readline_INCLUDE_DIRS ${Readline_INCLUDE_DIR})


# Libraries
find_library(Readline_LIBRARY_RELEASE
             NAMES readline
             HINTS ENV Readline_DIR
             PATH_SUFFIXES lib)
find_library(Readline_LIBRARY_DEBUG
             NAMES readlined
             HINTS ENV Readline_DIR
             PATH_SUFFIXES lib)
mark_as_advanced(Readline_LIBRARY_RELEASE
                 READ_LIBRARY_DEBUG)
select_library_configurations(Readline)


# Version
set(Readline_VERSION Readline_VERSION-NOTFOUND)
if (Readline_INCLUDE_DIR)
  if(EXISTS "${Readline_INCLUDE_DIR}/readline/readline.h")
    file(STRINGS "${Readline_INCLUDE_DIR}/readline/readline.h" _Readline_HEADER_CONTENTS REGEX "#define RL_VERSION_[A-Z]+")
    string(REGEX REPLACE ".*#define RL_VERSION_MAJOR[ \t]+([0-9]+).*" "\\1" Readline_VERSION_MAJOR "${_Readline_HEADER_CONTENTS}")
    string(REGEX REPLACE ".*#define RL_VERSION_MINOR[ \t]+([0-9]+).*" "\\1" Readline_VERSION_MINOR "${_Readline_HEADER_CONTENTS}")
    set(Readline_VERSION ${Readline_VERSION_MAJOR}.${Readline_VERSION_MINOR})
    unset(_Readline_HEADER_CONTENTS)
  endif()
endif()


# Check required variables
find_package_handle_standard_args(Readline FOUND_VAR Readline_FOUND
                                           REQUIRED_VARS Readline_LIBRARY Readline_INCLUDE_DIR
                                           VERSION_VAR Readline_VERSION)

# Set package properties if FeatureSummary was included
if(COMMAND set_package_properties)
    set_package_properties(Readline PROPERTIES DESCRIPTION "A software library that provides line-editing and history capabilities"
                                               URL "http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html")
endif()