1if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) 2 add_definitions( -DEXPORT_LIBLLDB ) 3endif() 4 5get_property(LLDB_ALL_PLUGINS GLOBAL PROPERTY LLDB_PLUGINS) 6 7if(NOT LLDB_DISABLE_PYTHON) 8 get_target_property(lldb_scripts_dir swig_wrapper BINARY_DIR) 9 set(lldb_python_wrapper ${lldb_scripts_dir}/LLDBWrapPython.cpp) 10endif() 11 12add_lldb_library(liblldb SHARED 13 SBAddress.cpp 14 SBAttachInfo.cpp 15 SBBlock.cpp 16 SBBreakpoint.cpp 17 SBBreakpointLocation.cpp 18 SBBreakpointName.cpp 19 SBBreakpointOptionCommon.cpp 20 SBBroadcaster.cpp 21 SBCommandInterpreter.cpp 22 SBCommandReturnObject.cpp 23 SBCommunication.cpp 24 SBCompileUnit.cpp 25 SBData.cpp 26 SBDebugger.cpp 27 SBDeclaration.cpp 28 SBError.cpp 29 SBEvent.cpp 30 SBExecutionContext.cpp 31 SBExpressionOptions.cpp 32 SBFileSpec.cpp 33 SBFileSpecList.cpp 34 SBFrame.cpp 35 SBFunction.cpp 36 SBHostOS.cpp 37 SBInitializerOptions.cpp 38 SBInstruction.cpp 39 SBInstructionList.cpp 40 SBLanguageRuntime.cpp 41 SBLaunchInfo.cpp 42 SBLineEntry.cpp 43 SBListener.cpp 44 SBMemoryRegionInfo.cpp 45 SBMemoryRegionInfoList.cpp 46 SBModule.cpp 47 SBModuleSpec.cpp 48 SBPlatform.cpp 49 SBProcess.cpp 50 SBProcessInfo.cpp 51 SBQueue.cpp 52 SBQueueItem.cpp 53 SBSection.cpp 54 SBSourceManager.cpp 55 SBStream.cpp 56 SBStringList.cpp 57 SBStructuredData.cpp 58 SBSymbol.cpp 59 SBSymbolContext.cpp 60 SBSymbolContextList.cpp 61 SBTarget.cpp 62 SBThread.cpp 63 SBThreadCollection.cpp 64 SBThreadPlan.cpp 65 SBTrace.cpp 66 SBTraceOptions.cpp 67 SBType.cpp 68 SBTypeCategory.cpp 69 SBTypeEnumMember.cpp 70 SBTypeFilter.cpp 71 SBTypeFormat.cpp 72 SBTypeNameSpecifier.cpp 73 SBTypeSummary.cpp 74 SBTypeSynthetic.cpp 75 SBValue.cpp 76 SBValueList.cpp 77 SBVariablesOptions.cpp 78 SBWatchpoint.cpp 79 SBUnixSignals.cpp 80 SystemInitializerFull.cpp 81 ${lldb_python_wrapper} 82 83 LINK_LIBS 84 lldbBase 85 lldbBreakpoint 86 lldbCore 87 lldbDataFormatters 88 lldbExpression 89 lldbHost 90 lldbInitialization 91 lldbInterpreter 92 lldbSymbol 93 lldbTarget 94 lldbUtility 95 ${LLDB_ALL_PLUGINS} 96 LINK_COMPONENTS 97 Support 98 ) 99 100if(lldb_python_wrapper) 101 add_dependencies(liblldb swig_wrapper) 102 103 if (MSVC) 104 set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0") 105 else() 106 set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING PROPERTY COMPILE_FLAGS " -w") 107 endif() 108 109 set_source_files_properties(${lldb_python_wrapper} PROPERTIES GENERATED ON) 110 if (CLANG_CL) 111 set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING 112 PROPERTY COMPILE_FLAGS " -Wno-unused-function") 113 endif() 114 if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND 115 NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") 116 set_property(SOURCE ${lldb_python_wrapper} APPEND_STRING 117 PROPERTY COMPILE_FLAGS " -Wno-sequence-point -Wno-cast-qual") 118 endif () 119endif() 120 121set_target_properties(liblldb 122 PROPERTIES 123 VERSION ${LLDB_VERSION} 124) 125 126if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") 127 if (NOT LLDB_EXPORT_ALL_SYMBOLS) 128 # If we're not exporting all symbols, we'll want to explicitly set 129 # the exported symbols here. This prevents 'log enable --stack ...' 130 # from working on some systems but limits the liblldb size. 131 MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb namespace") 132 add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb.exports) 133 else() 134 # Don't use an explicit export. Instead, tell the linker to 135 # export all symbols. 136 MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb and lldb_private namespaces") 137 add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb-private.exports) 138 endif() 139endif() 140 141if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) 142 # Only MSVC has the ABI compatibility problem and avoids using FindPythonLibs, 143 # so only it needs to explicitly link against ${PYTHON_LIBRARY} 144 if (MSVC AND NOT LLDB_DISABLE_PYTHON) 145 target_link_libraries(liblldb PRIVATE ${PYTHON_LIBRARY}) 146 endif() 147else() 148 set_target_properties(liblldb 149 PROPERTIES 150 OUTPUT_NAME lldb 151 ) 152endif() 153 154if(LLDB_BUILD_FRAMEWORK) 155 include(LLDBFramework) 156endif() 157