144 Star 1.3K Fork 390

GVP搜狗开源/workflow

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
CMakeLists.txt 4.21 KB
一键复制 编辑 原始数据 按行查看 历史
cmake_minimum_required(VERSION 3.6)
if(ANDROID)
include_directories(${OPENSSL_INCLUDE_DIR})
link_directories(${OPENSSL_LINK_DIR})
else()
find_package(OpenSSL REQUIRED)
endif ()
include_directories(${OPENSSL_INCLUDE_DIR} ${INC_DIR}/workflow)
if (KAFKA STREQUAL "y")
find_path(SNAPPY_INCLUDE_PATH NAMES snappy.h)
find_library(SNAPPY_LIB NAMES snappy)
if ((NOT SNAPPY_INCLUDE_PATH) OR (NOT SNAPPY_LIB))
message(FATAL_ERROR "Fail to find snappy with KAFKA=y")
endif ()
include_directories(${SNAPPY_INCLUDE_PATH})
endif ()
add_subdirectory(kernel)
add_subdirectory(util)
add_subdirectory(manager)
add_subdirectory(protocol)
add_subdirectory(factory)
add_subdirectory(nameservice)
add_subdirectory(server)
add_subdirectory(client)
add_dependencies(kernel LINK_HEADERS)
add_dependencies(util LINK_HEADERS)
add_dependencies(manager LINK_HEADERS)
add_dependencies(protocol LINK_HEADERS)
add_dependencies(factory LINK_HEADERS)
add_dependencies(nameservice LINK_HEADERS)
add_dependencies(server LINK_HEADERS)
add_dependencies(client LINK_HEADERS)
set(STATIC_LIB_NAME ${PROJECT_NAME}-static)
set(SHARED_LIB_NAME ${PROJECT_NAME}-shared)
add_library(
${STATIC_LIB_NAME} STATIC
$<TARGET_OBJECTS:kernel>
$<TARGET_OBJECTS:util>
$<TARGET_OBJECTS:manager>
$<TARGET_OBJECTS:protocol>
$<TARGET_OBJECTS:factory>
$<TARGET_OBJECTS:nameservice>
$<TARGET_OBJECTS:server>
$<TARGET_OBJECTS:client>
)
add_library(
${SHARED_LIB_NAME} SHARED
$<TARGET_OBJECTS:kernel>
$<TARGET_OBJECTS:util>
$<TARGET_OBJECTS:manager>
$<TARGET_OBJECTS:protocol>
$<TARGET_OBJECTS:factory>
$<TARGET_OBJECTS:nameservice>
$<TARGET_OBJECTS:server>
$<TARGET_OBJECTS:client>
)
if(ANDROID)
target_link_libraries(${SHARED_LIB_NAME} ssl crypto c)
target_link_libraries(${STATIC_LIB_NAME} ssl crypto c)
else()
target_link_libraries(${SHARED_LIB_NAME} OpenSSL::SSL OpenSSL::Crypto pthread)
target_link_libraries(${STATIC_LIB_NAME} OpenSSL::SSL OpenSSL::Crypto pthread)
endif ()
set_target_properties(${STATIC_LIB_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME})
set_target_properties(${SHARED_LIB_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME} VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
if (KAFKA STREQUAL "y")
add_dependencies(client_kafka LINK_HEADERS)
add_dependencies(util_kafka LINK_HEADERS)
add_dependencies(protocol_kafka LINK_HEADERS)
add_dependencies(factory_kafka LINK_HEADERS)
set(KAFKA_STATIC_LIB_NAME "wfkafka-static")
add_library(
${KAFKA_STATIC_LIB_NAME} STATIC
$<TARGET_OBJECTS:client_kafka>
$<TARGET_OBJECTS:util_kafka>
$<TARGET_OBJECTS:protocol_kafka>
$<TARGET_OBJECTS:factory_kafka>
)
set_target_properties(${KAFKA_STATIC_LIB_NAME} PROPERTIES OUTPUT_NAME "wfkafka")
set(KAFKA_SHARED_LIB_NAME "wfkafka-shared")
add_library(
${KAFKA_SHARED_LIB_NAME} SHARED
$<TARGET_OBJECTS:client_kafka>
$<TARGET_OBJECTS:util_kafka>
$<TARGET_OBJECTS:protocol_kafka>
$<TARGET_OBJECTS:factory_kafka>
)
if (APPLE)
target_link_libraries(${KAFKA_SHARED_LIB_NAME}
${SHARED_LIB_NAME} z lz4 zstd ${SNAPPY_LIB})
else ()
target_link_libraries(${KAFKA_SHARED_LIB_NAME} ${SHARED_LIB_NAME})
endif ()
set_target_properties(${KAFKA_SHARED_LIB_NAME} PROPERTIES OUTPUT_NAME "wfkafka" VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
endif ()
install(
TARGETS ${STATIC_LIB_NAME}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT devel
)
install(
TARGETS ${SHARED_LIB_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT devel
)
if (KAFKA STREQUAL "y")
install(
TARGETS ${KAFKA_STATIC_LIB_NAME}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT devel
)
install(
TARGETS ${KAFKA_SHARED_LIB_NAME}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
COMPONENT devel
)
endif ()
target_include_directories(${STATIC_LIB_NAME} BEFORE PUBLIC
"$<BUILD_INTERFACE:${INC_DIR}>"
"$<INSTALL_INTERFACE:${INC_DIR}>")
target_include_directories(${SHARED_LIB_NAME} BEFORE PUBLIC
"$<BUILD_INTERFACE:${INC_DIR}>"
"$<INSTALL_INTERFACE:${INC_DIR}>")
if (KAFKA STREQUAL "y")
target_include_directories(${KAFKA_STATIC_LIB_NAME} BEFORE PUBLIC
"$<BUILD_INTERFACE:${INC_DIR}>"
"$<INSTALL_INTERFACE:${INC_DIR}>")
target_include_directories(${KAFKA_SHARED_LIB_NAME} BEFORE PUBLIC
"$<BUILD_INTERFACE:${INC_DIR}>"
"$<INSTALL_INTERFACE:${INC_DIR}>")
endif ()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/sogou/workflow.git
git@gitee.com:sogou/workflow.git
sogou
workflow
workflow
master

搜索帮助