Summary: These changes aren't everything what is needed for the CMake target, but it's significantly approaching it. These changes shouldn't effect the build process on other platforms. Patch by Kamil Rytarowski, thanks! Reviewers: joerg, brucem Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D13711 llvm-svn: 251164
93 lines
2.9 KiB
CMake
93 lines
2.9 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 ()
|
|
|
|
if ( CMAKE_SYSTEM_NAME MATCHES "NetBSD" )
|
|
include_directories(
|
|
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.
|