Index: lldb/trunk/cmake/modules/LLDBConfig.cmake =================================================================== --- lldb/trunk/cmake/modules/LLDBConfig.cmake +++ lldb/trunk/cmake/modules/LLDBConfig.cmake @@ -270,8 +270,8 @@ message(STATUS "LLDB version: ${LLDB_VERSION}") include_directories(BEFORE - ${CMAKE_CURRENT_BINARY_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/include + ${CMAKE_CURRENT_BINARY_DIR}/include ) if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) @@ -281,6 +281,17 @@ FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE + PATTERN ".cmake" EXCLUDE + PATTERN "Config.h" EXCLUDE + ) + + install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/ + COMPONENT lldb_headers + DESTINATION include + FILES_MATCHING + PATTERN "*.h" + PATTERN ".svn" EXCLUDE + PATTERN ".cmake" EXCLUDE ) endif() @@ -421,3 +432,18 @@ endif() find_package(Backtrace) + +check_include_file(termios.h HAVE_TERMIOS_H) + +# 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}) +if(NOT UNIX) + set(LLDB_DISABLE_POSIX 1) +endif() + +# This should be done at the end +configure_file( + ${LLDB_INCLUDE_ROOT}/lldb/Host/Config.h.cmake + ${CMAKE_CURRENT_BINARY_DIR}/include/lldb/Host/Config.h) Index: lldb/trunk/include/lldb/Host/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/Config.h +++ lldb/trunk/include/lldb/Host/Config.h @@ -7,45 +7,21 @@ // //===----------------------------------------------------------------------===// -#ifndef liblldb_Config_h_ -#define liblldb_Config_h_ - +#ifndef LLDB_HOST_CONFIG_H +#define LLDB_HOST_CONFIG_H + #if defined(__APPLE__) -#include "lldb/Host/macosx/Config.h" - -#elif defined(__ANDROID__) - -#include "lldb/Host/android/Config.h" - -#elif defined(__linux__) || defined(__GNU__) - -#include "lldb/Host/linux/Config.h" - -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) - -#include "lldb/Host/freebsd/Config.h" - -#elif defined(__NetBSD__) - -#include "lldb/Host/netbsd/Config.h" - -#elif defined(__OpenBSD__) - -#include "lldb/Host/openbsd/Config.h" - -#elif defined(__MINGW__) || defined(__MINGW32__) - -#include "lldb/Host/mingw/Config.h" - -#elif defined(_MSC_VER) +// This block of code only exists to keep the Xcode project working in the +// absence of a configuration step. +#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 -#include "lldb/Host/msvc/Config.h" +#define HAVE_SYS_EVENT_H 1 #else -#error undefined platform +#error This file is only used by the Xcode build. #endif -#endif // #ifndef liblldb_Config_h_ +#endif // #ifndef LLDB_HOST_CONFIG_H Index: lldb/trunk/include/lldb/Host/Config.h.cmake =================================================================== --- lldb/trunk/include/lldb/Host/Config.h.cmake +++ lldb/trunk/include/lldb/Host/Config.h.cmake @@ -0,0 +1,19 @@ +//===-- Config.h -----------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLDB_HOST_CONFIG_H +#define LLDB_HOST_CONFIG_H + +#cmakedefine01 LLDB_CONFIG_TERMIOS_SUPPORTED + +#cmakedefine LLDB_DISABLE_POSIX + +#cmakedefine01 HAVE_SYS_EVENT_H + +#endif // #ifndef LLDB_HOST_CONFIG_H Index: lldb/trunk/include/lldb/Host/android/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/android/Config.h +++ lldb/trunk/include/lldb/Host/android/Config.h @@ -1,28 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_Platform_Config_h_ -#define liblldb_Platform_Config_h_ - -#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -//#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -//#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -//#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/include/lldb/Host/freebsd/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/freebsd/Config.h +++ lldb/trunk/include/lldb/Host/freebsd/Config.h @@ -1,28 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_Platform_Config_h_ -#define liblldb_Platform_Config_h_ - -#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -//#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -//#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/include/lldb/Host/linux/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/linux/Config.h +++ lldb/trunk/include/lldb/Host/linux/Config.h @@ -1,28 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_Platform_Config_h_ -#define liblldb_Platform_Config_h_ - -#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -//#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -//#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/include/lldb/Host/macosx/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/macosx/Config.h +++ lldb/trunk/include/lldb/Host/macosx/Config.h @@ -1,28 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_Platform_Config_h_ -#define liblldb_Platform_Config_h_ - -#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/include/lldb/Host/mingw/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/mingw/Config.h +++ lldb/trunk/include/lldb/Host/mingw/Config.h @@ -1,30 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_Platform_Config_h_ -#define liblldb_Platform_Config_h_ - -#define LLDB_DISABLE_POSIX - -//#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -//#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -//#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -//#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/include/lldb/Host/msvc/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/msvc/Config.h +++ lldb/trunk/include/lldb/Host/msvc/Config.h @@ -1,30 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_host_msvc_Config_h_ -#define liblldb_host_msvc_Config_h_ - -#define LLDB_DISABLE_POSIX - -//#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -//#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -//#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -//#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/include/lldb/Host/netbsd/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/netbsd/Config.h +++ lldb/trunk/include/lldb/Host/netbsd/Config.h @@ -1,28 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_Platform_Config_h_ -#define liblldb_Platform_Config_h_ - -#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -//#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -//#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/include/lldb/Host/openbsd/Config.h =================================================================== --- lldb/trunk/include/lldb/Host/openbsd/Config.h +++ lldb/trunk/include/lldb/Host/openbsd/Config.h @@ -1,28 +0,0 @@ -//===-- Config.h -----------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -//---------------------------------------------------------------------- -// LLDB currently doesn't have a dynamic configuration mechanism, so we -// are going to hardcode things for now. Eventually these files will -// be auto generated by some configuration script that can detect -// platform functionality availability. -//---------------------------------------------------------------------- - -#ifndef liblldb_Platform_Config_h_ -#define liblldb_Platform_Config_h_ - -#define LLDB_CONFIG_TERMIOS_SUPPORTED 1 - -#define LLDB_CONFIG_TILDE_RESOLVES_TO_USER 1 - -//#define LLDB_CONFIG_DLOPEN_RTLD_FIRST_SUPPORTED 1 - -//#define LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED 1 - -#endif // #ifndef liblldb_Platform_Config_h_ Index: lldb/trunk/source/Host/common/File.cpp =================================================================== --- lldb/trunk/source/Host/common/File.cpp +++ lldb/trunk/source/Host/common/File.cpp @@ -307,7 +307,7 @@ Error File::GetFileSpec(FileSpec &file_spec) const { Error error; -#ifdef LLDB_CONFIG_FCNTL_GETPATH_SUPPORTED +#ifdef F_GETPATH if (IsValid()) { char path[PATH_MAX]; if (::fcntl(GetDescriptor(), F_GETPATH, path) == -1)