cmake_minimum_required(VERSION 3.16) project(tss LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) if (MSVC) add_compile_options(/source-charset:utf-8) endif() if(DEFINED USE_BOOST) message(STATUS "tss use boost lib.") include_directories(${MBOOST_INCLUDE_DIR}) endif() add_executable(tss main.cpp server.h server.cpp) target_link_libraries(tss PRIVATE trans_net trans_util) if(DEFINED USE_BOOST) target_link_directories(tss PRIVATE ${MBOOST_LIB_DIR}) target_link_libraries(tss PRIVATE ${MBOOST_LIBS}) endif() if (UNIX) target_link_libraries(tss PRIVATE pthread) endif() if (CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND CMAKE_SYSTEM_NAME MATCHES "Windows") target_link_libraries(tss PRIVATE ws2_32 wsock32) endif() if (DEFINED GRAB_CRASH) target_link_libraries(tss PRIVATE crashelper) endif() if(UNIX) execute_process( COMMAND uname -a OUTPUT_VARIABLE UNAME_OUT OUTPUT_STRIP_TRAILING_WHITESPACE ) if(UNAME_OUT MATCHES "alpine" OR UNAME_OUT MATCHES "Alpine") message(STATUS "on musl static link") target_link_libraries(tss PRIVATE -static;-static-libstdc++) endif() endif()