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) 10check_symbol_exists(ptsname_r stdlib.h HAVE_PTSNAME_R) 11set(CMAKE_REQUIRED_DEFINITIONS) 12check_symbol_exists(sigaction signal.h HAVE_SIGACTION) 13check_cxx_symbol_exists(accept4 "sys/socket.h" HAVE_ACCEPT4) 14 15check_include_file(termios.h HAVE_TERMIOS_H) 16check_include_file("sys/types.h" HAVE_SYS_TYPES_H) 17check_include_files("sys/types.h;sys/event.h" HAVE_SYS_EVENT_H) 18 19check_cxx_symbol_exists(process_vm_readv "sys/uio.h" HAVE_PROCESS_VM_READV) 20check_cxx_symbol_exists(__NR_process_vm_readv "sys/syscall.h" HAVE_NR_PROCESS_VM_READV) 21 22check_library_exists(compression compression_encode_buffer "" HAVE_LIBCOMPRESSION) 23 24# These checks exist in LLVM's configuration, so I want to match the LLVM names 25# so that the check isn't duplicated, but we translate them into the LLDB names 26# so that I don't have to change all the uses at the moment. 27set(LLDB_ENABLE_TERMIOS ${HAVE_TERMIOS_H}) 28if (UNIX) 29 set(LLDB_ENABLE_POSIX ON) 30else() 31 set(LLDB_ENABLE_POSIX OFF) 32endif() 33 34if(NOT LLDB_CONFIG_HEADER_INPUT) 35 set(LLDB_CONFIG_HEADER_INPUT ${LLDB_INCLUDE_ROOT}/lldb/Host/Config.h.cmake) 36endif() 37 38if(NOT LLDB_CONFIG_HEADER_OUTPUT) 39 set(LLDB_CONFIG_HEADER_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/lldb/Host/Config.h) 40endif() 41 42# This should be done at the end 43configure_file( 44 ${LLDB_CONFIG_HEADER_INPUT} 45 ${LLDB_CONFIG_HEADER_OUTPUT} 46 ) 47