summaryrefslogtreecommitdiff
path: root/cmake/FindEditline.cmake
diff options
context:
space:
mode:
authorAndrew V. Jones <andrew.jones@vector.com>2020-07-17 18:09:14 +0100
committerGitHub <noreply@github.com>2020-07-17 10:09:14 -0700
commite8df6f67cc2654f50d49995377a4b411668235e1 (patch)
treefb8c2b35197e5821ac15c78b74da0d2de8eec3fc /cmake/FindEditline.cmake
parent0988217562006d3f59e01dc261f39121df6d75f5 (diff)
Support for using 'libedit' over 'readline' #4571 (#4579)
Signed-off-by: Andrew V. Jones <andrew.jones@vector.com>
Diffstat (limited to 'cmake/FindEditline.cmake')
-rw-r--r--cmake/FindEditline.cmake40
1 files changed, 40 insertions, 0 deletions
diff --git a/cmake/FindEditline.cmake b/cmake/FindEditline.cmake
new file mode 100644
index 000000000..fe4001173
--- /dev/null
+++ b/cmake/FindEditline.cmake
@@ -0,0 +1,40 @@
+# Find Editline
+# Editline_FOUND - found Editline lib
+# Editline_INCLUDE_DIR - the Editline include directory
+# Editline_LIBRARIES - Libraries needed to use Editline
+# Editline_COMPENTRY_FUNC_RETURNS_CHARPTR - Indicates if compentry function
+# returns a (char *)
+
+find_path(Editline_INCLUDE_DIR NAMES histedit.h)
+find_library(Editline_LIBRARIES NAMES edit libedit)
+
+if(Editline_INCLUDE_DIR)
+ # Check which standard of editline is installed on the system.
+ # https://github.com/CVC4/CVC4/issues/702
+ include(CheckCXXSourceCompiles)
+ set(CMAKE_REQUIRED_QUIET TRUE)
+ set(CMAKE_REQUIRED_LIBRARIES ${Editline_LIBRARIES})
+ set(CMAKE_REQUIRED_INCLUDES ${Editline_INCLUDE_DIR})
+ check_cxx_source_compiles(
+ "#include <stdio.h>
+ #include <editline/readline.h>
+ char* foo(const char*, int) { return (char*)0; }
+ int main() { rl_completion_entry_function = foo; return 0; }"
+ Editline_COMPENTRY_FUNC_RETURNS_CHARPTR
+ )
+ unset(CMAKE_REQUIRED_QUIET)
+ unset(CMAKE_REQUIRED_LIBRARIES)
+ unset(CMAKE_REQUIRED_INCLUDES)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(Editline
+ DEFAULT_MSG Editline_INCLUDE_DIR Editline_LIBRARIES)
+mark_as_advanced(
+ Editline_INCLUDE_DIR
+ Editline_LIBRARIES
+ Editline_COMPENTRY_FUNC_RETURNS_CHARPTR
+)
+if(Editline_LIBRARIES)
+ message(STATUS "Editline library: ${Editline_LIBRARIES}")
+endif()
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback