ivanmurashko updated this revision to Diff 507029. ivanmurashko added a comment.
The change addresses comments from D145228 <https://reviews.llvm.org/D145228>. The only one header is copied as a part of the installation. As result the diff contains the minimal changes required to integrated clangd into custom build systems (different from CMake). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D145302/new/ https://reviews.llvm.org/D145302 Files: clang-tools-extra/clangd/CMakeLists.txt clang-tools-extra/clangd/tool/CMakeLists.txt clang-tools-extra/clangd/tool/ClangdMain.cpp clang-tools-extra/clangd/tool/ClangdMain.h clang-tools-extra/clangd/tool/ClangdToolMain.cpp
Index: clang-tools-extra/clangd/tool/ClangdToolMain.cpp =================================================================== --- /dev/null +++ clang-tools-extra/clangd/tool/ClangdToolMain.cpp @@ -0,0 +1,13 @@ +//===--- ClangdToolMain.cpp - clangd main function ------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "ClangdMain.h" + +int main(int argc, char **argv) { + return clang::clangd::clangdMain(argc, argv); +} Index: clang-tools-extra/clangd/tool/ClangdMain.h =================================================================== --- /dev/null +++ clang-tools-extra/clangd/tool/ClangdMain.h @@ -0,0 +1,19 @@ +//===--- ClangdMain.h - clangd main function ------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_TOOL_CLANGDMAIN_H +#define LLVM_CLANG_TOOLS_EXTRA_CLANGD_TOOL_CLANGDMAIN_H + +namespace clang { +namespace clangd { +// clangd main function (clangd server loop) +int clangdMain(int argc, char *argv[]); +} // namespace clangd +} // namespace clang + +#endif // LLVM_CLANG_TOOLS_EXTRA_CLANGD_TOOL_CLANGDMAIN_H Index: clang-tools-extra/clangd/tool/ClangdMain.cpp =================================================================== --- clang-tools-extra/clangd/tool/ClangdMain.cpp +++ clang-tools-extra/clangd/tool/ClangdMain.cpp @@ -6,6 +6,7 @@ // //===----------------------------------------------------------------------===// +#include "ClangdMain.h" #include "ClangdLSPServer.h" #include "CodeComplete.h" #include "Compiler.h" @@ -710,8 +711,6 @@ } }; } // namespace -} // namespace clangd -} // namespace clang enum class ErrorResultCode : int { NoShutdownRequest = 1, @@ -719,10 +718,7 @@ CheckFailed = 3 }; -int main(int argc, char *argv[]) { - using namespace clang; - using namespace clang::clangd; - +int clangdMain(int argc, char *argv[]) { llvm::InitializeAllTargetInfos(); llvm::sys::PrintStackTraceOnErrorSignal(argv[0]); llvm::sys::AddSignalHandler( @@ -1041,3 +1037,6 @@ return ExitCode; } + +} // namespace clangd +} // namespace clang Index: clang-tools-extra/clangd/tool/CMakeLists.txt =================================================================== --- clang-tools-extra/clangd/tool/CMakeLists.txt +++ clang-tools-extra/clangd/tool/CMakeLists.txt @@ -1,6 +1,13 @@ -add_clang_tool(clangd +# Needed by LLVM's CMake checks because this file defines multiple targets. +set(LLVM_OPTIONAL_SOURCES ClangdMain.cpp ClangdToolMain.cpp Check.cpp) + +add_clang_library(clangdMain ClangdMain.cpp Check.cpp + ) + +add_clang_tool(clangd + ClangdToolMain.cpp $<TARGET_OBJECTS:obj.clangDaemonTweaks> ) @@ -13,8 +20,32 @@ list(APPEND CLANGD_XPC_LIBS "clangdXpcJsonConversions" "clangdXpcTransport") endif() +clang_target_link_libraries(clangdMain + PRIVATE + clangAST + clangBasic + clangFormat + clangFrontend + clangLex + clangSema + clangTooling + clangToolingCore + clangToolingRefactoring + clangToolingSyntax + ) + +target_link_libraries(clangdMain + PRIVATE + clangTidy + clangDaemon + clangdRemoteIndex + clangdSupport + ${CLANGD_XPC_LIBS} + ) + clang_target_link_libraries(clangd PRIVATE + clangdMain clangAST clangBasic clangFormat Index: clang-tools-extra/clangd/CMakeLists.txt =================================================================== --- clang-tools-extra/clangd/CMakeLists.txt +++ clang-tools-extra/clangd/CMakeLists.txt @@ -218,3 +218,17 @@ add_subdirectory(index/remote) add_subdirectory(index/dex/dexp) + +if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY) + install(FILES + ${CMAKE_CURRENT_SOURCE_DIR}/tool/ClangdMain.h + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/clangd" + COMPONENT clangd-headers) + add_custom_target(clangd-headers) + set_target_properties(clangd-headers PROPERTIES FOLDER "Misc") + if(NOT LLVM_ENABLE_IDE) + add_llvm_install_targets(install-clangd-headers + DEPENDS clangd-headers + COMPONENT clangd-headers) + endif() +endif()
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits