cmake_minimum_required(VERSION 3.0) project(tinyrpc) # set(CMAKE_CXX_STANDARD 14) enable_language(CXX ASM) add_compile_options(-g -Wall -std=c++17) include_directories(includes/coroutine) include_directories(includes/log) include_directories(includes/net) include_directories(includes/net/tcp) include_directories(includes/net/tinypb) aux_source_directory(${CMAKE_SOURCE_DIR}/src/coroutine COROUTINE_SRC_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/src/net NET_SRC_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/src/net/tcp TCP_SRC_LIST) aux_source_directory(${CMAKE_SOURCE_DIR}/src/net/tinypb TINYPB_SRC_LIST) set(ASM_FILES ${CMAKE_SOURCE_DIR}/src/coroutine/coctx_swap.S) set(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin) set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin) # find_library(TINYRPC_LIB tinyrpc ${CMAKE_SOURCE_DIR}/lib) add_library(tinyrpc ${COROUTINE_SRC_LIST} ${TCP_SRC_LIST} ${NET_SRC_LIST} ${TINYPB_SRC_LIST} ${ASM_FILES} ) aux_source_directory(${CMAKE_SOURCE_DIR}/test/returntest TEST_SRC_LIST) add_executable(test_tinyrpc ${TEST_SRC_LIST} ) target_link_libraries(test_tinyrpc PRIVATE tinyrpc) target_link_libraries(test_tinyrpc PUBLIC protobuf) target_link_libraries(test_tinyrpc PUBLIC stdc++)