forked from ton-blockchain/ton
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
49 lines (41 loc) · 1.5 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 3.0.2 FATAL_ERROR)
if (NOT OPENSSL_FOUND)
find_package(OpenSSL REQUIRED)
endif()
set(TERMINAL_SOURCE
terminal.cpp
terminal.h
terminal.hpp
)
add_library(terminal STATIC ${TERMINAL_SOURCE})
target_include_directories(terminal PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>/..
${OPENSSL_INCLUDE_DIR}
)
target_link_libraries(terminal PRIVATE tdutils tdactor )
if (NOT READLINE_FOUND)
find_package(Readline)
endif()
if (NOT READLINE_FOUND)
message(STATUS "Could NOT find Readline (this is NOT an error)")
else()
message(STATUS "Found Readline: ${READLINE_INCLUDE_DIR} ${READLINE_LIBRARY}")
if (NOT USABLE_READLINE_FOUND)
set(CMAKE_REQUIRED_INCLUDES "${READLINE_INCLUDE_DIR}")
set(CMAKE_REQUIRED_LIBRARIES "${READLINE_LIBRARY}")
include(CheckCXXSourceCompiles)
unset(USABLE_READLINE_FOUND CACHE)
check_cxx_source_compiles("#include <stdio.h>\n#include <readline/readline.h>\nint main() { rl_free(0); }" USABLE_READLINE_FOUND)
if (NOT USABLE_READLINE_FOUND)
message(STATUS "Found Readline is too old, ignore it (this is NOT an error)")
unset(READLINE_INCLUDE_DIR CACHE)
unset(READLINE_LIBRARY CACHE)
endif()
endif()
if (USABLE_READLINE_FOUND)
target_link_libraries(terminal PRIVATE ${READLINE_LIBRARY})
target_include_directories(terminal SYSTEM PRIVATE ${READLINE_INCLUDE_DIR})
target_compile_definitions(terminal PRIVATE -DUSE_READLINE=1)
endif()
endif()