2024-12-15 21:49:26 +08:00
|
|
|
cmake_minimum_required(VERSION 3.0)
|
|
|
|
|
|
|
|
project(tinyrpc)
|
|
|
|
|
2025-01-22 17:58:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
2025-01-21 16:35:26 +08:00
|
|
|
|
2024-12-15 21:49:26 +08:00
|
|
|
enable_language(CXX ASM)
|
|
|
|
|
2025-01-22 17:58:45 +08:00
|
|
|
add_compile_options(-g -Wall)
|
2024-12-15 21:49:26 +08:00
|
|
|
|
|
|
|
include_directories(includes/coroutine)
|
|
|
|
include_directories(includes/log)
|
2024-12-20 21:17:21 +08:00
|
|
|
include_directories(includes/net)
|
2024-12-25 19:40:27 +08:00
|
|
|
include_directories(includes/net/tcp)
|
2025-01-21 16:35:26 +08:00
|
|
|
include_directories(includes/net/tinypb)
|
2024-12-15 21:49:26 +08:00
|
|
|
|
2025-01-22 17:58:45 +08:00
|
|
|
aux_source_directory(${CMAKE_SOURCE_DIR}/src SRC_LIST)
|
2024-12-20 21:17:21 +08:00
|
|
|
aux_source_directory(${CMAKE_SOURCE_DIR}/src/coroutine COROUTINE_SRC_LIST)
|
|
|
|
aux_source_directory(${CMAKE_SOURCE_DIR}/src/net NET_SRC_LIST)
|
2024-12-25 19:40:27 +08:00
|
|
|
aux_source_directory(${CMAKE_SOURCE_DIR}/src/net/tcp TCP_SRC_LIST)
|
2025-01-21 16:35:26 +08:00
|
|
|
aux_source_directory(${CMAKE_SOURCE_DIR}/src/net/tinypb TINYPB_SRC_LIST)
|
2024-12-25 19:40:27 +08:00
|
|
|
|
2024-12-15 21:49:26 +08:00
|
|
|
|
2024-12-17 15:47:10 +08:00
|
|
|
set(ASM_FILES ${CMAKE_SOURCE_DIR}/src/coroutine/coctx_swap.S)
|
2024-12-15 21:49:26 +08:00
|
|
|
|
|
|
|
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
|
2024-12-20 21:17:21 +08:00
|
|
|
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin)
|
|
|
|
|
|
|
|
# find_library(TINYRPC_LIB tinyrpc ${CMAKE_SOURCE_DIR}/lib)
|
2024-12-15 21:49:26 +08:00
|
|
|
|
|
|
|
|
|
|
|
add_library(tinyrpc
|
2025-01-22 17:58:45 +08:00
|
|
|
# ${SRC_LIST}
|
2024-12-20 21:17:21 +08:00
|
|
|
${COROUTINE_SRC_LIST}
|
2024-12-25 19:40:27 +08:00
|
|
|
${TCP_SRC_LIST}
|
2024-12-20 21:17:21 +08:00
|
|
|
${NET_SRC_LIST}
|
2025-01-21 16:35:26 +08:00
|
|
|
${TINYPB_SRC_LIST}
|
2024-12-17 15:47:10 +08:00
|
|
|
${ASM_FILES}
|
2024-12-15 21:49:26 +08:00
|
|
|
)
|
2024-12-17 15:47:10 +08:00
|
|
|
|
2025-01-10 15:00:50 +08:00
|
|
|
aux_source_directory(${CMAKE_SOURCE_DIR}/test/returntest TEST_SRC_LIST)
|
2024-12-17 15:47:10 +08:00
|
|
|
|
2024-12-15 21:49:26 +08:00
|
|
|
|
|
|
|
add_executable(test_tinyrpc
|
|
|
|
${TEST_SRC_LIST}
|
|
|
|
)
|
|
|
|
|
2025-01-22 17:58:45 +08:00
|
|
|
# 引入 abseil-cpp 子目录
|
|
|
|
add_subdirectory(./third_party/abseil-cpp absl)
|
|
|
|
|
|
|
|
|
|
|
|
set(ABSEL_LIBARARY
|
|
|
|
absl::absl_check
|
|
|
|
absl::absl_log
|
|
|
|
absl::algorithm
|
|
|
|
absl::base
|
|
|
|
absl::bind_front
|
|
|
|
absl::bits
|
|
|
|
absl::btree
|
|
|
|
absl::cleanup
|
|
|
|
absl::cord
|
|
|
|
absl::core_headers
|
|
|
|
absl::debugging
|
|
|
|
absl::die_if_null
|
|
|
|
absl::dynamic_annotations
|
|
|
|
absl::flags
|
|
|
|
absl::flat_hash_map
|
|
|
|
absl::flat_hash_set
|
|
|
|
absl::function_ref
|
|
|
|
absl::hash
|
|
|
|
absl::layout
|
|
|
|
absl::log_initialize
|
|
|
|
absl::log_severity
|
|
|
|
absl::memory
|
|
|
|
absl::node_hash_map
|
|
|
|
absl::node_hash_set
|
|
|
|
absl::optional
|
|
|
|
absl::span
|
|
|
|
absl::status
|
|
|
|
absl::statusor
|
|
|
|
absl::strings
|
|
|
|
absl::synchronization
|
|
|
|
absl::time
|
|
|
|
absl::type_traits
|
|
|
|
absl::utility
|
|
|
|
absl::variant
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# 链接库
|
|
|
|
target_link_libraries(tinyrpc PRIVATE protobuf) # 链接 Protobuf 库
|
|
|
|
target_link_libraries(tinyrpc PRIVATE ${ABSEL_LIBARARY}) # 链接 Protobuf 库
|
2024-12-25 19:40:27 +08:00
|
|
|
target_link_libraries(test_tinyrpc PRIVATE tinyrpc)
|
2025-01-22 17:58:45 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|