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.