[CMake] Abstract Config.h generation for Xcode
This patch abstracts the generation of Config.h and creates a dummy project entry point to allow generation of LLDB's Config header without performing a full CMake configuration. This will enable the Xcode project to generate LLDB's Config header. llvm-svn: 301553
This commit is contained in:
parent
5d790fc03c
commit
2246972ecc
@ -1,8 +1,15 @@
|
||||
cmake_minimum_required(VERSION 3.4.3)
|
||||
|
||||
include(cmake/modules/LLDBStandalone.cmake)
|
||||
include(cmake/modules/LLDBConfig.cmake)
|
||||
include(cmake/modules/AddLLDB.cmake)
|
||||
# Add path for custom modules
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_MODULE_PATH}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules"
|
||||
)
|
||||
|
||||
include(LLDBStandalone)
|
||||
include(LLDBConfig)
|
||||
include(AddLLDB)
|
||||
|
||||
if (CMAKE_SYSTEM_NAME MATCHES "Windows|Android")
|
||||
set(LLDB_DEFAULT_DISABLE_LIBEDIT 1)
|
||||
|
||||
14
lldb/cmake/XcodeHeaderGenerator/CMakeLists.txt
Normal file
14
lldb/cmake/XcodeHeaderGenerator/CMakeLists.txt
Normal file
@ -0,0 +1,14 @@
|
||||
cmake_minimum_required(VERSION 3.4.3)
|
||||
|
||||
project(XcodeConfig C CXX)
|
||||
|
||||
set(CMAKE_MODULE_PATH
|
||||
${CMAKE_MODULE_PATH}
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/.."
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../modules"
|
||||
)
|
||||
|
||||
set(LLDB_CONFIG_HEADER_INPUT
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/../../include/lldb/Host/Config.h.cmake)
|
||||
|
||||
include(LLDBGenerateConfig)
|
||||
@ -1,7 +1,4 @@
|
||||
include(CheckCXXSymbolExists)
|
||||
include(CheckSymbolExists)
|
||||
include(CheckIncludeFile)
|
||||
include(CheckIncludeFiles)
|
||||
|
||||
set(LLDB_PROJECT_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
set(LLDB_SOURCE_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/source")
|
||||
@ -429,24 +426,4 @@ if ((CMAKE_SYSTEM_NAME MATCHES "Android") AND LLVM_BUILD_STATIC AND
|
||||
endif()
|
||||
|
||||
find_package(Backtrace)
|
||||
set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
|
||||
check_symbol_exists(ppoll poll.h HAVE_PPOLL)
|
||||
set(CMAKE_REQUIRED_DEFINITIONS)
|
||||
check_symbol_exists(sigaction signal.h HAVE_SIGACTION)
|
||||
|
||||
include(CheckIncludeFile)
|
||||
check_include_file(termios.h HAVE_TERMIOS_H)
|
||||
check_include_files("sys/types.h;sys/event.h" HAVE_SYS_EVENT_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)
|
||||
include(LLDBGenerateConfig)
|
||||
|
||||
35
lldb/cmake/modules/LLDBGenerateConfig.cmake
Normal file
35
lldb/cmake/modules/LLDBGenerateConfig.cmake
Normal file
@ -0,0 +1,35 @@
|
||||
# This file contains all the logic for running configure-time checks
|
||||
|
||||
include(CheckSymbolExists)
|
||||
include(CheckIncludeFile)
|
||||
include(CheckIncludeFiles)
|
||||
|
||||
set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE)
|
||||
check_symbol_exists(ppoll poll.h HAVE_PPOLL)
|
||||
set(CMAKE_REQUIRED_DEFINITIONS)
|
||||
check_symbol_exists(sigaction signal.h HAVE_SIGACTION)
|
||||
|
||||
check_include_file(termios.h HAVE_TERMIOS_H)
|
||||
check_include_files("sys/types.h;sys/event.h" HAVE_SYS_EVENT_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()
|
||||
|
||||
if(NOT LLDB_CONFIG_HEADER_INPUT)
|
||||
set(LLDB_CONFIG_HEADER_INPUT ${LLDB_INCLUDE_ROOT}/lldb/Host/Config.h.cmake)
|
||||
endif()
|
||||
|
||||
if(NOT LLDB_CONFIG_HEADER_OUTPUT)
|
||||
set(LLDB_CONFIG_HEADER_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/include/lldb/Host/Config.h)
|
||||
endif()
|
||||
|
||||
# This should be done at the end
|
||||
configure_file(
|
||||
${LLDB_CONFIG_HEADER_INPUT}
|
||||
${LLDB_CONFIG_HEADER_OUTPUT}
|
||||
)
|
||||
Loading…
x
Reference in New Issue
Block a user