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