1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
set( BUILD_LLDB 0 )
set( LIBLLDB "" )
set( LIBLLDB_INCLUDE "" )
set( LIBLLDB_INSTALL_NEEDED 0)
set( LLDB_OFFICIAL_FOUND 0)
include(FindLibLLDB)
if (UNIX AND NOT APPLE)
set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC" )
set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC" )
endif()
if ( APPLE )
add_definitions(-fPIC)
endif()
if (WITH_LLDB MATCHES 1)
if ( APPLE )
set ( LIBLLDB ${CL_SRC_ROOT}/sdk/lldb/unix/lib/liblldb.3.5.0.dylib )
set ( LIBLLDB_INCLUDE ${CL_SRC_ROOT}/sdk/lldb/unix/include )
set ( BUILD_LLDB 1 )
set ( LIBLLDB_INSTALL_NEEDED 1 )
## update search path to include C++11 headers
include_directories(/usr/lib/c++/v1/)
else()
FIND_LLDB_OFFICIAL()
if ( LIBLLDB STREQUAL "LIBLLDB-NOTFOUND" )
## could not locate an official package, try a custom build
find_library(LIBEDIT_LIB NAMES libedit.so HINTS /usr/local/lib /usr/lib ${CMAKE_INSTALL_LIBDIR}) # Our liblldb.so depends on libedit.so
if(LLDB_OFFICIAL_FOUND MATCHES 0)
set ( BUILD_LLDB 0 )
else()
message("-- libedit.so is not installed. For lldb support, please install the libedit development package and try again.")
endif()
else()
set ( BUILD_LLDB 1 )
endif()
endif()
if ( BUILD_LLDB MATCHES 1 )
message("-- LIBLLDB is set to ${LIBLLDB}")
message("-- LIBLLDB_INCLUDE is set to ${LIBLLDB_INCLUDE}")
include_directories(${LIBLLDB_INCLUDE})
link_directories(${LLDB_LIB_PATH})
## lldb requires C++11
add_definitions(-std=c++11)
set(PLUGIN_NAME "LLDBDebugger")
project(LLDBDebugger)
if ( APPLE )
## Under Apple, we only support monolithic build of wxWidgets
find_package(wxWidgets COMPONENTS std REQUIRED)
else ( APPLE )
find_package(wxWidgets COMPONENTS std aui propgrid stc richtext ribbon REQUIRED)
endif ( APPLE )
# wxWidgets include (this will do all the magic to configure everything)
include( "${wxWidgets_USE_FILE}" )
# Include paths
include_directories("${CL_SRC_ROOT}/Plugin"
"${CL_SRC_ROOT}/sdk/wxsqlite3/include"
"${CL_SRC_ROOT}/CodeLite"
"${CL_SRC_ROOT}/PCH"
"${CL_SRC_ROOT}/Interfaces")
## Definitions
add_definitions(-DWXUSINGDLL_WXSQLITE3)
add_definitions(-DWXUSINGDLL_CL)
add_definitions(-DWXUSINGDLL_SDK)
## By default, use the sources under the current folder
FILE(GLOB PLUGIN_SRCS "*.cpp")
# Define the output - shared library
add_library(${PLUGIN_NAME} SHARED ${PLUGIN_SRCS})
target_link_libraries(LLDBDebugger LLDBProtocol)
# Codelite plugins doesn't use the "lib" prefix.
set_target_properties(${PLUGIN_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PLUGIN_NAME}
${LINKER_OPTIONS}
${wxWidgets_LIBRARIES}
${LIBLLDB}
libcodelite
plugin
)
# Installation destination
CL_INSTALL_PLUGIN(${PLUGIN_NAME})
add_subdirectory(LLDBProtocol)
add_subdirectory(codelite-lldb)
else()
message(" **** NOTICE: lldb is not available. You could try installing the lldb-3.4-dev (or equivalent) package")
endif()
endif(WITH_LLDB MATCHES 1)
|