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