forked from OSchip/llvm-project
[lldb/Host] Use cmakedefine01 for LLDB_ENABLE_TERMIOS
This renames LLDB_CONFIG_TERMIOS_SUPPORTED to LLDB_ENABLE_TERMIOS. It now also uses cmakedefine01 to keep things consistent with out other optional dependencies. But more importantly it won't silently fail when you forget to include Config.h.
This commit is contained in:
parent
4b15c6e2a1
commit
61a2bdadb3
|
@ -23,7 +23,7 @@ check_library_exists(compression compression_encode_buffer "" HAVE_LIBCOMPRESSIO
|
|||
# These checks exist in LLVM's configuration, so I want to match the LLVM names
|
||||
# so that the check isn't duplicated, but we translate them into the LLDB names
|
||||
# so that I don't have to change all the uses at the moment.
|
||||
set(LLDB_CONFIG_TERMIOS_SUPPORTED ${HAVE_TERMIOS_H})
|
||||
set(LLDB_ENABLE_TERMIOS ${HAVE_TERMIOS_H})
|
||||
if(NOT UNIX)
|
||||
set(LLDB_DISABLE_POSIX 1)
|
||||
endif()
|
||||
|
|
|
@ -9,8 +9,6 @@
|
|||
#ifndef LLDB_HOST_CONFIG_H
|
||||
#define LLDB_HOST_CONFIG_H
|
||||
|
||||
#cmakedefine LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
|
||||
#cmakedefine01 LLDB_EDITLINE_USE_WCHAR
|
||||
|
||||
#cmakedefine01 LLDB_HAVE_EL_RFUNC_T
|
||||
|
@ -33,6 +31,8 @@
|
|||
#cmakedefine HAVE_LIBCOMPRESSION
|
||||
#endif
|
||||
|
||||
#cmakedefine01 LLDB_ENABLE_TERMIOS
|
||||
|
||||
#cmakedefine01 LLDB_ENABLE_LZMA
|
||||
|
||||
#cmakedefine01 LLDB_ENABLE_CURSES
|
||||
|
|
|
@ -117,7 +117,7 @@ protected:
|
|||
// Member variables
|
||||
Terminal m_tty; ///< A terminal
|
||||
int m_tflags; ///< Cached tflags information.
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
std::unique_ptr<struct termios>
|
||||
m_termios_up; ///< Cached terminal state information.
|
||||
#endif
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
#include <termios.h>
|
||||
#endif
|
||||
|
||||
|
@ -25,7 +25,7 @@ bool Terminal::IsATerminal() const { return m_fd >= 0 && ::isatty(m_fd); }
|
|||
|
||||
bool Terminal::SetEcho(bool enabled) {
|
||||
if (FileDescriptorIsValid()) {
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
if (IsATerminal()) {
|
||||
struct termios fd_termios;
|
||||
if (::tcgetattr(m_fd, &fd_termios) == 0) {
|
||||
|
@ -47,14 +47,14 @@ bool Terminal::SetEcho(bool enabled) {
|
|||
return ::tcsetattr(m_fd, TCSANOW, &fd_termios) == 0;
|
||||
}
|
||||
}
|
||||
#endif // #ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#endif // #if LLDB_ENABLE_TERMIOS
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Terminal::SetCanonical(bool enabled) {
|
||||
if (FileDescriptorIsValid()) {
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
if (IsATerminal()) {
|
||||
struct termios fd_termios;
|
||||
if (::tcgetattr(m_fd, &fd_termios) == 0) {
|
||||
|
@ -76,7 +76,7 @@ bool Terminal::SetCanonical(bool enabled) {
|
|||
return ::tcsetattr(m_fd, TCSANOW, &fd_termios) == 0;
|
||||
}
|
||||
}
|
||||
#endif // #ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#endif // #if LLDB_ENABLE_TERMIOS
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ bool Terminal::SetCanonical(bool enabled) {
|
|||
// Default constructor
|
||||
TerminalState::TerminalState()
|
||||
: m_tty(), m_tflags(-1),
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
m_termios_up(),
|
||||
#endif
|
||||
m_process_group(-1) {
|
||||
|
@ -96,7 +96,7 @@ TerminalState::~TerminalState() {}
|
|||
void TerminalState::Clear() {
|
||||
m_tty.Clear();
|
||||
m_tflags = -1;
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
m_termios_up.reset();
|
||||
#endif
|
||||
m_process_group = -1;
|
||||
|
@ -111,13 +111,13 @@ bool TerminalState::Save(int fd, bool save_process_group) {
|
|||
#ifndef LLDB_DISABLE_POSIX
|
||||
m_tflags = ::fcntl(fd, F_GETFL, 0);
|
||||
#endif
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
if (m_termios_up == nullptr)
|
||||
m_termios_up.reset(new struct termios);
|
||||
int err = ::tcgetattr(fd, m_termios_up.get());
|
||||
if (err != 0)
|
||||
m_termios_up.reset();
|
||||
#endif // #ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#endif // #if LLDB_ENABLE_TERMIOS
|
||||
#ifndef LLDB_DISABLE_POSIX
|
||||
if (save_process_group)
|
||||
m_process_group = ::tcgetpgrp(0);
|
||||
|
@ -127,7 +127,7 @@ bool TerminalState::Save(int fd, bool save_process_group) {
|
|||
} else {
|
||||
m_tty.Clear();
|
||||
m_tflags = -1;
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
m_termios_up.reset();
|
||||
#endif
|
||||
m_process_group = -1;
|
||||
|
@ -144,10 +144,10 @@ bool TerminalState::Restore() const {
|
|||
if (TFlagsIsValid())
|
||||
fcntl(fd, F_SETFL, m_tflags);
|
||||
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
if (TTYStateIsValid())
|
||||
tcsetattr(fd, TCSANOW, m_termios_up.get());
|
||||
#endif // #ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#endif // #if LLDB_ENABLE_TERMIOS
|
||||
|
||||
if (ProcessGroupIsValid()) {
|
||||
// Save the original signal handler.
|
||||
|
@ -176,7 +176,7 @@ bool TerminalState::TFlagsIsValid() const { return m_tflags != -1; }
|
|||
|
||||
// Returns true if m_ttystate is valid
|
||||
bool TerminalState::TTYStateIsValid() const {
|
||||
#ifdef LLDB_CONFIG_TERMIOS_SUPPORTED
|
||||
#if LLDB_ENABLE_TERMIOS
|
||||
return m_termios_up != nullptr;
|
||||
#else
|
||||
return false;
|
||||
|
|
Loading…
Reference in New Issue