================
@@ -30,6 +30,36 @@ foreach(dep FileCheck count not llvm-config)
   endif()
 endforeach()
 
+if (NOT WIN32 OR NOT LLVM_LINK_LLVM_DYLIB)
+  llvm_add_library(
+      ClangdFeatureModuleExample
+      MODULE FeatureModuleExample.cpp
+      PLUGIN_TOOL clangd
+      PARTIAL_SOURCES_INTENDED)
+  llvm_add_library(
+      ClangdStandaloneTweakExample
+      MODULE StandaloneTweakExample.cpp
+      PLUGIN_TOOL clangd
+      PARTIAL_SOURCES_INTENDED)
+endif()
+
+foreach(target ClangdFeatureModuleExample ClangdStandaloneTweakExample)
+  if(TARGET ${target})
+    list(APPEND CLANGD_TEST_DEPS ${target})
+    target_include_directories(${target} PUBLIC BEFORE
+      "${CLANG_TOOLS_SOURCE_DIR}/clangd"
+      "${CMAKE_CURRENT_BINARY_DIR}/.."
+    )
+    if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
+      set(LLVM_LINK_COMPONENTS
+        Support
+      )
+    endif()
+  endif()
+endforeach()
+
+llvm_canonicalize_cmake_booleans(CLANG_PLUGIN_SUPPORT)
----------------
ArcsinX wrote:

I expect that we won't support clang plugins inside clangd (and we explicitly 
drop clang plugins options from compilation commands as I clarified in previous 
commen). As I mention in the description, the aim is to support clangd-specific 
plugins (FeatureModules, Tweaks) and clang-tidy (as a side effect, but also 
useful).

`CLANG_PLUGIN_SUPPORT` here is just an indicator that we want to build clang 
tools with plugins support enabled (by meaning export symbols to open ability 
of plugins loading). I didn't introduce new `CLANGD_PLUGIN_SUPPORT` 
([clang-tidy](https://github.com/llvm/llvm-project/blob/main/clang-tools-extra/clang-tidy/tool/CMakeLists.txt#L35)
 also doesn't do this) because it maybe not very obvious what to do if 
`CLANG_PLUGIN_SUPPORT` is disabled but `CLANGD_PLUGIN_SUPPORT` is enabled.

https://github.com/llvm/llvm-project/pull/226995
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to