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 94if (MSVC) 95 set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING PROPERTY COMPILE_FLAGS " /W0") 96else() 97 set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING PROPERTY COMPILE_FLAGS " -w") 98endif() 99 100set_source_files_properties(${LLDB_WRAP_PYTHON} PROPERTIES GENERATED 1) 101if (CLANG_CL) 102 set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING 103 PROPERTY COMPILE_FLAGS " -Wno-unused-function") 104endif() 105if (LLVM_COMPILER_IS_GCC_COMPATIBLE AND 106 NOT "${CMAKE_SYSTEM_NAME}" MATCHES "Darwin") 107 set_property(SOURCE ${LLDB_WRAP_PYTHON} APPEND_STRING 108 PROPERTY COMPILE_FLAGS " -Wno-sequence-point -Wno-cast-qual") 109endif () 110 111set_target_properties(liblldb 112 PROPERTIES 113 VERSION ${LLDB_VERSION} 114 ) 115 116if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows") 117 if (NOT LLDB_EXPORT_ALL_SYMBOLS) 118 # If we're not exporting all symbols, we'll want to explicitly set 119 # the exported symbols here. This prevents 'log enable --stack ...' 120 # from working on some systems but limits the liblldb size. 121 MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb namespace") 122 add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb.exports) 123 else() 124 # Don't use an explicit export. Instead, tell the linker to 125 # export all symbols. 126 MESSAGE("-- Symbols (liblldb): exporting all symbols from the lldb and lldb_private namespaces") 127 add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb-private.exports) 128 endif() 129endif() 130 131if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) 132 # Only MSVC has the ABI compatibility problem and avoids using FindPythonLibs, 133 # so only it needs to explicitly link against ${PYTHON_LIBRARY} 134 if (MSVC AND NOT LLDB_DISABLE_PYTHON) 135 target_link_libraries(liblldb PRIVATE ${PYTHON_LIBRARY}) 136 endif() 137else() 138 set_target_properties(liblldb 139 PROPERTIES 140 OUTPUT_NAME lldb 141 ) 142endif() 143 144if (LLDB_WRAP_PYTHON) 145 add_dependencies(liblldb swig_wrapper) 146endif() 147