Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -16,10 +16,14 @@ add_subdirectory(lit) if (NOT LLDB_DISABLE_PYTHON) - # Add a Post-Build Event to copy over Python files and create the symlink to liblldb.so for the Python API(hardlink on Windows) + # Add a Post-Build Event to copy over Python files and create the symlink to liblldb.so for the Python API(hardlink on Windows) add_custom_target( finish_swig ALL COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py "--srcRoot=${LLDB_SOURCE_DIR}" "--targetDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--cfgBldDir=${CMAKE_CURRENT_BINARY_DIR}/scripts" "--prefix=${CMAKE_BINARY_DIR}" "--cmakeBuildConfiguration=${CMAKE_CFG_INTDIR}" -m DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/scripts/finishSwigWrapperClasses.py COMMENT "Python script sym-linking LLDB Python API") + # We depend on liblldb being built before we can do this step. add_dependencies(finish_swig liblldb argdumper) + + # Ensure we do the python post-build step when building lldb. + add_dependencies(lldb finish_swig) endif () Index: cmake/modules/LLDBConfig.cmake =================================================================== --- cmake/modules/LLDBConfig.cmake +++ cmake/modules/LLDBConfig.cmake @@ -258,3 +258,20 @@ endif() endif() endif() + +# Figure out if lldb could use lldb-server. If so, then we'll +# ensure we build lldb-server when an lldb target is being built. +if ( ( CMAKE_SYSTEM_NAME MATCHES "Linux" ) OR + ( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) ) + set(LLDB_CAN_USE_LLDB_SERVER 1) +else() + set(LLDB_CAN_USE_LLDB_SERVER 0) +endif() + +# Figure out if lldb could use debugserver. If so, then we'll +# ensure we build debugserver when we build lldb. +if ( CMAKE_SYSTEM_NAME MATCHES "Darwin" ) + set(LLDB_CAN_USE_DEBUGSERVER 1) +else() + set(LLDB_CAN_USE_DEBUGSERVER 0) +endif() Index: tools/driver/CMakeLists.txt =================================================================== --- tools/driver/CMakeLists.txt +++ tools/driver/CMakeLists.txt @@ -7,6 +7,16 @@ add_definitions( -DIMPORT_LIBLLDB ) endif() +# Add lldb dependency on lldb-server if we can use it. +if ( LLDB_CAN_USE_LLDB_SERVER ) + add_dependencies(lldb lldb-server) +endif() + +# Add lldb dependency on debugserver if we can use it. +if ( LLDB_CAN_USE_DEBUGSERVER ) + add_dependencies(lldb debugserver) +endif() + target_link_libraries(lldb liblldb) # TODO: why isn't this done by add_lldb_executable? #target_link_libraries(lldb ${LLDB_USED_LIBS})