forked from OSchip/llvm-project
87 lines
2.8 KiB
CMake
87 lines
2.8 KiB
CMake
include_directories(.)
|
|
|
|
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 ()
|
|
|
|
set(lldbBase_SOURCES
|
|
lldb.cpp
|
|
)
|
|
|
|
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
set(LLDB_VERS_GENERATED_FILE ${LLDB_BINARY_DIR}/source/LLDB_vers.c)
|
|
add_custom_command(OUTPUT ${LLDB_VERS_GENERATED_FILE}
|
|
COMMAND ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
|
|
${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj liblldb_core
|
|
> ${LLDB_VERS_GENERATED_FILE}
|
|
DEPENDS ${LLDB_SOURCE_DIR}/scripts/generate-vers.pl
|
|
${LLDB_SOURCE_DIR}/lldb.xcodeproj/project.pbxproj)
|
|
set_source_files_properties(${LLDB_VERS_GENERATED_FILE} PROPERTIES GENERATED 1)
|
|
# Add this to lldbBase since lldb.cpp uses the symbol defined here.
|
|
list(APPEND lldbBase_SOURCES ${LLDB_VERS_GENERATED_FILE})
|
|
add_custom_target(lldbGeneratedVersion
|
|
DEPENDS ${LLDB_VERS_GENERATED_FILE})
|
|
endif()
|
|
|
|
add_lldb_library(lldbBase
|
|
${lldbBase_SOURCES}
|
|
)
|
|
|
|
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
|
add_dependencies(lldbBase lldbGeneratedVersion)
|
|
endif()
|
|
|
|
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.
|
|
|