Files
mosquitto/cmake/FindLineEditing.cmake
2026-01-27 10:02:08 +00:00

78 lines
1.9 KiB
CMake

include(FindPackageHandleStandardArgs)
set(FIND_PATH_OPTS "")
if(APPLE)
list(APPEND FIND_PATH_OPTS
NO_CMAKE_SYSTEM_PATH
NO_SYSTEM_ENVIRONMENT_PATH
)
endif()
# Checks an environment variable; note that the first check
# does not require the usual CMake $-sign.
if(DEFINED env{EDITLINE_DIR})
set(EDITLINE_DIR "$ENV{EDITLINE_DIR}")
endif()
find_path(
EDITLINE_INCLUDE_DIR
editline/readline.h
HINTS
EDITLINE_DIR
${FIND_PATH_OPTS}
)
find_library(EDITLINE_LIBRARY
NAMES edit
HINTS ${EDITLINE_DIR}
)
if(EDITLINE_INCLUDE_DIR AND EDITLINE_LIBRARY)
set(EDITLINE_FOUND TRUE)
set(LINEEDITING_FOUND TRUE)
set(LINEEDITING_INCLUDE_DIRS ${EDITLINE_INCLUDE_DIR})
set(LINEEDITING_LIBRARIES ${EDITLINE_LIBRARY})
if(NOT TARGET LineEditing::LineEditing)
add_library(LineEditing::LineEditing UNKNOWN IMPORTED)
set_target_properties(LineEditing::LineEditing PROPERTIES
IMPORTED_LOCATION "${EDITLINE_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${EDITLINE_INCLUDE_DIR}"
INTERFACE_COMPILE_DEFINITIONS "WITH_EDITLINE"
)
endif()
else()
find_path(
READLINE_INCLUDE_DIR
readline/readline.h
HINTS
READLINE_DIR
${FIND_PATH_OPTS}
)
find_library(READLINE_LIBRARY
NAMES readline
HINTS ${READLINE_DIR}
)
if(READLINE_INCLUDE_DIR AND READLINE_LIBRARY)
set(LINEEDITING_FOUND TRUE)
set(LINEEDITING_INCLUDE_DIRS ${READLINE_INCLUDE_DIR})
set(LINEEDITING_LIBRARIES ${READLINE_LIBRARY})
if(NOT TARGET LineEditing::LineEditing)
add_library(LineEditing::LineEditing UNKNOWN IMPORTED)
set_target_properties(LineEditing::LineEditing PROPERTIES
IMPORTED_LOCATION "${READLINE_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${READLINE_INCLUDE_DIR}"
INTERFACE_COMPILE_DEFINITIONS "WITH_READLINE"
)
endif()
endif()
endif()
find_package_handle_standard_args(LineEditing
REQUIRED_VARS LINEEDITING_LIBRARIES LINEEDITING_INCLUDE_DIRS
FAIL_MESSAGE "Could not find libedit or readline library"
)