Author: labath Date: Tue Nov 29 10:40:57 2016 New Revision: 288159 URL: http://llvm.org/viewvc/llvm-project?rev=288159&view=rev Log: Specify the dependencies of lldb-server manually
Summary: This basically just inlines the LLDBDependencies.cmake file into lldb-server CMakeLists.txt. The reason is that most of these dependencies are not actually necessary for lldb-server (some of them can't be removed because of cross-dependencies, but most of the plugins can). I intend to start cleaning these up in follow-up commits, but I want to do this first, so the subsequent ones can be easily reverted if they don't build in some configurations. When I cleaned these up locally, I was able to get a 30%--50% improvement in lldb-server size. Reviewers: zturner, beanz, tfiala Subscribers: danalbert, srhines, lldb-commits, mgorny Differential Revision: https://reviews.llvm.org/D26975 Modified: lldb/trunk/tools/lldb-server/CMakeLists.txt Modified: lldb/trunk/tools/lldb-server/CMakeLists.txt URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/lldb-server/CMakeLists.txt?rev=288159&r1=288158&r2=288159&view=diff ============================================================================== --- lldb/trunk/tools/lldb-server/CMakeLists.txt (original) +++ lldb/trunk/tools/lldb-server/CMakeLists.txt Tue Nov 29 10:40:57 2016 @@ -23,7 +23,215 @@ endif () include_directories(../../source) -include(../../cmake/LLDBDependencies.cmake) + +set( LLDB_USED_LIBS + lldbBase + lldbBreakpoint + lldbCommands + lldbDataFormatters + lldbHost + lldbCore + lldbExpression + lldbInitialization + lldbInterpreter + lldbSymbol + lldbTarget + lldbUtility + + # Plugins + lldbPluginDisassemblerLLVM + lldbPluginSymbolFileDWARF + lldbPluginSymbolFilePDB + lldbPluginSymbolFileSymtab + lldbPluginDynamicLoaderStatic + lldbPluginDynamicLoaderPosixDYLD + lldbPluginDynamicLoaderHexagonDYLD + lldbPluginDynamicLoaderWindowsDYLD + + lldbPluginCPlusPlusLanguage + lldbPluginGoLanguage + lldbPluginJavaLanguage + lldbPluginObjCLanguage + lldbPluginObjCPlusPlusLanguage + lldbPluginOCamlLanguage + + lldbPluginObjectFileELF + lldbPluginObjectFileJIT + lldbPluginSymbolVendorELF + lldbPluginObjectContainerBSDArchive + lldbPluginObjectContainerMachOArchive + lldbPluginProcessGDBRemote + lldbPluginProcessUtility + lldbPluginPlatformAndroid + lldbPluginPlatformGDB + lldbPluginPlatformFreeBSD + lldbPluginPlatformKalimba + lldbPluginPlatformLinux + lldbPluginPlatformNetBSD + lldbPluginPlatformPOSIX + lldbPluginPlatformWindows + lldbPluginObjectContainerMachOArchive + lldbPluginObjectContainerBSDArchive + lldbPluginPlatformMacOSX + lldbPluginStructuredDataDarwinLog + lldbPluginDynamicLoaderMacOSXDYLD + lldbPluginUnwindAssemblyInstEmulation + lldbPluginUnwindAssemblyX86 + lldbPluginAppleObjCRuntime + lldbPluginRenderScriptRuntime + lldbPluginLanguageRuntimeGo + lldbPluginLanguageRuntimeJava + lldbPluginCXXItaniumABI + lldbPluginABIMacOSX_arm + lldbPluginABIMacOSX_arm64 + lldbPluginABIMacOSX_i386 + lldbPluginABISysV_arm + lldbPluginABISysV_arm64 + lldbPluginABISysV_i386 + lldbPluginABISysV_x86_64 + lldbPluginABISysV_hexagon + lldbPluginABISysV_ppc + lldbPluginABISysV_ppc64 + lldbPluginABISysV_mips + lldbPluginABISysV_mips64 + lldbPluginABISysV_s390x + lldbPluginInstructionARM + lldbPluginInstructionARM64 + lldbPluginInstructionMIPS + lldbPluginInstructionMIPS64 + lldbPluginObjectFilePECOFF + lldbPluginOSGo + lldbPluginOSPython + lldbPluginMemoryHistoryASan + lldbPluginInstrumentationRuntimeAddressSanitizer + lldbPluginInstrumentationRuntimeThreadSanitizer + lldbPluginSystemRuntimeMacOSX + lldbPluginProcessElfCore + lldbPluginProcessMinidump + lldbPluginJITLoaderGDB + lldbPluginExpressionParserClang + lldbPluginExpressionParserGo + ) + +# Windows-only libraries +if ( CMAKE_SYSTEM_NAME MATCHES "Windows" ) + list(APPEND LLDB_USED_LIBS + lldbPluginProcessWindows + lldbPluginProcessWindowsCommon + Ws2_32 + Rpcrt4 + ) +endif () + +# Linux-only libraries +if ( CMAKE_SYSTEM_NAME MATCHES "Linux" ) + list(APPEND LLDB_USED_LIBS + lldbPluginProcessLinux + lldbPluginProcessPOSIX + ) +endif () + +# FreeBSD-only libraries +if ( CMAKE_SYSTEM_NAME MATCHES "FreeBSD" ) + list(APPEND LLDB_USED_LIBS + lldbPluginProcessFreeBSD + lldbPluginProcessPOSIX + ) +endif () + +# NetBSD-only libraries +if ( CMAKE_SYSTEM_NAME MATCHES "NetBSD" ) + list(APPEND LLDB_USED_LIBS + lldbPluginProcessPOSIX + ) +endif () + +# Darwin-only libraries +if ( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) + list(APPEND LLDB_USED_LIBS + lldbPluginDynamicLoaderDarwinKernel + lldbPluginObjectFileMachO + lldbPluginProcessMachCore + lldbPluginProcessMacOSXKernel + lldbPluginSymbolVendorMacOSX + ) +endif() + +set( CLANG_USED_LIBS + clangAnalysis + clangAST + clangBasic + clangCodeGen + clangDriver + clangEdit + clangFrontend + clangLex + clangParse + clangRewrite + clangRewriteFrontend + clangSema + clangSerialization + ) + +set(LLDB_SYSTEM_LIBS) +if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows" AND NOT __ANDROID_NDK__) + if (NOT LLDB_DISABLE_LIBEDIT) + list(APPEND LLDB_SYSTEM_LIBS edit) + endif() + if (NOT LLDB_DISABLE_CURSES) + list(APPEND LLDB_SYSTEM_LIBS ${CURSES_LIBRARIES}) + if(LLVM_ENABLE_TERMINFO AND HAVE_TERMINFO) + list(APPEND LLDB_SYSTEM_LIBS ${TERMINFO_LIBS}) + endif() + endif() +endif() + +if (NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB ) + list(APPEND LLDB_SYSTEM_LIBS atomic) +endif() + +# On FreeBSD/NetBSD backtrace() is provided by libexecinfo, not libc. +if (CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR CMAKE_SYSTEM_NAME MATCHES "NetBSD") + list(APPEND LLDB_SYSTEM_LIBS execinfo) +endif() + +if (NOT LLDB_DISABLE_PYTHON AND NOT LLVM_BUILD_STATIC) + list(APPEND LLDB_SYSTEM_LIBS ${PYTHON_LIBRARIES}) +endif() + +list(APPEND LLDB_SYSTEM_LIBS ${system_libs}) + +if (LLVM_BUILD_STATIC) + if (NOT LLDB_DISABLE_PYTHON) + list(APPEND LLDB_SYSTEM_LIBS python2.7 util) + endif() + if (NOT LLDB_DISABLE_CURSES) + list(APPEND LLDB_SYSTEM_LIBS gpm) + endif() +endif() + +set(LLVM_LINK_COMPONENTS + ${LLVM_TARGETS_TO_BUILD} + interpreter + asmparser + bitreader + bitwriter + codegen + demangle + ipo + selectiondag + bitreader + mc + mcjit + core + mcdisassembler + executionengine + runtimedyld + option + support + coverage + target + ) add_lldb_executable(lldb-server INCLUDE_IN_FRAMEWORK Acceptor.cpp _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits