File: CMakeLists.txt

package info (click to toggle)
swi-prolog 9.0.4%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 82,408 kB
  • sloc: ansic: 387,503; perl: 359,326; cpp: 6,613; lisp: 6,247; java: 5,540; sh: 3,147; javascript: 2,668; python: 1,900; ruby: 1,594; yacc: 845; makefile: 428; xml: 317; sed: 12; sql: 6
file content (57 lines) | stat: -rw-r--r-- 1,811 bytes parent folder | download | duplicates (2)
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
cmake_minimum_required(VERSION 3.5)
project(swipl-readline)

include("../cmake/PrologPackage.cmake")

if(POLICY CMP0074)
  cmake_policy(SET CMP0074 NEW)
endif()
find_package(Curses)
find_package(Readline)

if(APPLE AND
   READLINE_FOUND AND
   NOT Readline_INCLUDE_DIR MATCHES "/local/" AND
   NOT Readline_INCLUDE_DIR MATCHES "/opt/homebrew/" AND
   NOT Readline_INCLUDE_DIR MATCHES "${MACOSX_DEPENDENCIES_FROM}")
  message(WARNING "Found readline at ${Readline_INCLUDE_DIR}, which
	  looks like Apple readline.  We need GNU readline.  Dropping
	  the readline interface")
  set(READLINE_FOUND OFF CACHE BOOL
      "Forced readline to OFF because headers come from Apple" FORCE)
endif()

if(READLINE_FOUND)
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${Readline_LIBRARY})
set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${Readline_LIBRARY})
# Headers depend on <stdio.h>
set(CMAKE_REQUIRED_FLAGS "-include stdio.h")
set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${Readline_INCLUDE_DIR})

AC_CHECK_HEADERS(poll.h readline/readline.h readline/history.h)

AC_CHECK_FUNCS(poll
	       rl_completion_matches rl_insert_close
	       rl_set_prompt rl_clear_pending_input
	       rl_cleanup_after_signal
	       rl_filename_completion_function)

check_symbol_exists(rl_readline_state readline/readline.h HAVE_RL_READLINE_STATE)
check_symbol_exists(rl_done           readline/readline.h HAVE_RL_DONE)
check_symbol_exists(rl_event_hook     readline/readline.h HAVE_RL_EVENT_HOOK)

configure_file(config.h.cmake config.h)

swipl_plugin(
    readline
    MODULE readline4pl
    C_SOURCES readline4pl.c
    C_LIBS ${Readline_LIBRARY}
    C_INCLUDE_DIR ${Readline_INCLUDE_DIR}
    PL_LIBS readline.pl)

pkg_doc(readline
	SECTION
	    SOURCE readline.pl libreadline.tex)

endif(READLINE_FOUND)