mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-19 02:10:28 +08:00
43 lines
1.8 KiB
CMake
43 lines
1.8 KiB
CMake
if(NOT USE_LIBQVB)
|
|
find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin)
|
|
|
|
if(MSVC)
|
|
find_package(gRPC CONFIG REQUIRED)
|
|
set(QV2RAY_BACKEND_LIBRARIES c-ares::cares gRPC::gpr gRPC::grpc gRPC::grpc++ gRPC::grpc++_alts)
|
|
elseif(UNIX)
|
|
find_package(PkgConfig REQUIRED)
|
|
if(UNIX AND NOT APPLE)
|
|
pkg_check_modules(GRPC REQUIRED grpc++ grpc)
|
|
set(QV2RAY_BACKEND_LIBRARIES ${GRPC_LIBRARIES})
|
|
else()
|
|
find_library(UPB_LIBRARY NAMES upb)
|
|
pkg_check_modules(GRPC REQUIRED grpc++ grpc gpr)
|
|
set(QV2RAY_BACKEND_LIBRARIES ${GRPC_LINK_LIBRARIES} ${UPB_LIBRARY})
|
|
endif()
|
|
endif()
|
|
|
|
set(API_PROTO "${CMAKE_SOURCE_DIR}/tools/v2ray_api.proto")
|
|
set(API_PROTO_PATH "${CMAKE_SOURCE_DIR}/tools")
|
|
set(API_PROTO_SRCS "${CMAKE_CURRENT_BINARY_DIR}/v2ray_api.pb.cc")
|
|
set(API_PROTO_HDRS "${CMAKE_CURRENT_BINARY_DIR}/v2ray_api.pb.h")
|
|
set(API_GRPC_SRCS "${CMAKE_CURRENT_BINARY_DIR}/v2ray_api.grpc.pb.cc")
|
|
set(API_GRPC_HDRS "${CMAKE_CURRENT_BINARY_DIR}/v2ray_api.grpc.pb.h")
|
|
add_custom_command(
|
|
OUTPUT "${API_GRPC_SRCS}" "${API_GRPC_HDRS}" "${API_PROTO_HDRS}" "${API_PROTO_SRCS}"
|
|
COMMAND ${Protobuf_PROTOC_EXECUTABLE}
|
|
ARGS --grpc_out "${CMAKE_CURRENT_BINARY_DIR}"
|
|
--cpp_out "${CMAKE_CURRENT_BINARY_DIR}"
|
|
-I "${API_PROTO_PATH}"
|
|
--plugin=protoc-gen-grpc="${GRPC_CPP_PLUGIN}"
|
|
"${API_PROTO}"
|
|
DEPENDS "${API_PROTO}"
|
|
)
|
|
else()
|
|
add_definitions(-DBACKEND_LIBQVB)
|
|
if(UNIX AND NOT APPLE)
|
|
set(QV2RAY_BACKEND_LIBRARIES ${CMAKE_SOURCE_DIR}/libs/libqvb-linux64.a)
|
|
elseif(APPLE)
|
|
set(QV2RAY_BACKEND_LIBRARIES ${CMAKE_SOURCE_DIR}/libs/libqvb-darwin.a)
|
|
endif()
|
|
endif()
|