mirror of
https://github.com/intel/llvm.git
synced 2026-01-26 12:26:52 +08:00
This creates a new top-level folder called Initialization which is intended to hold code specific to LLDB system initialization. Currently this holds the Initialize() and Terminate() functions, as well as the fatal error handler. This provides a means to break the massive dependency cycle which is caused by the fact that Debugger depends on Initialize and Terminate which then depends on the entire LLDB project. With this structure, it will be possible for applications to invoke lldb_private::Initialize() directly, and have that invoke Debugger::Initialize. llvm-svn: 232768
75 lines
2.2 KiB
CMake
75 lines
2.2 KiB
CMake
include_directories(.)
|
|
|
|
if (__ANDROID_NDK__ OR (CMAKE_SYSTEM_NAME MATCHES "Windows"))
|
|
set(LLDB_DEFAULT_DISABLE_LIBEDIT 1)
|
|
else()
|
|
set(LLDB_DEFAULT_DISABLE_LIBEDIT 0)
|
|
endif ()
|
|
|
|
set(LLDB_DISABLE_LIBEDIT ${LLDB_DEFAULT_DISABLE_LIBEDIT} CACHE BOOL "Disables the use of editline.")
|
|
if (LLDB_DISABLE_LIBEDIT)
|
|
add_definitions( -DLLDB_DISABLE_LIBEDIT )
|
|
endif()
|
|
|
|
if ( CMAKE_SYSTEM_NAME MATCHES "Linux" )
|
|
include_directories(
|
|
Plugins/Process/Linux
|
|
Plugins/Process/POSIX
|
|
)
|
|
endif ()
|
|
|
|
if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" )
|
|
include_directories(
|
|
Plugins/Process/FreeBSD
|
|
Plugins/Process/POSIX
|
|
)
|
|
endif ()
|
|
|
|
add_lldb_library(lldbBase
|
|
lldb.cpp
|
|
)
|
|
|
|
add_subdirectory(Breakpoint)
|
|
add_subdirectory(Commands)
|
|
add_subdirectory(Core)
|
|
add_subdirectory(DataFormatters)
|
|
add_subdirectory(Expression)
|
|
add_subdirectory(Host)
|
|
add_subdirectory(Initialization)
|
|
add_subdirectory(Interpreter)
|
|
add_subdirectory(Plugins)
|
|
add_subdirectory(Symbol)
|
|
add_subdirectory(Target)
|
|
add_subdirectory(Utility)
|
|
|
|
# Build API last. Since liblldb needs to link against every other target, it needs
|
|
# those targets to have already been created.
|
|
add_subdirectory(API)
|
|
|
|
# Determine LLDB revision and repository. GetSourceVersion and GetRepositoryPath are shell-scripts, and as
|
|
# such will not work on Windows.
|
|
if ( NOT CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
|
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/utils/GetSourceVersion ${LLDB_SOURCE_DIR}
|
|
OUTPUT_VARIABLE LLDB_REVISION)
|
|
if ( LLDB_REVISION )
|
|
string(REGEX REPLACE "(\r?\n)+$" "" LLDB_REVISION ${LLDB_REVISION})
|
|
endif()
|
|
|
|
execute_process(COMMAND ${CMAKE_SOURCE_DIR}/utils/GetRepositoryPath ${LLDB_SOURCE_DIR}
|
|
OUTPUT_VARIABLE LLDB_REPOSITORY)
|
|
if ( LLDB_REPOSITORY )
|
|
# Replace newline characters with spaces
|
|
string(REGEX REPLACE "(\r?\n)+" " " LLDB_REPOSITORY ${LLDB_REPOSITORY})
|
|
|
|
# Remove trailing spaces
|
|
string(REGEX REPLACE "(\ )+$" "" LLDB_REPOSITORY ${LLDB_REPOSITORY})
|
|
endif()
|
|
|
|
set_property(
|
|
SOURCE lldb.cpp
|
|
PROPERTY COMPILE_DEFINITIONS "LLDB_REVISION=\"${LLDB_REVISION}\"" "LLDB_REPOSITORY=\"${LLDB_REPOSITORY}\"")
|
|
endif ()
|
|
# FIXME: implement svn/git revision and repository parsing solution on Windows. There is an SVN-only
|
|
# revision parsing solution in tools/clang/lib/Basic/CMakelists.txt.
|
|
|