Index: cmake/modules/LLDBConfig.cmake =================================================================== --- cmake/modules/LLDBConfig.cmake +++ cmake/modules/LLDBConfig.cmake @@ -346,12 +346,15 @@ endif() -if (HAVE_LIBPTHREAD) - list(APPEND system_libs pthread) -endif(HAVE_LIBPTHREAD) - -if (HAVE_LIBDL) - list(APPEND system_libs ${CMAKE_DL_LIBS}) +if(UNIX) + set(CMAKE_THREAD_PREFER_PTHREAD TRUE) + find_package(Threads REQUIRED) + list(APPEND system_libs ${CMAKE_THREAD_LIBS_INIT}) + + check_library_exists(dl dlopen "" HAVE_LIBDL) + if (HAVE_LIBDL) + list(APPEND system_libs ${CMAKE_DL_LIBS}) + endif() endif() # Figure out if lldb could use lldb-server. If so, then we'll Index: cmake/modules/LLDBStandalone.cmake =================================================================== --- cmake/modules/LLDBStandalone.cmake +++ cmake/modules/LLDBStandalone.cmake @@ -17,7 +17,9 @@ "--includedir" "--prefix" "--src-root" - "--cmakedir") + "--cmakedir" + "--shared-mode" + ) execute_process( COMMAND ${CONFIG_COMMAND} RESULT_VARIABLE HAD_ERROR @@ -44,6 +46,7 @@ list(GET CONFIG_OUTPUT 4 LLVM_OBJ_ROOT) list(GET CONFIG_OUTPUT 5 MAIN_SRC_DIR) list(GET CONFIG_OUTPUT 6 LLVM_CMAKE_PATH) + list(GET CONFIG_OUTPUT 7 SHARED_MODE) if(NOT MSVC_IDE) set(LLVM_ENABLE_ASSERTIONS ${ENABLE_ASSERTIONS} @@ -72,6 +75,11 @@ message(FATAL_ERROR "Not found: ${LLVMCONFIG_FILE}") endif() + if(SHARED_MODE STREQUAL "shared") + set(LLVM_LINK_LLVM_DYLIB ON) + set(LLVM_DYLIB_COMPONENTS all) + endif() + # They are used as destination of target generators. set(LLVM_RUNTIME_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/bin) set(LLVM_LIBRARY_OUTPUT_INTDIR ${CMAKE_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})