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
|
# ~~~
# Code copied from sethhall@github
#
# - Try to find readline include dirs and libraries
#
# Usage of this module as follows:
#
# find_package(Readline)
#
# Variables used by this module, they can change the default behaviour and need
# to be set before calling find_package:
#
# Readline_ROOT_DIR Set this variable to the root installation of
# readline if the module has problems finding the
# proper installation path.
#
# Variables defined by this module:
#
# READLINE_FOUND System has readline, include and lib dirs found
# Readline_INCLUDE_DIR The readline include directories.
# Readline_LIBRARY The readline library.
find_path(Readline_ROOT_DIR NAMES include/readline/readline.h)
find_path(
Readline_INCLUDE_DIR
NAMES readline/readline.h
HINTS ${Readline_ROOT_DIR}/include)
# On platforms like debian/ubuntu with multi-arch support libraries might be under separate
# directory like /usr/lib/x86_64-linux-gnu/ With NVHPC compilers CMake can not find these librarise,
# see
# https://forums.developer.nvidia.com/t/nvhpc-cmake-issues-cmake-library-architecture-is-not-set-and-hence-system-libraries-are-not-found/200659
# Hence, provide extra directories as hint to search for libraries
file(GLOB EXTRA_SEARCH_DIRS "${Readline_ROOT_DIR}/lib*/${CMAKE_SYSTEM_PROCESSOR}-*-*")
find_library(
Readline_LIBRARY
NAMES readline
HINTS ${Readline_ROOT_DIR}/lib ${EXTRA_SEARCH_DIRS})
if(Readline_INCLUDE_DIR
AND Readline_LIBRARY
AND Ncurses_LIBRARY)
set(READLINE_FOUND TRUE)
else(
Readline_INCLUDE_DIR
AND Readline_LIBRARY
AND Ncurses_LIBRARY)
find_library(Readline_LIBRARY NAMES readline)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Readline DEFAULT_MSG Readline_INCLUDE_DIR Readline_LIBRARY)
mark_as_advanced(Readline_INCLUDE_DIR Readline_LIBRARY)
endif(
Readline_INCLUDE_DIR
AND Readline_LIBRARY
AND Ncurses_LIBRARY)
mark_as_advanced(Readline_ROOT_DIR Readline_INCLUDE_DIR Readline_LIBRARY)
|