| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- cmake_minimum_required(VERSION 3.10)
- project(server LANGUAGES CXX)
- set(CMAKE_CXX_STANDARD 20)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
- set(CMAKE_CXX_EXTENSIONS OFF)
- set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
- if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
- file(CREATE_LINK
- "${CMAKE_BINARY_DIR}/compile_commands.json"
- "${CMAKE_SOURCE_DIR}/compile_commands.json"
- SYMBOLIC)
- endif()
- add_compile_definitions(HPSOCKET_STATIC_LIB YLIB_STATIC)
- file(GLOB_RECURSE SERVER_SOURCES CONFIGURE_DEPENDS
- "${CMAKE_SOURCE_DIR}/src/*.cpp"
- )
- add_executable(${PROJECT_NAME} ${SERVER_SOURCES})
- set(YLIB_ROOT "/usr/local" CACHE PATH "ylib 安装前缀")
- set(HPSOCKET_ROOT "/usr/local" CACHE PATH "HPSocket 头文件前缀")
- target_include_directories(${PROJECT_NAME} PRIVATE
- ${CMAKE_SOURCE_DIR}/src
- ${CMAKE_SOURCE_DIR}/..
- ${YLIB_ROOT}/include
- ${HPSOCKET_ROOT}/include
- /usr/include
- )
- if(MSVC)
- target_compile_options(${PROJECT_NAME} PRIVATE /W3 /wd4819)
- set(YLIB_LIB_DIR "${YLIB_ROOT}/lib" CACHE PATH "ylib 库目录")
- set(HPSOCKET_LIB_DIR "${CMAKE_SOURCE_DIR}/3rdparty/HP-Socket/Lib" CACHE PATH "HPSocket 库目录")
- target_link_directories(${PROJECT_NAME} PRIVATE ${YLIB_LIB_DIR} ${HPSOCKET_LIB_DIR})
- target_link_libraries(${PROJECT_NAME} PRIVATE
- $<$<CONFIG:Debug>:ylib_d>
- $<$<CONFIG:Release>:ylib>
- $<$<CONFIG:Debug>:HPSocket_D>
- $<$<CONFIG:Release>:HPSocket>
- ws2_32 iphlpapi advapi32 user32 shell32
- )
- else()
- target_compile_options(${PROJECT_NAME} PRIVATE -Wall -fPIC)
- target_link_directories(${PROJECT_NAME} PRIVATE
- /usr/local/lib
- /usr/lib/x86_64-linux-gnu
- )
- if(CMAKE_BUILD_TYPE STREQUAL "Debug")
- set(_YLIB_NAME ylib_d)
- else()
- set(_YLIB_NAME ylib)
- endif()
- target_link_libraries(${PROJECT_NAME} PRIVATE
- ${_YLIB_NAME}
- hpsocket
- mysqlcppconn
- hiredis
- curl
- ssl
- crypto
- pthread
- dl
- rt
- z
- )
- endif()
|