-
Notifications
You must be signed in to change notification settings - Fork 6.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: daijunkai <[email protected]>
- Loading branch information
Showing
7 changed files
with
221 additions
and
45 deletions.
There are no files selected for viewing
2 changes: 1 addition & 1 deletion
2
ports/brpc/fix_boost_ptr.patch → ports/brpc/fix-boost-ptr.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,202 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 057695af..ed4979f6 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -63,7 +63,8 @@ endif() | ||
|
||
if(WITH_THRIFT) | ||
set(THRIFT_CPP_FLAG "-DENABLE_THRIFT_FRAMED_PROTOCOL") | ||
- set(THRIFT_LIB "thrift") | ||
+ find_package(Thrift CONFIG REQUIRED) | ||
+ set(THRIFT_LIB "thrift::thrift") | ||
endif() | ||
|
||
include(GNUInstallDirs) | ||
@@ -142,18 +143,21 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") | ||
endif() | ||
endif() | ||
|
||
-find_package(Protobuf REQUIRED) | ||
+find_package(protobuf CONFIG REQUIRED) | ||
+get_target_property(PROTOBUF_INCLUDE_DIR protobuf::libprotobuf INTERFACE_INCLUDE_DIRECTORIES) | ||
+set(PROTOBUF_LIBRARIES protobuf::libprotobuf) | ||
find_package(Threads REQUIRED) | ||
- | ||
-find_path(LEVELDB_INCLUDE_PATH NAMES leveldb/db.h) | ||
-find_library(LEVELDB_LIB NAMES leveldb) | ||
+find_package(leveldb CONFIG REQUIRED) | ||
+set(LEVELDB_INCLUDE_PATH ${PROTOBUF_INCLUDE_DIR}) | ||
+set(LEVELDB_LIB leveldb::leveldb) | ||
if ((NOT LEVELDB_INCLUDE_PATH) OR (NOT LEVELDB_LIB)) | ||
message(FATAL_ERROR "Fail to find leveldb") | ||
endif() | ||
|
||
if(WITH_GLOG) | ||
- find_path(GLOG_INCLUDE_PATH NAMES glog/logging.h) | ||
- find_library(GLOG_LIB NAMES glog) | ||
+ find_package(glog CONFIG REQUIRED) | ||
+ get_target_property(GLOG_INCLUDE_PATH glog::glog INTERFACE_INCLUDE_DIRECTORIES) | ||
+ set(GLOG_LIB glog::glog) | ||
if((NOT GLOG_INCLUDE_PATH) OR (NOT GLOG_LIB)) | ||
message(FATAL_ERROR "Fail to find glog") | ||
endif() | ||
@@ -171,7 +175,7 @@ if(WITH_MESALINK) | ||
include_directories(${MESALINK_INCLUDE_PATH}) | ||
endif() | ||
|
||
-find_library(PROTOC_LIB NAMES protoc) | ||
+set(PROTOC_LIB "protobuf::libprotoc") | ||
if(NOT PROTOC_LIB) | ||
message(FATAL_ERROR "Fail to find protoc lib") | ||
endif() | ||
@@ -182,7 +186,7 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") | ||
) | ||
endif() | ||
|
||
-find_package(OpenSSL) | ||
+find_package(OpenSSL REQUIRED) | ||
|
||
include_directories( | ||
${GFLAGS_INCLUDE_PATH} | ||
@@ -197,9 +201,9 @@ set(DYNAMIC_LIB | ||
${LEVELDB_LIB} | ||
${PROTOC_LIB} | ||
${CMAKE_THREAD_LIBS_INIT} | ||
- ${THRIFT_LIB} | ||
- ${THRIFTNB_LIB} | ||
${OPENSSL_CRYPTO_LIBRARY} | ||
+ ${OPENSSL_SSL_LIBRARY} | ||
+ ${THRIFT_LIB} | ||
dl | ||
z) | ||
|
||
@@ -434,7 +438,9 @@ if(BUILD_UNIT_TESTS) | ||
enable_testing() | ||
add_subdirectory(test) | ||
endif() | ||
+if(BUILD_TOOLS) | ||
add_subdirectory(tools) | ||
+endif() | ||
|
||
file(COPY ${CMAKE_CURRENT_BINARY_DIR}/brpc/ | ||
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/output/include/brpc/ | ||
diff --git a/cmake/FindGFLAGS.cmake b/cmake/FindGFLAGS.cmake | ||
index dfad5fd8..83a167f0 100644 | ||
--- a/cmake/FindGFLAGS.cmake | ||
+++ b/cmake/FindGFLAGS.cmake | ||
@@ -15,7 +15,8 @@ | ||
|
||
set(_gflags_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) | ||
|
||
-find_path(GFLAGS_INCLUDE_PATH gflags/gflags.h) | ||
+find_package(gflags CONFIG REQUIRED) | ||
+get_target_property(GFLAGS_INCLUDE_PATH gflags::gflags INTERFACE_INCLUDE_DIRECTORIES) | ||
|
||
if (GFLAGS_STATIC) | ||
if (WIN32) | ||
@@ -24,7 +25,7 @@ if (GFLAGS_STATIC) | ||
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES}) | ||
endif (WIN32) | ||
endif (GFLAGS_STATIC) | ||
-find_library(GFLAGS_LIBRARY NAMES gflags libgflags) | ||
+set(GFLAGS_LIBRARY gflags::gflags) | ||
if(GFLAGS_INCLUDE_PATH AND GFLAGS_LIBRARY) | ||
set(GFLAGS_FOUND TRUE) | ||
endif(GFLAGS_INCLUDE_PATH AND GFLAGS_LIBRARY) | ||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt | ||
index ee616eb1..35a5b48e 100644 | ||
--- a/src/CMakeLists.txt | ||
+++ b/src/CMakeLists.txt | ||
@@ -31,45 +31,77 @@ add_dependencies(SOURCES_LIB PROTO_LIB) | ||
set_property(TARGET ${SOURCES_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) | ||
set_property(TARGET ${BUTIL_LIB} PROPERTY POSITION_INDEPENDENT_CODE 1) | ||
|
||
-add_library(brpc-shared SHARED $<TARGET_OBJECTS:BUTIL_LIB> | ||
+if (BUILD_SHARED_LIBS) | ||
+add_library(brpc-shared SHARED $<TARGET_OBJECTS:BUTIL_LIB> | ||
$<TARGET_OBJECTS:SOURCES_LIB> | ||
$<TARGET_OBJECTS:PROTO_LIB>) | ||
+else() | ||
add_library(brpc-static STATIC $<TARGET_OBJECTS:BUTIL_LIB> | ||
$<TARGET_OBJECTS:SOURCES_LIB> | ||
$<TARGET_OBJECTS:PROTO_LIB>) | ||
- | ||
-target_link_libraries(brpc-shared ${DYNAMIC_LIB}) | ||
+endif() | ||
+if (BUILD_SHARED_LIBS) | ||
+target_include_directories(brpc-shared PUBLIC $<INSTALL_INTERFACE:include>) | ||
+target_link_libraries(brpc-shared PUBLIC ${DYNAMIC_LIB}) | ||
+else() | ||
+target_include_directories(brpc-static PUBLIC $<INSTALL_INTERFACE:include>) | ||
+target_link_libraries(brpc-static PUBLIC ${DYNAMIC_LIB}) | ||
+endif() | ||
|
||
if(BRPC_WITH_GLOG) | ||
+ if (BUILD_SHARED_LIBS) | ||
target_link_libraries(brpc-shared ${GLOG_LIB}) | ||
+ else() | ||
+ target_link_libraries(brpc-static ${GLOG_LIB}) | ||
+ endif() | ||
endif() | ||
|
||
if(BRPC_WITH_THRIFT) | ||
+ if (BUILD_SHARED_LIBS) | ||
target_link_libraries(brpc-shared thrift) | ||
+ else() | ||
target_link_libraries(brpc-static thrift) | ||
+ endif() | ||
endif() | ||
|
||
+if (NOT BUILD_SHARED_LIBS) | ||
SET_TARGET_PROPERTIES(brpc-static PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1) | ||
+else() | ||
SET_TARGET_PROPERTIES(brpc-shared PROPERTIES OUTPUT_NAME brpc CLEAN_DIRECT_OUTPUT 1) | ||
+endif() | ||
|
||
-# for protoc-gen-mcpack | ||
-set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/output/bin) | ||
- | ||
-set(protoc_gen_mcpack_SOURCES | ||
- ${PROJECT_SOURCE_DIR}/src/mcpack2pb/generator.cpp | ||
- ) | ||
-add_executable(protoc-gen-mcpack ${protoc_gen_mcpack_SOURCES}) | ||
-target_link_libraries(protoc-gen-mcpack brpc-shared) | ||
- | ||
#install directory | ||
-install(TARGETS brpc-shared | ||
+if (BUILD_SHARED_LIBS) | ||
+install(TARGETS brpc-shared EXPORT unofficial-brpcTargets | ||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | ||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
) | ||
- | ||
-install(TARGETS brpc-static | ||
+else() | ||
+install(TARGETS brpc-static EXPORT unofficial-brpcTargets | ||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} | ||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} | ||
) | ||
+endif() | ||
+ | ||
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/unofficial-brpc-config.cmake" | ||
+[[include(CMakeFindDependencyMacro) | ||
+find_dependency(OpenSSL) | ||
+find_dependency(Threads) | ||
+find_dependency(gflags CONFIG) | ||
+find_dependency(protobuf CONFIG) | ||
+find_dependency(leveldb CONFIG) | ||
+find_dependency(Thrift CONFIG) | ||
+find_dependency(glog CONFIG) | ||
+file(GLOB TARGET_FILES "${CMAKE_CURRENT_LIST_DIR}/unofficial-brpcTargets.cmake") | ||
+foreach (TARGET_FILE ${TARGET_FILES}) | ||
+ include("${TARGET_FILE}") | ||
+endforeach() | ||
+]]) | ||
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-brpc-config.cmake" DESTINATION share/unofficial-brpc) | ||
+ | ||
+install(EXPORT unofficial-brpcTargets | ||
+ NAMESPACE unofficial::brpc:: | ||
+ DESTINATION share/unofficial-brpc | ||
+) |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters