Summary:
This is Darwin only.
The symbol defined by ${LLDB_VERS_GENERATED_FILE} is used by
source/lldb.cpp, so anything that uses lldb.cpp (which is in
lldbBase) should also have the generated symbol. This means
that the entire process can be centralized within source/CMakeLists.txt
where lldbBase is constructed.
Additionally, the custom command should have dependencies on the
project file as well as the generation script so that if either
changes, the version file is correctly re-generated and everything
is re-linked appropriately.
* cmake/LLDBDependencies.cmake: Remove everything related to
the generated version file from here.
* source/CMakeLists.txt: On Darwin, add the generated version
file to the sources that make up lldbBase. Also, create a
custom target and make lldbBase depend on it to re-generate
the generated file as needed.
* source/API/CMakeLists.txt: Don't need to build the generated
version file here or use it to control linking against swig_wrapper.
* tools/lldb-server/CMakeLists.txt: Likewise.
Reviewers: dawn, sas, clayborg, zturner
Subscribers: lldb-commits
Differential Revision: http://reviews.llvm.org/D13552
llvm-svn: 249806
106 lines
2.4 KiB
CMake
106 lines
2.4 KiB
CMake
if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
|
add_definitions( -DEXPORT_LIBLLDB )
|
|
endif()
|
|
|
|
# Include this so that add_lldb_library() has the list of dependencies
|
|
# for liblldb to link against
|
|
include(${LLDB_PROJECT_ROOT}/cmake/LLDBDependencies.cmake)
|
|
|
|
add_lldb_library(liblldb SHARED
|
|
SBAddress.cpp
|
|
SBAttachInfo.cpp
|
|
SBBlock.cpp
|
|
SBBreakpoint.cpp
|
|
SBBreakpointLocation.cpp
|
|
SBBroadcaster.cpp
|
|
SBCommandInterpreter.cpp
|
|
SBCommandReturnObject.cpp
|
|
SBCommunication.cpp
|
|
SBCompileUnit.cpp
|
|
SBData.cpp
|
|
SBDebugger.cpp
|
|
SBDeclaration.cpp
|
|
SBError.cpp
|
|
SBEvent.cpp
|
|
SBExecutionContext.cpp
|
|
SBExpressionOptions.cpp
|
|
SBFileSpec.cpp
|
|
SBFileSpecList.cpp
|
|
SBFrame.cpp
|
|
SBFunction.cpp
|
|
SBHostOS.cpp
|
|
SBInstruction.cpp
|
|
SBInstructionList.cpp
|
|
SBLanguageRuntime.cpp
|
|
SBLaunchInfo.cpp
|
|
SBLineEntry.cpp
|
|
SBListener.cpp
|
|
SBModule.cpp
|
|
SBModuleSpec.cpp
|
|
SBPlatform.cpp
|
|
SBProcess.cpp
|
|
SBQueue.cpp
|
|
SBQueueItem.cpp
|
|
SBSection.cpp
|
|
SBSourceManager.cpp
|
|
SBStream.cpp
|
|
SBStringList.cpp
|
|
SBSymbol.cpp
|
|
SBSymbolContext.cpp
|
|
SBSymbolContextList.cpp
|
|
SBTarget.cpp
|
|
SBThread.cpp
|
|
SBThreadCollection.cpp
|
|
SBThreadPlan.cpp
|
|
SBType.cpp
|
|
SBTypeCategory.cpp
|
|
SBTypeEnumMember.cpp
|
|
SBTypeFilter.cpp
|
|
SBTypeFormat.cpp
|
|
SBTypeNameSpecifier.cpp
|
|
SBTypeSummary.cpp
|
|
SBTypeSynthetic.cpp
|
|
SBValue.cpp
|
|
SBValueList.cpp
|
|
SBVariablesOptions.cpp
|
|
SBWatchpoint.cpp
|
|
SBUnixSignals.cpp
|
|
SystemInitializerFull.cpp
|
|
${LLDB_WRAP_PYTHON}
|
|
)
|
|
|
|
# This should not be part of LLDBDependencies.cmake, because we don't
|
|
# want every single library taking a dependency on the script interpreters.
|
|
target_link_libraries(liblldb PRIVATE
|
|
lldbPluginScriptInterpreterNone
|
|
lldbPluginScriptInterpreterPython
|
|
)
|
|
|
|
set_target_properties(liblldb
|
|
PROPERTIES
|
|
VERSION ${LLDB_VERSION}
|
|
)
|
|
|
|
if (NOT CMAKE_SYSTEM_NAME MATCHES "Windows")
|
|
add_llvm_symbol_exports(liblldb ${CMAKE_CURRENT_SOURCE_DIR}/liblldb.exports)
|
|
endif()
|
|
|
|
if ( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
|
# Only MSVC has the ABI compatibility problem and avoids using FindPythonLibs,
|
|
# so only it needs to explicitly link against ${PYTHON_LIBRARY}
|
|
if (MSVC AND NOT LLDB_DISABLE_PYTHON)
|
|
target_link_libraries(liblldb PRIVATE ${PYTHON_LIBRARY})
|
|
endif()
|
|
else()
|
|
set_target_properties(liblldb
|
|
PROPERTIES
|
|
OUTPUT_NAME lldb
|
|
)
|
|
endif()
|
|
|
|
if (LLDB_WRAP_PYTHON)
|
|
add_dependencies(liblldb swig_wrapper)
|
|
endif()
|
|
target_link_libraries(liblldb ${cmake_2_8_12_PRIVATE} ${LLDB_SYSTEM_LIBS})
|
|
|