mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-27 20:06:20 +00:00
[clangd] Fix remote index build without shared libs mode
Summary: Generated Protobuf library has to be in CLANG_EXPORTS and should also be installed appropriately. The easiest way to do that is via CMake's add_clang_library. That unfortunately applies "one directory - one clang_(library|tool)" policy so .proto files should be in a separate directory and complicates the layout. This setup works both in shared and static libs mode. Resolves: https://github.com/clangd/clangd/issues/351 Reviewers: sammccall Reviewed By: sammccall Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D78885
This commit is contained in:
parent
707df4acdc
commit
9ff3f339e8
@ -5,14 +5,12 @@ set(LLVM_LINK_COMPONENTS
|
||||
add_clang_executable(clangd-index-server
|
||||
Server.cpp
|
||||
)
|
||||
target_compile_definitions(clangd-index-server PRIVATE -D GOOGLE_PROTOBUF_NO_RTTI=1)
|
||||
clang_target_link_libraries(clangd-index-server
|
||||
PRIVATE
|
||||
clangDaemon
|
||||
)
|
||||
target_link_libraries(clangd-index-server
|
||||
PRIVATE
|
||||
RemoteIndexProtos
|
||||
clangDaemon
|
||||
|
||||
RemoteIndexProtos
|
||||
clangdRemoteMarshalling
|
||||
|
||||
grpc++
|
||||
)
|
||||
|
@ -45,6 +45,7 @@ function(generate_grpc_protos LibraryName ProtoFile)
|
||||
"${ProtoSourceAbsolutePath}"
|
||||
DEPENDS "${ProtoSourceAbsolutePath}")
|
||||
|
||||
add_library(${LibraryName} ${GeneratedProtoSource} ${GeneratedGRPCSource})
|
||||
target_link_libraries(${LibraryName} grpc++ protobuf)
|
||||
add_clang_library(${LibraryName} ${GeneratedProtoSource} ${GeneratedGRPCSource}
|
||||
PARTIAL_SOURCES_INTENDED
|
||||
LINK_LIBS grpc++ protobuf)
|
||||
endfunction()
|
||||
|
@ -57,10 +57,12 @@ endfunction(find_all_header_files)
|
||||
|
||||
|
||||
function(llvm_process_sources OUT_VAR)
|
||||
cmake_parse_arguments(ARG "" "" "ADDITIONAL_HEADERS;ADDITIONAL_HEADER_DIRS" ${ARGN})
|
||||
cmake_parse_arguments(ARG "PARTIAL_SOURCES_INTENDED" "" "ADDITIONAL_HEADERS;ADDITIONAL_HEADER_DIRS" ${ARGN})
|
||||
set(sources ${ARG_UNPARSED_ARGUMENTS})
|
||||
llvm_check_source_file_list( ${sources} )
|
||||
|
||||
if (NOT ARG_PARTIAL_SOURCES_INTENDED)
|
||||
llvm_check_source_file_list(${sources})
|
||||
endif()
|
||||
|
||||
# This adds .td and .h files to the Visual Studio solution:
|
||||
add_td_sources(sources)
|
||||
find_all_header_files(hdrs "${ARG_ADDITIONAL_HEADER_DIRS}")
|
||||
|
Loading…
x
Reference in New Issue
Block a user