1# This file contains all the logic for running configure-time checks
2
3include(CheckSymbolExists)
4include(CheckIncludeFile)
5include(CheckIncludeFiles)
6include(CheckLibraryExists)
7
8set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
9check_symbol_exists(ppoll poll.h HAVE_PPOLL)
10set(CMAKE_REQUIRED_DEFINITIONS)
11check_symbol_exists(sigaction signal.h HAVE_SIGACTION)
12check_cxx_symbol_exists(accept4 "sys/socket.h" HAVE_ACCEPT4)
13
14check_include_file(termios.h HAVE_TERMIOS_H)
15check_include_files("sys/types.h;sys/event.h" HAVE_SYS_EVENT_H)
16
17check_cxx_symbol_exists(process_vm_readv "sys/uio.h" HAVE_PROCESS_VM_READV)
18check_cxx_symbol_exists(__NR_process_vm_readv "sys/syscall.h" HAVE_NR_PROCESS_VM_READV)
19
20check_library_exists(compression compression_encode_buffer "" HAVE_LIBCOMPRESSION)
21
22# These checks exist in LLVM's configuration, so I want to match the LLVM names
23# so that the check isn't duplicated, but we translate them into the LLDB names
24# so that I don't have to change all the uses at the moment.
25set(LLDB_CONFIG_TERMIOS_SUPPORTED ${HAVE_TERMIOS_H})
26if(NOT UNIX)
27  set(LLDB_DISABLE_POSIX 1)
28endif()
29
30if(NOT LLDB_CONFIG_HEADER_INPUT)
31 set(LLDB_CONFIG_HEADER_INPUT ${LLDB_INCLUDE_ROOT}/lldb/Host/Config.h.cmake)
32endif()
33
34if(NOT LLDB_CONFIG_HEADER_OUTPUT)
35 set(LLDB_CONFIG_HEADER_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/lldb/Host/Config.h)
36endif()
37
38# This should be done at the end
39configure_file(
40  ${LLDB_CONFIG_HEADER_INPUT}
41  ${LLDB_CONFIG_HEADER_OUTPUT}
42  )
43